Большая загрузка данных с использованием Scala JDBC - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь реализовать функцию, которая загружает около 40 миллионов записей в базу данных MySQL, которая размещена на AWS. Тем не менее, мой оператор записи застревает на 94% на бесконечно долгое время.

Это команда, которую я использую для загрузки df_intermediate.write.mode("append").jdbc(jdbcUrl, "user", connectionProperties) с включенными rewriteBatchedStatements и useServerPrepStmts в свойствах соединения.

Этот оператор работает для небольшого количества баллов (50000), но не может обработать эту большую сумму. Я также увеличил максимальное количество соединений на стороне MySQL.

РЕДАКТИРОВАТЬ: я запускаю это на машинах GCP n1-standard-16.

Почему могут быть причины, по которым запись зависает на 94%?

1 Ответ

0 голосов
/ 28 октября 2019

Я не думаю, что это действительно имеет какое-либо отношение к Scala, вы просто говорите, что хотите добавить много много строк в БД. Быстрый ответ состоит в том, чтобы не иметь все это в одной транзакции, и зафиксировать их, скажем, по 100 за раз. Попробуйте это на непроизводственной базе данных sql, чтобы узнать, работает ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...