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

fume07

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

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

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

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

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

Vallar_ultra

Любитель выпить :)
AmdY
а ты этот XML видел?

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

Alexandre

PHPПенсионер
exel прекрасно умеет сам создавать xml.
AmdY замучаешься такой xml парсить...

Вообще семейство продуктов MsOffice очень любит "загрязнять" такие простые форматы как rtf, html, xml...
 

fume07

Новичок
Vallar_ultra
Да, на текущий момент видится такой вариант. Дополнительно к отправленому файлу отправляется доп.файл содержащий md5 и sha256 для проверки - полностью ли загрузился xml-файл.
AmdY
Я предпочту распарсить xls, а затем уже собрать xml. XML из Excel - это порно (хотя не исключаю, что не умею их "готовить")
2All
Какие могут быть проблемы с этой схемой? Каким образом котролировать появление на сервере обработки нового файла
для дальнейшей загрузки в БД - cron или иной механизм? Причем повторюсь - загрузка должна быть последовательна, дабы избежать "дубрирования".
 

vovanium

Новичок
А зачем из CSV делать XML, чтобы его в базу залить, для лишних тормозов? Или быстро залить CSV в MySQL без преобразования в XML уже не модно?
 

fume07

Новичок
vovanium
Там будет именно xls. Для тех товарищей, что будут заливать csv - это еще не модно.
 

vovanium

Новичок
fume07
Что мешает в Excel вместо сохранить в xls, выбрать сохранить в csv? Ладно бы им нужно было вручную все таблицы переписывать.
Но и ты же сам пишешь "Я предпочту распарсить xls, а затем уже собрать xml.", зачем создавать xml, есть можно сделать csv который mysql намного быстрее "проглотит"?
 

Vallar_ultra

Любитель выпить :)
fume07
В качестве идеи, а почему б не разбирать xls (куча классов по работе с эксельным форматом) и пхать в базу?
Так всё проще было бы:
закачка (xls/csv) на сервер -> разбор его -> последовательное запихивание всех данных в базу(если надо на другой сервак, то дергается удалённый скрипт).

-~{}~ 14.02.07 21:43:

vovanium
мешает обычно то, что конечные пользователи иногда не могут сообразить как это сделать
 

vovanium

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