Snowsight でのタスク履歴の表示

タスクを使用すると、 SQL コードの実行をスケジュールできます。タスクの有向非巡回グラフ(DAG)を作成して、ルートタスクと一連の依存タスクで指定された SQL コードを実行する方法を指定できます。タスクは、特定のデータベースとスキーマに関連付けられています。タスクの詳細については、 タスクの紹介 をご参照ください。

Snowsight を使用すると、いくつかの異なる方法でタスクの実行履歴を確認できます。

  • アカウントで実行されたすべてのタスクの実行履歴を表示して、たとえば、実行に失敗した重要なタスク、長時間実行されているタスク、またはコストを増加させているタスクを特定します。

  • 特定のタスクの実行履歴を表示して、タスクに関する詳細情報を収集します。

  • タスクグラフの実行履歴を表示して、可観測性とモニターのために、また特定のタスクグラフの問題を特定するために役立てます。

テーブル関数 TASK_HISTORY またはビュー TASK_HISTORY ビュー を使用して SQL のタスク履歴を確認することもできます。

このトピックの内容:

タスク履歴を表示するために必要な権限

Snowsight でタスク履歴を表示するには、 TASK_HISTORY および COMPLETE_TASK_GRAPHS テーブル関数を実行するのに必要な権限と同じ権限が必要です。

次のロールのいずれかを使用する必要があります。

  • ACCOUNTADMIN ロール。

  • タスクに対する OWNERSHIP 権限を持つロール。

  • MONITOR EXECUTION グローバル権限と、タスクを格納するデータベースとスキーマに対する USAGE 権限を持つロール。

使用するロールは、Account Usage TASK_HISTORY ビューをクエリできる必要があります。共有 SNOWFLAKE データベースの USAGE_VIEWER データベースロールをこのロールに付与できます。

たとえば、特定のタスク mytask の履歴を表示するには、カスタムロール myrole に以下が必要です。

  • タスクに対する OWNERSHIP 権限。

  • 共有 SNOWFLAKE データベースでの USAGE_VIEWER データベースロール。

これらの権限を付与するには、以下の SQL コマンドを実行します。

GRANT OWNERSHIP ON TASK mytask TO ROLE myrole;
GRANT DATABASE ROLE USAGE_VIEWER TO ROLE myrole;
Copy

詳細については、以下をご参照ください。

個々のタスクを表示して管理する

Snowsight でタスクを表示して管理するには、次を行います。

  1. Snowsight にサインインします。

  2. Data » Databases を選択します。

  3. 特定のデータベースとスキーマについては、 Tasks を選択し、管理したいタスクを選択します。

Snowsight でタスクを表示する際には、次のことができます。

  • Details セクションで、タスク ID、タスクが使用するウェアハウス、スケジュール、状態、先行タスクを確認します。

  • Task Definition セクションでタスクの作成に使用された SQL ステートメントを確認します。

  • タスクに対する権限を管理します。 Snowsightでオブジェクトの権限を管理する をご参照ください。

  • ... アクションボタンを選択すると、タスク名やコメントの編集、タスクのクローン、タスクのドロップ、または別のロールへのタスク所有権の譲渡を行うことができます。

個別のタスクグラフの表示

タスクグラフを確認して、ルートタスクとその依存タスクを DAG の形式で表示します。タスクグラフを確認すると、次のことができます。

  • ルートタスクおよび選択した依存タスクごとのステータスを含む、タスク情報を表示する。

  • グラフ内のルートタスクと依存タスクを含む、タスクグラフを調べる。 タスクのDAG をご参照ください。

  • グラフでタスクを選択すると、先行タスク、タスクの実行に使用されたウェアハウス、タスクを所有するロールなどの追加の詳細が表示されます。

Example task graph shown in Snowsight, with annotations showing the navigation to view the task graph as described in the following task.

特定のデータベーススキーマのタスクグラフを表示するには、次を実行します。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Data » Databases を選択します。

  3. オブジェクトエクスプローラーを使用して、表示するタスクを含むデータベースとスキーマを見つけます。

  4. 選択したスキーマについて、 Tasks を選択します。

  5. 特定のタスクを選択します。

    タスクの詳細が表示され、追加の Graph および Run History タブが表示されます。

  6. Graph タブを選択して、タスクグラフを表示します。

    タスクグラフが表示され、タスクの階層が表示されます。

  7. タスクを選択して、グラフのコンテキストで詳細を表示します。

注釈

タスク履歴データは、過去7日間にタスクが実行された場合にのみ利用できます。

タスクの実行履歴を確認する

タスク実行履歴には、特定のタスクの各実行に関する詳細が含まれます。スケジュールされた時間、実際の開始時間、タスクの期間、およびその他の情報を表示できます。

Snowsight task history page with annotations for each section.

各インスタンスについて、以下を表示できます。

  • スケジュールされた開始時刻: タスクの次回の実行スケジュール。

  • ステータス: 最新の実行のステータス。

  • 期間: 最新の実行の時間(秒単位)。

  • クエリ: タスククエリプロファイルまたはタスクステートメントをワークシートに表示する。

実行履歴を表示するには、

  1. Snowsight にサインインします。

  2. Data » Databases を選択します。

  3. 右側のペインで、オブジェクトエクスプローラーを使用して、データベースとスキーマに移動します。

  4. 選択したスキーマについて、 Tasks を選択して展開します。

  5. タスクを選択します。 Task DetailsGraph、および Run History サブタブを含むタスク情報が表示されます。

  6. Run History タブを選択します。

注釈

タスク履歴データは、過去7日間にタスクが実行された場合にのみ利用できます。

アカウントレベルのタスク履歴を確認する

タスク実行のアカウントレベルの履歴を確認して、失敗したタスク、実行時間の長いタスク、および特定の1つのタスクだけではなく、アカウント全体のその他のモニターとデバッグのケースを特定します。

タスクのアカウントレベルの履歴を表示するには、次を実行します。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Activity » Task History を選択します。

  3. 個別のタスク実行を表示するには、フィルターから View » Task Runs を選択します。

タスク実行の履歴を選択した後、ページをフィルターして関連情報を表示できます。

  • Date Range フィルターを選択して、前日から過去12か月までのタスク履歴、またはカスタム範囲を表示します。

  • Task status フィルターを選択して、 SucceededFailedCancelled、または Skipped などのステータス1つ以上のタスク履歴を表示します。

  • タスクの名前でフィルターして、特定のタスクのステータスまたは期間のパターンを経時的に表示します。

  • タスクを含むデータベースまたはスキーマの名前でフィルターします。

たとえば、実行時間の長いタスクを識別するには、 Status フィルターを選択して成功したタスクのみを表示し、 Duration フィールドを降順で並べ替えます。高度なデバッグを行うには、 Open in worksheets ボタンを使用して、フィルター済みおよび並べ替え済みのテーブルをワークシートで開くことができます。次に、 LIMIT / FETCH および GROUP BY 引数を使用して SQL ステートメントを変更し、実行時間の長い上位25個のタスクを持つデータベースとスキーマを特定できます。

特定のタスクを選択して、詳細をドリルダウンすることもできます。

アカウントレベルのタスクグラフの履歴を確認する

タスクグラフのアカウントレベルの履歴を確認して、グラフの完了を妨げている重大な失敗タスク、実行時間の長いタスク、非効率的または失敗頻度の高いタスクグラフ、アカウント全体のその他のモニターとデバッグのケースを特定します。

タスクグラフのアカウントレベルの履歴を表示するには、次を実行します。

注釈

タスク履歴を表示するには、必要な権限 を持つロールを使用する必要があります。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Activity » Task History を選択します。

    デフォルトでは、前日から実行されたすべてのタスクグラフがヒストグラムおよびテーブルとしてページに表示されます。

タスクグラフ実行の履歴を選択した後、ページをフィルターして関連情報を表示できます。

  • Date Range フィルターを選択すると、過去12か月までの長期間のタスク履歴が表示されます。

  • Graph status フィルターを選択して、 SucceededFailedCancelled、または Skipped などの1つ以上のタスクグラフステータス実行履歴を表示します。グラフ内の1つのタスクが失敗した場合、グラフ全体が Failed として表示されます。

  • タスクグラフのルートタスクを含むデータベースの名前と、オプションでスキーマにフィルターをかけます。

  • データベースとオプションのスキーマを選択した後、ルートタスク名でフィルターして、特定のタスクタイプのステータスまたは期間のパターンを経時的に表示します。アクティブなロールに表示権限がないルートタスクが表示される場合があります。

たとえば、失敗したタスクを含むタスクグラフを識別するには、 Graph status フィルターを選択して、失敗したタスクのみを表示します。失敗したタスクにカーソルを合わせると、失敗の詳細が表示されます。高度なデバッグを行うには、 Open in worksheets ボタンを使用して、フィルター済みおよび並べ替え済みのテーブルをワークシートで開きます。次に、 LIMIT / FETCH および GROUP BY 引数を使用して SQL ステートメントを変更し、たとえば上位25個の失敗したタスクを持つデータベースとスキーマを特定できます。

特定のタスクグラフ実行をデバッグする

アカウントレベルのタスクグラフの履歴を表示する場合は、特定のタスクグラフ実行を選択して詳細を表示します。グラフ内のタスクの履歴を表示する権限がある場合は、タスクグラフの実行が表示され、そうでない場合はエラーが表示されます。

Snowsight task graph showing one root task with 3 dependent tasks, and 4 dependent tasks of those predecessors. The Task titled ROOT_TASK succeeded while showing a slightly longer duration than other tasks, along with INSERT_1 task. Two dependent tasks of INSERT_2 ran but failed, and the third dependent task succeeded. The highlighted task failed.

たとえば、特定の失敗したタスクグラフの実行を選択してグラフ全体を表示し、特定の失敗したタスクの結果として実行されなかったタスクや一時停止したタスクを特定したり、グラフ内の依存タスクの実行を遅らせている実行時間の長いタスクを特定したりできます。

タスクグラフの特定のタスクについて、そのタスクの様々な側面にカーソルを合わせることで、タスクに関する追加情報を集めることができます。

  • ウェアハウスのメタデータは、ステータスやサイズなど、タスクの実行に使用されているウェアハウスを識別します。これにより、ウェアハウスのサイズが原因で実行が遅いタスクや、ウェアハウスの使用量に貢献しているタスクを特定できます。

  • ストリーム条件メタデータには、テーブルストリームの詳細と、そのタスクで条件がtrueに設定されたかfalseに設定されたかが表示されます。

  • タスクの詳細を表示するには Go to Task Page を選択します。

各タスクには、 SucceededFailedSkippedSuspendedCancelledDid not run などのステータスが対応する色とともに表示されます。失敗したタスク、スキップしたタスク、キャンセルしたタスクのステータスにカーソルを合わせると、詳細情報が表示されます。

タスクグラフに加えて、実行されたタスク、各タスクの開始時刻、各タスクの実行時間、各タスクのステータス、およびタスク実行のシーケンスを表すタイムラインを説明するテーブルを確認できます。タイムラインを使用すると、タスクグラフの実行が遅かった理由や、どの実行時間が長い実行タスクが依存タスクの開始を遅らせた可能性があるかをすばやく判断できます。

テーブル内のタスクごとに、 ... 詳細メニューを選択して、ワークシート内のタスクのクエリ ID を開くか、クエリプロファイルを開くことができます。