Загрузить данные S3 в экземпляр Aurora MySQL

Я пытаюсь загрузить данные в S3 в экземпляр Aurora MySQL. Я сделал это с помощью PySpark и производительность составляет 4 ГБ в час.

current_df.write.format('jdbc').options(
            url=url,
            driver=jdbc_driver,
            dbtable=table_name,
            user=username,
            password=password).mode("overwrite").save()

Добавил несколько улучшений производительности и заметил, что производительность улучшилась (7 ГБ в час), однако она все еще не так уж велика.

Параметры, добавленные в URL JDBC

useServerPrepStmts=false&rewriteBatchedStatements=true

Я попробовал другой подход

LOAD DATA FROM S3 's3://${s3.bucket}/${filename}' INTO TABLE ${TableName} FIELDS TERMINATED BY ',';

Таким образом он загружает 5 ГБ в час в MySQL.

У меня есть около 2 ТБ данных, необходимых для загрузки в экземпляр MySQL. Есть ли какой-нибудь возможный способ быстрее загрузить данные.

1 ответ

Некоторые случайные мысли; Я надеюсь, что некоторые помогут:

  • Увеличьте выделенные IOPS с обеих сторон. (Если вы можете получить некоторые показатели, вы сможете решить, какая сторона нуждается в большем.)
  • Что такое s3://... - звучит как проникновение в удаленную файловую систему? Как далеко?
  • Если он достаточно удаленный, рассмотрите возможность архивирования и копирования файлов ближе к месту, затем разархивируйте (так как LOAD не имеет возможности расстегнуть молнию).
  • Удаленный... Возможно, у вас ограничена пропускная способность сети?
  • Запустить LOADs в параллели. Как много? Трудно сказать. Возможно, IOPS на одном конце или другом будет ограничивающим фактором.
  • У вас есть "чрезмерное" количество индексов в таблицах? Это может замедлить LOAD, Удаление индексов может ускорить LOAD, но вам нужно будет повторно добавить индексы позже. Главное - избавиться от индексов, которые вам не понадобятся.
  • Исходные файлы уже отсортированы в PRIMARY KEY порядок ускорится LOAD (при условии, что в целевой схеме уже определен PK, что и должно быть). Конечно, предварительная сортировка файлов занимает много времени, поэтому существует компромисс.
Другие вопросы по тегам