MySql массовый импорт без записи файла на диск - PullRequest
0 голосов
/ 29 июня 2011

У меня есть сайт django, работающий с базой данных mysql.Я принимаю довольно большие загрузки от одного из пользователей-администраторов для массового импорта некоторых данных.Данные поступают в формате, который немного отличается от формы, которая должна быть в базе данных, поэтому мне нужно немного разобрать.

Я бы хотел иметь возможность перенести эти данные в CSV и записатьзатем в объект cStringIO просто используйте команду массового импорта mysql для загрузки этого файла.Я предпочел бы сначала пропустить запись файла на диск, но я не могу найти способ обойти это.В прошлом я делал именно эту вещь с postgresql, но, к сожалению, этот проект работает на mysql.

Коротко: можно ли взять файл в памяти как объект и каким-то образом использовать операцию массового импорта mysql

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Существует превосходное учебное пособие под названием Генераторские хитрости для системных программистов , посвященное обработке больших файлов журналов, что похоже, но не идентично вашей ситуации. Пока вы можете выполнять необходимое преобразование с доступом только к текущим (и, возможно, предыдущим) данным в потоке, это может работать для вас.

Я упоминал этот драгоценный камень в нескольких ответах, потому что я думаю, что он вводит другой способ мышления, который может быть весьма ценным. Существует сопутствующая пьеса Любопытный курс по сопрограммам и параллелизму , которая может серьезно повернуть вашу голову.

1 голос
/ 29 июня 2011

Если под «массовым импортом» вы подразумеваете ЗАГРУЗИТЬ ДАННЫЕ [LOCAL] INFILE, то нет, нет способа сначала записать данные в какой-то файл, черт побери.Вы (и я) действительно хотели бы написать таблицу прямо из массива.

Но некоторые ОС, такие как Linux, допускают наличие резидентной файловой системы в ОЗУ, которая облегчает некоторые проблемы.Мне не хватает сисадмина, чтобы знать, как настроить одного из этих парней;Я должен был получить техническую поддержку моего провайдера, чтобы сделать это для меня.Я нашел статью , что может иметь полезную информацию.

HTH

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