# スケジュールされたクエリのSQL例 スケジュールされたクエリのほとんどの設定は、いつでも更新または再設定できます。これには、cronスケジュール、遅延、名前、クエリ文字列などが含まれます。また、「次のスケジュール実行時刻」は、ブラウザのタイムゾーンでの現在時刻、cronスケジュール、および遅延設定に基づいて自動的に更新される推定設定です。 スケジュールされたクエリが更新されると、更新された設定は次のスケジュール実行に即座に適用され、「次のスケジュール実行時刻 + 遅延」で実行されます(遅延が>0、<0、または0の場合)。 ## 日次KPIの例 一般的なパターンは、特定の間隔で固定KPIまたはメトリクスを定期的に計算することです。 ```sql 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でクエリを作成または編集する](/ja/products/customer-data-platform/data-workbench/queries/creating-or-editing-a-query)を参照してください。 ## 日次アクティブユーザーリストの例 結果を定期的にTreasure Dataテーブルにエクスポートすることは一般的です。これは、他のジョブで使用できます。 ```sql 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テーブルに書き込む](https://docs.treasuredata.com/smart/project-integrations/treasure-data-data-exchange-export-integration)ことができます。 * Export Result To: Treasure Data * Database: YOUR_DATABASE * Table: YOUR_TABLE * Mode: Replace 別のテーブルへの結果の書き込みは[アトミック](/products/glossary)であるため、いつでも他のクエリからこのテーブルを参照できます。 ## データマート生成の例 ログからデータを定期的に要約し、結果をRDBMSにプッシュしてデータマートを構築することは一般的です。 ```sql 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の使用](https://docs.treasuredata.com/smart/project-integrations/treasure-data-data-exchange-export-integration)を参照してください。 クエリ結果を外部RDBMSにプッシュした後、選択したBIツールを使用して結果をスライスおよびダイスできます。