スケジュールされたクエリのほとんどの設定は、いつでも更新または再設定できます。これには、cronスケジュール、遅延、名前、クエリ文字列などが含まれます。また、「次のスケジュール実行時刻」は、ブラウザのタイムゾーンでの現在時刻、cronスケジュール、および遅延設定に基づいて自動的に更新される推定設定です。
スケジュールされたクエリが更新されると、更新された設定は次のスケジュール実行に即座に適用され、「次のスケジュール実行時刻 + 遅延」で実行されます(遅延が>0、<0、または0の場合)。
一般的なパターンは、特定の間隔で固定KPIまたはメトリクスを定期的に計算することです。
SELECT
TD_TIME_FORMAT(TIME, "yyyy-MM-dd") AS day,
COUNT(1) AS cnt
FROM
www_access
GROUP BY
TD_TIME_FORMAT(TIME, "yyyy-MM-dd"),
WHERE
TD_TIME_RANGE(time,
TD_TIME_ADD(TD_SCHEDULED_TIME(), '-1d'),
TD_SCHEDULED_TIME())次のパラメータを設定することで、クエリを毎日実行するようにスケジュールできます。
Recurring?: @daily
Delay (seconds): 3600
この例では、アクセスログから日次ページビューを集計します。集計の適切な時間範囲を設定するために、Presto(またはHive)の一般的なUDFをいくつか使用しています。TD_SCHEDULED_TIME()は、ジョブが実行される予定の時刻を返します。この場合、TD_SCHEDULED_TIME()は午前12時を返します。
遅延パラメータを1時間(3600秒)に設定することで、ジョブは毎日午前1時に起動します。これにより、ジョブが実行される前にデータをインポートするための追加時間(この場合は1時間)が確保されます。
KPIを追跡するために選択したエンドシステムに結果を書き込むには、TD Consoleでクエリを作成または編集するを参照してください。
結果を定期的にTreasure Dataテーブルにエクスポートすることは一般的です。これは、他のジョブで使用できます。
SELECT
user_id
FROM
www_access
GROUP BY
user_id
WHERE
TD_TIME_RANGE(time,
TD_TIME_ADD(TD_SCHEDULED_TIME(), '-1d'),
TD_SCHEDULED_TIME())次のパラメータを設定することで、クエリを毎日実行するようにスケジュールできます。
Recurring?: @daily
Delay (seconds): 3600
この例では、アクセスログから日次アクティブユーザーのリストを集計します。
次のパラメータを設定することで、このリストを別のTreasure Dataテーブルに書き込むことができます。
Export Result To: Treasure Data
Database: YOUR_DATABASE
Table: YOUR_TABLE
Mode: Replace
別のテーブルへの結果の書き込みはアトミックであるため、いつでも他のクエリからこのテーブルを参照できます。
ログからデータを定期的に要約し、結果をRDBMSにプッシュしてデータマートを構築することは一般的です。
SELECT
user, code, method, path, agent, host, avg(size)
FROM
www_access
GROUP BY
user, code, method, path, agent, host
WHERE
TD_TIME_RANGE(time,
TD_TIME_ADD(TD_SCHEDULED_TIME(), '-1h'),
TD_SCHEDULED_TIME())このジョブをスケジュールするには、次のパラメータを設定します。
Recurring?: @hourly
Delay (seconds): 600
前の例では、アクセスログからユーザー、コード、パス、エージェント、ホスト、および平均サイズごとにWeb要求の結果を1時間ごとに集計します。
結果を別のRDBMSに書き込む方法については、TD Data Exchangeの使用を参照してください。
クエリ結果を外部RDBMSにプッシュした後、選択したBIツールを使用して結果をスライスおよびダイスできます。