Как улучшить скорость записи в базу данных sql с помощью python - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь найти лучший способ отправить данные в sql db, используя python.Я пробовал dataframe.to_sql() метод и cursor.fast_executemany(), но, похоже, они не увеличивают скорость с этими данными (данные находятся в CSV-файлах), с которыми я сейчас работаю.Кто-то предположил, что я мог бы использовать именованные кортежи и генераторы , чтобы загружать данные намного быстрее, чем могут сделать панды.

[Как правило, файлы csv имеют размер не менее 1 ГБ, и загрузка одного файла занимает около 10-17 минут]

Я довольно новичок во многих понятиях Python, поэтому, пожалуйста, предложитекакой-либо метод или, по крайней мере, ссылку на любую статью, которая показывает любую информацию.Заранее спасибо

1 Ответ

0 голосов
/ 25 апреля 2019

Если вы пытаетесь вставить csv как есть в базу данных (т.е. без выполнения какой-либо обработки в пандах), вы можете использовать sqlalchemy в python для выполнения «BULK INSERT [params, file и т. Д.]».Кроме того, я обнаружил, что чтение csvs, обработка, запись в csv, а затем массовая вставка могут быть опцией.

В противном случае, не стесняйтесь указывать немного больше, чего вы хотите достичь, как вам нужнообрабатывать данные перед вставкой в ​​БД и т. д.

...