2016-03-22 3 views
0

У меня есть задача прочитать файл csv по строкам и вставить их в базу данных.Прочтите csv и добавьте в базу данных производительность

И файл csv содержит около 1,7 миллиона строк.

Я использую python с ormalchemy orm (функция слияния), чтобы сделать это. Но он проводит более пяти часов.

Это вызвано медленной производительностью или sqlalchemy python или sqlalchemy?

или что, если я использую golang, чтобы сделать это, чтобы сделать очевидное лучшую производительность? (Но я не имею никакого опыта по картингу. Кроме того, эта работа должны быть запланированы каждый месяц)

надеюсь, что вы парень дает какие-либо предложения , благодаря!

Update: база данных - MySQL

+0

В какой базе данных? Пожалуйста, отметьте свой вопрос –

+0

ok, я обновил свой тег и содержимое. – WendellLiu

+0

Вы хотите LOAD DATA [LOCAL] INFILE. Я не могу помочь вам, но есть [другие вопросы по этому поводу] (http://stackoverflow.com/search?tab=votes&q=load%20data%20local%20infile), и вы можете искать вокруг официального MySQL или другого помощь в Интернете. – twotwotwo

ответ

2

Для такой миссии вы не хотите вставить данные построчно :) В принципе, у вас есть 2 пути:

  1. Убедитесь, что SQLAlchemy не запускает запросы один за другим. Используйте запрос BATCH INSERT (How to do a batch insert in MySQL).
  2. Массаж ваших данных так, как вам нужно, затем выведите его в некоторый временный файл CSV, а затем запустите LOAD DATA [LOCAL] INFILE, как было предложено выше. Если вам не нужно предварительно обрабатывать данные, просто подайте CSV в базу данных (я предполагаю, что это MySQL)
+0

ОК, я попробую! – WendellLiu

Смежные вопросы