Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / http запрос из MySQL / 8 сообщений из 8, страница 1 из 1
30.06.2015, 11:19:21
    #38995712
samolet89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
http запрос из MySQL
Добрый день.
Возникла проблема и не получилось найти ответ самостоятельно.

Собственно конструкция следующая:

Есть регулярно обновляемый файл csv (2-5 минут). Где содержатся некие объекты, среди крочих характеристик которых есть GPS координаты.
Информацию с этого csv надо подтягивать в на сайт (раз в 2 минуты), бд на сайте mysql.

Между csv и mysql существует скрипт-прокладка на PHP, который файл csv модифицирует, берет из строки координаты, отправляет их на yandex http запросом, получает обратно XML с административной принадлежностью этих координат и записывает их в одну из ячеек этой строки. И так для каждого нового объекта.

Т.к. скрипт работает не эффективно думаю как от него избавится, самым логичным (ну кроме того что бы заставить людей свои БД вести не в csv файле) мне показалось, делать запрос не из скрипта, а из MySQL (не придется весь scv каждый раз ворочать.)

Внимание вопрос: можно ли из MySQL (Средствами БД или доп.библиотеками) сделать http запрос и обработать xml отвтет ?
Если да то какими? Подскажите, хотя бы куда копать гуглить.

Заранее спасибо :)
...
Рейтинг: 0 / 0
30.06.2015, 12:30:17
    #38995827
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
http запрос из MySQL
samolet89Между csv и mysql существует скрипт-прокладка на PHP, который файл csv модифицирует, берет из строки координаты, отправляет их на yandex http запросом, получает обратно XML с административной принадлежностью этих координат и записывает их в одну из ячеек этой строки. И так для каждого нового объекта.

Т.к. скрипт работает не эффективно думаю как от него избавится, самым логичным (ну кроме того что бы заставить людей свои БД вести не в csv файле) мне показалось, делать запрос не из скрипта, а из MySQL (не придется весь scv каждый раз ворочать.)Эмм, а не проще ли будет модифицировать пхп-скрипт, чтобы он лез в базу мускля, читал оттуда данные, получал обновления по хттп и потом обновлял данные сразу в базе? ну т.е. убрать лишнюю прокладку - csv.
Можно, наверное, и сам мускль научить это делать, но для этого придётся писать свои udf . Вариант с пхп мне кажется проще, тем более что половина функционала у вас уже реализована...
...
Рейтинг: 0 / 0
30.06.2015, 13:25:06
    #38995927
samolet89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
http запрос из MySQL
Хм... действительно. Спасибо.
...
Рейтинг: 0 / 0
01.07.2015, 02:58:34
    #38996443
biwed.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
http запрос из MySQL
samolet89,
Добрый день.
samolet89Т.к. скрипт работает не эффективно думаю как от него избавится, самым логичным (ну кроме того что бы заставить людей свои БД вести не в csv файле) мне показалось, делать запрос не из скрипта, а из MySQL (не придется весь scv каждый раз ворочать.)
Не понятна эта фраза. Теперь поясню на примере (решал аналогичную задачу на PDI и делал замеры):
1) Скорость получения информации с yandex где-то 1 объект за 1 секунду или 1 строка в секунду.
2) Обработка csv порядка 5 000 - 20 000 строк за 1 секунду.
3) Вставка в СУБД 2 000 - 14 000 строк за 1 секунду (передача на удаленный сервер по локальной сети).
4) Парсинг JSON (альтернатива XML) в районе 1 400 строк за 1 секунду.
Вот узкое горлышко у меня - сколько запросов посылаю к серверу yandex. В моем случае решается увеличением количества потоков, которые будут получать информацию с yandex.

ИМХО Может сначала определиться с узким местом, а потом вносить изменения? Пока, как мне кажется, избавление от csv не принесет ощутимого профита в скорости, а только удобство обработки информации.

PS. PDI - Pentaho Data Integration CE.

С уважением,
biwed.ru
...
Рейтинг: 0 / 0
01.07.2015, 09:10:28
    #38996500
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
http запрос из MySQL
я ваще не понял, с чего появилась мысль что мусклом слать шттп запросы ускорит работу.

и да внешние сервисы в подобных цепочках - самое узкое место... локально тысячи в секунду - что строка в файле, что запись в базе, что обьект в строке - достигаются легко, а вот 1000 запросов в секунду на удалёный АПИ...это я есчё не стречал. та даже на локалхост 1000 запросов в секунду не сделаешь.
...
Рейтинг: 0 / 0
01.07.2015, 09:43:23
    #38996532
biwed.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
http запрос из MySQL
alex564657498765453,
Добры день.
Данные БД PostgreSQL (удаленка). Таблица без индексов. Оценки справедливы только для моей задачи. На Mysql не могу протестировать, так как нет его под рукой.

PS. Замеры прикрепил к сообщению.

С уважением,
biwed.ru
...
Рейтинг: 0 / 0
01.07.2015, 10:10:43
    #38996551
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
http запрос из MySQL
samolet89Между csv и mysql существует скрипт-прокладка на PHP, который файл csv модифицирует, берет из строки координаты, отправляет их на yandex http запросом, получает обратно XML с административной принадлежностью этих координат и записывает их в одну из ячеек этой строки. И так для каждого нового объекта.
Возникает вопрос - а куда эти сведения об адм. принадлежности поступают дальше? И когда? Как они вообще используются и для чего?
Иными словами - а есть ли вообще смысл в том, чтобы получать их вот прям сразу, тормозя этим процесс загрузки данных?

Я бы пошёл иным путём. Выполнял бы загрузку данных без этих сведений. А сами сведения об адм. принадлежности получал бы двумя путями.

Первый - в плановом порядке, скрипт по шедулеру выбирает небольшую пачку не имеющих этих сведений записей, получает их и записывает в таблицу. Низкий приоритет задачи не приведёт к снижению производительности системы в части выполнения основных задач.

Второй - в экстренном порядке, при обращении пользователя к данным и обнаружении, что их нет, выполнял бы запрос сведений о конкретной запрошенной пользователем записи. Задержка на секунду при интерактивном запросе - это терпимо. А если на странице есть активное содержимое - так и вовсе можно вывести "Информация запрашивается...", а по получении заменить сообщение на полученные данные.
...
Рейтинг: 0 / 0
03.07.2015, 11:47:31
    #38998751
samolet89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
http запрос из MySQL
2 Akina
Эта информация нужна для окна-информера которое по умолчанию отображается на сайте когда пользователь на него заходит. Из последних событий нужно по ряду параметров выбрать нужное. Среди этих параметров есть и административная принадлежность. Поэтому что бы информер работал нормально, в базе должно быть на глубину примерно в 300 последних событий информация полученная с яндекса.
Я решаю это так, что запрос на яндекс делаю только для новых записей. Когда csv обновляется я смотрю добавилось ли что то, или нет. И на новые записи делаю запросы до яндекса. Больше 6 объектов за раз не добавляется.
В целом лопатить CSV не удобно, но для одной задачи терпимо, но недавно выяснилось, что заказчик не только добавляет записи, но и редактирует старые, и это тоже нужно вносить в базу. Вместо очередного копошения с CSV подумал сделать это нормально.

Исходный csv тупо пишется во временную базу, а потом я все нужные действия произвожу, гораздо удобней чем загонять csv в массив и держать его в памяти. Поскольку все основные действия планируется между 2я базами производить, то я подумал логично было бы и запрос оттуда делать. Но если сложно, то можно оставить php прокладку, что бы временную базу модифицировать.

2 biwed.ru, alex564657498765453
Самое узкое место это действительно запросы к yandex. Что бы сократить количество этих запросов, я решил модифицировать только последние несколько записей. проблема в том, что бы при работе с csv эти записи отдельно не получить, необходимо лопатить весь csv, это неудобно, кроме того появились новые задачи (смотрите выше).
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / http запрос из MySQL / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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