Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Разработка информационных систем Новый топик    Ответить
 Как организовать обновление большого объема данных?  [new]
aabatov
Member

Откуда:
Сообщений: 9
Добрый день.
Есть приложение, которое получает данные от стороннего источника по api. Данных очень много и устаревают они быстро. Если запустить скрипт на импорт всех данных, то по расчетам работу он закончит через несколько дней. Мне же нужно чтобы обновления выполнялись несколько раз в день. Причем задержка происходит на этапе обращения к веб-сервису, а не при операциях с БД. Т.е. сам процесс постраничного вытягивания данных очень долгий. Веб-сервис имеет много ограничений, например фиксированное количество запросов в единицу времени. П.э. запустить скрипт в несколько потоков не получается. Разбить данные на более важные и менее важные тоже не получается. Как быть в этой ситуации? Может есть стандартные подходы к решению указанной проблемы?
30 дек 13, 15:16    [15365143]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
aabatov,

Получать только изменения.
30 дек 13, 15:30    [15365221]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
aabatov
Member

Откуда:
Сообщений: 9
Чтобы узнать изменились ли данные мне нужно выкачать их все. В api нет метода получения последних изменений.
30 дек 13, 15:34    [15365248]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
aabatov,

Введите в API функции получения изменений.
30 дек 13, 16:06    [15365437]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47674
aabatov
Как быть в этой ситуации? Может есть стандартные подходы к решению указанной проблемы?

Выкинуть из картины локальную БД и всегда лезть за данными на "сторонний источник". Так будет гарантирована их свежесть.
30 дек 13, 16:08    [15365446]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
aabatov
Member

Откуда:
Сообщений: 9
Infernal V. Raven,

за api отвечает сторонняя компания. Я не могу влиять на ход разработки
30 дек 13, 16:17    [15365499]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
instant
Member [заблокирован]

Откуда:
Сообщений: 616
aabatov
Infernal V. Raven,

за api отвечает сторонняя компания. Я не могу влиять на ход разработки

не используйте API, которое не удовлетворяет потребностям.
30 дек 13, 16:20    [15365515]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
instant
Member [заблокирован]

Откуда:
Сообщений: 616
Dimitry Sibiryakov
aabatov
Как быть в этой ситуации? Может есть стандартные подходы к решению указанной проблемы?

Выкинуть из картины локальную БД и всегда лезть за данными на "сторонний источник". Так будет гарантирована их свежесть.

+100
30 дек 13, 16:20    [15365516]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
aabatov
Member

Откуда:
Сообщений: 9
Dimitry Sibiryakov,

Если будет большой наплыв посетителей, то веб-сервис меня забанит. Еще по моим данным будет организован поиск, т.е. их нужно будет индексировать поисковым движком.
30 дек 13, 16:23    [15365524]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
aabatov
за api отвечает сторонняя компания. Я не могу влиять на ход разработки
Как здесь уже правильно заметили, не используйте тогда этот API. Либо поделитесь с разработчиками и они:
1. сделают вашу работу;
2. сделают подходящий API.
30 дек 13, 16:23    [15365528]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
aabatov
Если будет большой наплыв посетителей, то веб-сервис меня забанит.
Так еще и втихаря воруете? :)
30 дек 13, 16:24    [15365536]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
aabatov
Member

Откуда:
Сообщений: 9
Infernal V. Raven,

не, все честно. У веб-сервиса ограничение на количество обращений с одного ip в единицу времени. И много ip вряд ли получится получить.
30 дек 13, 16:29    [15365568]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 28737
aabatov
Как быть в этой ситуации? Может есть стандартные подходы к решению указанной проблемы?
Какие стандартные методы, если АПИ зафиксирован? Вы можете использовать только этот АПИ, если не получается им забрать данные, значит, не получается, ничего не поделаешь. Это же ограничение стороннего сервиса, вы на него повлиять не сможете.
30 дек 13, 19:44    [15366225]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 28737
aabatov
Если будет большой наплыв посетителей, то веб-сервис меня забанит. Еще по моим данным будет организован поиск, т.е. их нужно будет индексировать поисковым движком.
Разве что можно попытаться использовать такое решение: вы читаете все данные (долго), потом при запросах пользователей обращаетесь напрямую к сервису, одновременно кешируя данные.

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

Но по крайней мере этот вариант можно обдумать, других вообще нет (только если договориться о забирании всех данных другими методами)
30 дек 13, 22:58    [15366935]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
aabatov
Member

Откуда:
Сообщений: 9
alexeyvg,

Решили частично использовать ваше решение. И будем вести переговоры с разработчиками сервиса. Всем спасибо за помощь.
31 дек 13, 14:52    [15369041]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать обновление большого объема данных?  [new]
Злой Бобр
Member

Откуда: Украина, Кривой Рог
Сообщений: 3418
aabatov,

Вариант 1. Если вы неможете обойтись без сторонних сервисов - платите, и вероятно вам дадут доступ к БД для синхронизации.
Вариант 2. Сами собирайте нужную информацию (парсеры и пр.) и откажитесь от неудобного сервиса.
Вариант 3. Забейте на все и займитесь чем-то другим.
31 дек 13, 16:00    [15369272]     Ответить | Цитировать Сообщить модератору
Все форумы / Разработка информационных систем Ответить