- カテゴリ:
CURRENT_TASK_GRAPHS¶
現在スケジュールされている、または実行中の グラフ 実行のステータスを返します。グラフは現在、単一のスケジュールされたタスク または スケジュールされたルートタスクと1つ以上の子タスク(つまり、定義された先行タスクを持つタスク)で構成されるタスクの DAG として定義されています。この関数の目的上、 ルートタスク は、単一のスケジュールされたタスク、またはDAG内のルートタスクのいずれかを指します。
この関数は、現在実行中のグラフ実行、または今後8日以内に実行するように次回スケジュールされているグラフ実行の詳細を返します。過去60分間に完了したグラフ実行の詳細を取得するには、 COMPLETE_TASK_GRAPHS テーブル関数をクエリします。
この関数は、Snowflakeアカウント全体または指定されたルートタスクのグラフ実行の詳細を返します。
構文¶
CURRENT_TASK_GRAPHS(
[ RESULT_LIMIT => <integer> ]
[, ROOT_TASK_NAME => '<string>' ] )
引数¶
すべての引数はオプションです。
RESULT_LIMIT => integer
関数によって返される行の最大数を指定する数です。結果は、 SCHEDULED_TIME の降順で返されることに注意してください。一致する行の数がこの制限よりも大きい場合、指定された制限まで、最新のスケジュールされたタイムスタンプを持つグラフ実行が返されます。
範囲:
1
~10000
デフォルト:
1000
ROOT_TASK_NAME => string
ルートタスクの名前を指定する大文字と小文字を区別しない文字列。非修飾タスク名のみがサポートされています。指定されたタスクのグラフ実行のみが返されます。複数のタスクが同じ名前を持っている場合、関数はこれらの各タスクのグラフ実行を返します。
使用上の注意¶
ACCOUNTADMIN ロール、タスク所有者(つまり、タスクに対する OWNERSHIP 権限を持つロール)、またはグローバル MONITOR EXECUTION 権限を持つロールの結果のみを返します。ロールが、 MONITOR EXECUTION 権限に加えて、タスクを保存するデータベースとスキーマに対する USAGE 権限を持つ場合以外は、出力の DATABASE_NAME および SCHEMA_NAME 値は NULL であることに注意してください。
CURRENT_TASK_GRAPHS 関数がクエリされると、そのタスク名と結果制限引数が 最初 に適用され、指定されている場合には、それぞれ WHERE 句と LIMIT 句が続くことに注意してください。さらに、 CURRENT_TASK_GRAPHS 関数は SCHEDULED_TIME の降順で記録を返します。
実際には、アカウントで多数のタスクを実行している場合、特に RESULT_LIMIT 値が比較的低い場合、関数によって返される結果には、スケジュールされたタスクのみが含まれる可能性があります。
Information Schemaテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。
出力¶
この関数は、次の列を返します。
列名 |
データ型 |
説明 |
---|---|---|
ROOT_TASK_NAME |
TEXT |
ルートタスクの名前。 |
DATABASE_NAME |
TEXT |
グラフを含むデータベースの名前。 |
SCHEMA_NAME |
TEXT |
グラフを含むスキーマの名前。 |
STATE |
TEXT |
グラフ実行の状態:
ルートタスク実行の状態が SKIPPED の場合、関数は実行の行を返さないことに注意してください。 |
FIRST_ERROR_TASK_NAME |
TEXT |
エラーを返したグラフにある最初のタスクの名前。エラーが発生したタスクがない場合は、 NULL を返します。 |
FIRST_ERROR_CODE |
NUMBER |
FIRST_ERROR_TASK_NAME で名前を付けられたタスクによって返されるエラーのエラーコード。エラーが発生したタスクがない場合は NULL を返します。 |
FIRST_ERROR_MESSAGE |
TEXT |
FIRST_ERROR_TASK_NAME で名前を付けられたタスクによって返されるエラーのエラーメッセージ。エラーが発生したタスクがない場合は NULL を返します。 |
SCHEDULED_TIME |
TIMESTAMP_LTZ |
Time when the root task is/was scheduled to start running. Note that we make a best effort to ensure absolute precision, but only guarantee that tasks do not execute before the scheduled time. |
QUERY_START_TIME |
TIMESTAMP_LTZ |
Time when the query in the root task definition started to run. This timestamp aligns with the start time for the query returned by QUERY_HISTORY. |
NEXT_SCHEDULED_TIME |
TIMESTAMP_LTZ |
Time when the standalone or root task (in a DAG) is next scheduled to start running, assuming the current run of the standalone task or DAG started at the SCHEDULED_TIME time completes in time. |
ROOT_TASK_ID |
TEXT |
Unique identifier for the root task in a DAG. This ID matches the ID column value in the SHOW TASKS output for the same task. |
GRAPH_VERSION |
NUMBER |
Integer identifying the version of the DAG that was run, or is scheduled to be run. |
RUN_ID |
NUMBER |
Time when the standalone or root task in a DAG is/was originally scheduled to start running. Format is epoch time (in milliseconds). The combination of the ROOT_TASK_ID and RUN_ID values identifies a specific run of a DAG. . Original scheduled time refers to rare instances when the system may reschedule the same task to run at a different time to retry it or rebalance the load. If that happens, RUN_ID shows the original scheduled run time and SCHEDULED_TIME shows the rescheduled run time. |
例¶
アカウントにあるグラフ実行(完了、実行中、または将来のスケジュール)の最新1000件を取得します。関数によって返される行の最大数は、デフォルトで1000に制限されていることに注意してください。返される行数を変更するには、 RESULT_LIMIT 引数の値を変更します。
select * from table(information_schema.current_task_graphs()) order by scheduled_time;
指定されたタスクのグラフ実行(実行中、または将来のスケジュール)の最新10件を取得します。
select * from table(information_schema.current_task_graphs( result_limit => 10, root_task_name=>'MYTASK'));