[小ネタ]タスクの実行ログを確認できる「TASK_HISTORY」と「イベントテーブルのログ」の違いをざっくりと調べてみた
さがらです。
小ネタなのですが、タスクの実行ログを確認できる「TASK_HISTORY」と「イベントテーブルのログ」の違いをざっくりと調べてみたのでその内容をまとめてみます。
それぞれの概要
- TASK_HISTORY:エラー成功関係なく、全タスクの実行ログが記録される
- イベントテーブル:「エラーのタスクログだけ(
ERROR
)」「全タスクの実行ログ(INFO
)」のいずれかをLOG_LEVEL
パラメータで設定して管理可能- https://docs.snowflake.com/en/user-guide/tasks-events#set-the-severity-level-of-the-events-to-capture
- また、このブログのようにタスクとDynamic Tableのエラーログをまとめたイベントテーブルを作り、アラートで通知させることも可能
更新頻度と保持期間の違い
- TASK_HISTORYテーブル関数:最新のものを確認でき、直近7日分のデータを確認可能
- ACCOUNT_USAGEのTASK_HISTORYビュー:データの内容は最大45分遅延するが、過去365日分のデータを確認可能
- イベントテーブル:タスク実行後すぐに記録され、ユーザーが意図的に削除しない限り、データを永続的に確認可能
確認できるデータの違い
- TASK_HISTORYのみ確認可能
- エラー発生後の再実行回数 ※
ATTEMPT_NUMBER
- ルートタスクのID ※
ROOT_TASK_ID
- など。他にもあり、TASK_HISTORYのほうが確認できるデータは多い
- エラー発生後の再実行回数 ※
- イベントテーブルのみ確認可能
- 使用したウェアハウス名 ※
RESOURCE_ATTRIBUTES
のsnow.warehouse.name
から
- 使用したウェアハウス名 ※
参考:TASK_HISTORYの実データの例
参考:イベントテーブルの実データの例(ERRORログのみ)
使い分けのイメージ
- TASK_HISTORY
- 詳細なタスクの実行ログの確認
- イベントテーブル
- 永続的なタスクのログの記録
- Dynamic Tableも含めたエラー通知