вносить в БД около 10 000 записей одновременно

  • Автор темы Автор темы fume07
  • Дата начала Дата начала

fume07

Новичок
Добрый день.

Ситуация следующая. Есть необходтимость вносить в БД около 10 000 записей одновременно, причем внесение записей может быть паралельным (несколько человек вносят данные).

Предлагаеоме решение.

Загружается на web-сервер Excel-файл, файл парсится и вносится в форму. Далее формируется файл xml, wget'ом отправляется на сервер обработки. И уже с этого сервера заявки (xml-файлы) последовательно загружаюися в БД. Причем запись данных в БД начинается сразу после загрузки на сервер обработки и после окончания записи в БД xml-файл из "директории загрузки" удаляется. Если за время (пока вносятся данные в БД) загрузились ещё xml-файлы, то они также последовательно вносятся в БД (до тех пор, пока все не будут внесены и папка окажеться пустой). БД и сервер обработки стоят на нашей стороне, поэтому можем установить любое ПО.

Есть ли для моего случая более тривиальное решение?
 
AmdY
а ты этот XML видел?

fume07
Т.е. алгоритм такой
закачка (xls/csv) на сервер -> разбор его -> формирование xml -> отправка на другой сервер -> последовательное запихивание всех данных в базу. Я правильно тебя понял?
 
exel прекрасно умеет сам создавать xml.
AmdY замучаешься такой xml парсить...

Вообще семейство продуктов MsOffice очень любит "загрязнять" такие простые форматы как rtf, html, xml...
 
Vallar_ultra
Да, на текущий момент видится такой вариант. Дополнительно к отправленому файлу отправляется доп.файл содержащий md5 и sha256 для проверки - полностью ли загрузился xml-файл.
AmdY
Я предпочту распарсить xls, а затем уже собрать xml. XML из Excel - это порно (хотя не исключаю, что не умею их "готовить")
2All
Какие могут быть проблемы с этой схемой? Каким образом котролировать появление на сервере обработки нового файла
для дальнейшей загрузки в БД - cron или иной механизм? Причем повторюсь - загрузка должна быть последовательна, дабы избежать "дубрирования".
 
А зачем из CSV делать XML, чтобы его в базу залить, для лишних тормозов? Или быстро залить CSV в MySQL без преобразования в XML уже не модно?
 
vovanium
Там будет именно xls. Для тех товарищей, что будут заливать csv - это еще не модно.
 
fume07
Что мешает в Excel вместо сохранить в xls, выбрать сохранить в csv? Ладно бы им нужно было вручную все таблицы переписывать.
Но и ты же сам пишешь "Я предпочту распарсить xls, а затем уже собрать xml.", зачем создавать xml, есть можно сделать csv который mysql намного быстрее "проглотит"?
 
fume07
В качестве идеи, а почему б не разбирать xls (куча классов по работе с эксельным форматом) и пхать в базу?
Так всё проще было бы:
закачка (xls/csv) на сервер -> разбор его -> последовательное запихивание всех данных в базу(если надо на другой сервак, то дергается удалённый скрипт).

-~{}~ 14.02.07 21:43:

vovanium
мешает обычно то, что конечные пользователи иногда не могут сообразить как это сделать
 
Vallar_ultra
мешает обычно то, что конечные пользователи иногда не могут сообразить как это сделать
Ну вообще то дело приходилось иметь с несовсем грамотными людьми, но такую сложную операцию как изменение формата файла при сохранении в Excel'е сумели освоить :)
 
Сверху