powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как закачать данные через веб?
11 сообщений из 11, страница 1 из 1
Как закачать данные через веб?
    #32469416
AlexPretov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.

На Веб сервер помещается текстовый файл с данными с определенно периодичностью:

Код: plaintext
http:// 192 . 10 . 0 . 34 /cli.txt


Его нужно закачать в таблицу. Файл большой, на несколько десятков тысяч записей.

В настоящее время задачу решаем через промежуточный файл, т.е. сначала скачиваем файл на локальный винт (утилитой wget), а дальше обычным импортом закачиваем в таблицу.

Пробовали perl-им скриптом напрямую -- генерацией на лету INSERT ... VALUES ..., но это вариант очень долго работает, раза в четыре медленнее чем через промежуточный файл.

Может кто подскажет способ быстрой закачки данных без создания промежуточного файла?

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32469446
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LWP::Simple не поможет?
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32469513
AlexPretov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fedd LWP::Simple не поможет

дык, так через него и закачиваю данные во втором варианте (perl-ий скрипт), а как дальше их в БД закидывать? Через фирменный модуль mysql.pm все равно тормоза получаются. Я думал можно организовать закачку данных по конвейеру, что вроде
Код: plaintext
wget http:// 192 . 10 . 0 . 34 /cli.txt | mysqlimport 

но mysqlimport не поддерживает перенаправление данных... или я что-то неправильно делаю? Или это делается по другому?

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32469525
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в конвеерах не больно рублю, может, > или < поможет?

в любом случае первый вариант самый быстрый, конечно же! проблема в месте на диске?
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32469551
AlexPretov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
feddв конвеерах не больно рублю, может, > или < поможет?

это и есть механизм перенаправления данных. нет, не работает.

проблемы в свободном месте, но быстрый вариант -- без промежуточных преобразований.

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

К слову, у MySQL самая быстрая закачка данных, которую мне доводилось видеть...

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32469740
Фотография Антон К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подождите
несколько _десятков_ тысяч записей -- больше часа?????
Это, простите, как вы добились такого результата?
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32469748
AlexPretov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
больше часа идет _полная обработка_ данных. А файлов таких загружается несколько, если конкретно, то четыре штуки. в тексте предыдущего моего поста очепятка.

если интерсено, могу подсказать конкретный вариант -- организуйте закачку данных через ODBC.

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32469935
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может попытаться использовать в Perl генерировать запрос множественный инсерт?
Работает в разы быстрее. Может вставлять тысячи записей на запрос.

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32470343
AlexPretov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaratL Может попытаться использовать в Perl генерировать запрос множественный инсерт?

именно так и был реализован второй вариант. Скорость все равно ужасающе медленная.

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

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32470426
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) вам надо внимательно посмотреть на ваш my.cnf. что-то у вас с настройками не то.. десятки тыщь записей - это немного.. К примеру (сейчас глянул на некоторые свои цифры) на dual PIII- 500MHz (согласись, не самая мощная машинка) примерно 500000 записей заливаются примерно за 600 секунд. В другом месте на той же машине 100_000 записей на 120..130 сек. Еще на той-же машине - 300_000 записей на примерно 400 сек.

2) Посмотри insert delayed по документации, может быть подойдет..
...
Рейтинг: 0 / 0
Как закачать данные через веб?
    #32470673
AlexPretov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрен2) Посмотри insert delayed по документации, может быть подойдет.
нет, не подойдет:
1) данные заливаются одним большим блоком, когда нагрузки на сервер нет -- т.е. пользователь один -- процесс загрузки данных.
2) insert delayed -- это отложенная операция записи, в данном случае смысла особого не имеет, т.к. речь идет не о единичных и разрозрозненных вставок.

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как закачать данные через веб?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]