LAMP : придерживайтесь PHP и MySQL (и время от времени совершайте набеги на perl / python): доступность библиотек PHP, решений для хранения, масштабируемости и API-решений, а также размер сообщества хорошо подходят для любой другой средыпредложения.
API : Убедитесь, что разработанные запросы API (и хранилище / база данных) могут удовлетворить все потребности конечного продукта, прежде чем вы начнете писать какие-либо импортеры.Диапазоны дат, пометки, особые случаи.
PERFORMANCE : Если вам нужны молниеносные запросы для безумно больших наборов данных, sphinx-search может помочь.Он имеет больше, чем просто текстовый поиск (теги, двоичные файлы и т. Д.), Но убедитесь, что вы задаете требования к серверу с большим объемом оперативной памяти.
IMPORTER : сделайте его модульным: как в, для каждого отдельногоисточник данных, напишите подключаемый импортер, который может быть включен / отключен администратором и, конечно, индивидуально протестирован.Выберите язык и библиотеку, основываясь на том, что лучше всего подходит для работы: bash-скрипт вполне подходит.
С точки зрения синтаксического анализа библиотек на PHP их много.Один из последних популярных - simplehtmldom , и я обнаружил, что он работает достаточно хорошо.
TRANSFORMER : Сделайте подпрограммы преобразования данных также модульными, чтобы их можно было записать какнеобходимость возникает.Не заставляйте импортера изменять исходные данные, просто сделайте его максимально быстрым в индексированной базе данных.Процедуры преобразования (или более поздние плагины) должны быть объединены с запросом API для любого конечного результата.
TIMING : Нет ничего плохого в выполнении cron, если они не сбежали илиЗаставьте ваши источники входного сигнала задушить или заблокировать вас, поэтому вам необходимо это понимание.
VERSIONING : проектирование базы данных, импорт и т. д., где ошибочные данные могут легко откатываться администратором.
Поставщик решений : Ознакомьтесь с scraperwiki - они сделали бизнес из инструментов очистки и хранения данных.
Надеюсь, это поможет.Из любопытства, какие-либо детали проекта, чтобы добровольно?Мой коллега заинтересован в обмене заметками.