Мне было поручено периодически отправлять данные Google Analytics на SQL Server 2005, работающий на другом сервере, с разных веб-сайтов (около 450 из них), сгруппированных на разных серверах. Я понимаю, что могу запускать запросы PDO с PHP для записи в базу данных SQL Server, но мне неясно вторая часть, делая это периодически. Клиент хочет, чтобы данные отправлялись ежечасно для одних данных и ежедневно для других.
Будет ли настройка cron-задания лучшим способом сделать это? Придется ли мне добавлять фрагмент PDO на каждый сайт, с которого я хочу отправлять данные, или я могу выполнить запрос для нескольких сайтов из одного места на каждом сервере? Cron jobs и PDO - лучший способ или есть более практичный способ?
Вы не упомянули, на какой ОС работают эти веб-сайты, но я предполагаю, что Linux, потому что вы упомянули задания cron; в этом случае я бы порекомендовал PERL или Python, которые полностью поддерживают выполнение SQL-запросов и действительно легко запускаются как сценарии оболочки и, следовательно, как задания cron. Я бы избегал PHP, так как заставить его запускаться из сценария оболочки может быть несколько сложнее, но это ваш вызов: вы могли бы быть намного увереннее с PHP, чем с другими языками, и на самом деле вы жестяная банка использовать PHP для чего-то еще, кроме создания веб-страниц.
Задания Cron, безусловно, подходят при планировании таксов в системе Unix / Linux.
Если случайно вам нужно сделать то же самое в Windows, я все равно рекомендую тот же подход (с запланированными задачами вместо заданий cron): в то время как SQL Server имеет инструменты командной строки для выполнения запросов (osql
и sqlcmd
), вам все равно придется обернуть их каким-то скриптом, чтобы собирать и форматировать ваши данные; В этом вам может помочь PowerShell (и он также может выполнять прямые запросы к SQL Server), но вы, вероятно, лучше знакомы с другими языками сценариев, а PERL и Python доступны в Windows.