Snowflake Notebookの実行スケジュール

Snowflake Notebookをタスクとして実行するようにスケジュールできます。タスクはSnowflake内で実行され、コードを実行します。タスクの詳細については、 タスクの紹介 をご参照ください。

ノートブック実行のスケジューリングについて

ノートブックを実行するスケジュールを作成すると、 Snowsight がそのスケジュールでノートブックを実行するタスクを作成します。これによりノートブックが非対話モードで、上から下へセルごとに実行されます。このタスクはノートブックオーナーロールによって所有され、ノートブックウェアハウスを使用して実行されます。デフォルトでは、ノートブックの失敗したタスクの実行は、10回失敗すると自動的に中断されます。

ノートブックを実行するたびにノートブックが起動し、ウェアハウスと接続します。その結果、ノートブックが使用するウェアハウスは再開され、スケジュールされたタスクが完了してから15分後までアクティブな状態になります。 Snowflake Notebooks の実行に関する考慮事項 をご参照ください。

スケジュール上でノートブックを実行するために必要な権限

スケジュール上でノートブックを実行するプロセスはタスクを作成して実行するため、以下の権限を持つロールを使用する必要があります。

権限

オブジェクト

EXECUTE TASK

アカウント

USAGE

ノートブックを含むデータベース

USAGE, CREATE TASK

ノートブックを含むスキーマ

ノートブックをスケジュールする

ノートブックの実行をスケジュールするには、以下のようにしてタスクを作成します。

注釈

CREATETASK、EXECUTETASK権限を付与されたロールを使用する必要があります。包括的なリストについては、 必須権限 セクションをご参照ください。

  1. Projects » Notebooks を選択します。

  2. スケジュールするノートブックを探して選択します。

  3. ノートブックでスケジュールボタン、 Create schedule の順に選択します。

    右上のスケジュールボタン。

    Schedule a notebook run ダイアログが表示されます。

  4. Schedule name には、リソースモニターの名前を入力します。これはノートブックを実行するタスクの名前として使われます。

  5. Frequency では、ノートブックを実行する頻度を選択します(例えば、 Daily)。

  6. 選択した頻度よって、 Scheduled time やその他のオプションを調整し、ノートブックを実行するタイミングに合わせます。

  7. オプションで、 Parameter について、スケジュールされたノートブックに渡すコマンドライン構文の引数を追加できます。例: key1=value1 key2=value2 --option2

    注釈

    -- (2つのダッシュ)を単独の引数として渡すと、ダッシュの前に渡された引数はすべてノートブックのランタイムに渡されたと解釈されます。

  8. スケジュールのプレビューを確認し、 Create を選択します。

ノートブックの実行をスケジュールするタスクが作成されます。

ノートブックのスケジュール管理

ノートブックのスケジュールを作成すると、ノートブックが属するスキーマのタスクリストからスケジュールの表示や編集ができます。

  1. Projects » Notebooks を選択します。

  2. スケジュールを管理するノートブックを探して選択します。

  3. ノートブックでスケジュールボタン、 View schedules の順に選択します。ノートブックのスキーマに含まれるすべてのタスクのテーブルを表示します。

  4. ノートブックを実行するタスクで垂直の省略記号 ワークシートのその他のアクション メニューを使い、アクションを選択します。

スケジュールの時間や頻度の変更、タスクの中断や中止などの編集が可能です。タスク管理の詳細については、 タスクの紹介 をご参照ください。

スケジュールされたノートブックのパラメーターへのアクセス

sys.argv を使って、スケジュールされたノートブック内のパラメーターにアクセスできます。例:

# first argument
sys.argv[0]

# print the entire list
st.write(sys.argv)
Copy

過去にスケジュールされたノートブックの管理

ノートブックがスケジュール通りに実行されると、ノートブックの実行履歴を確認できます。

  1. Projects » Notebooks を選択します。

  2. スケジュールするノートブックを探して選択します。

  3. ノートブックでスケジュールボタン、 View run history の順に選択します。

    ノートブックの Run History ダイアログが表示されます。

  4. スケジュールされたタスクまたはAPIによって生成された実行アクティビティを含む、ノートブックの実行履歴を確認できます。ユーザーによるノートブックの実行は含まれません。以下の情報を確認できます。

    • Trigger:ノートブックを実行された原因であるタスクの名前。

    • Last Ran:最後にスケジュールされたノートブック実行時のタイムスタンプ。

    • Status:実行されたタスクのステータス。

    • Duration:ノートブックの実行にかかった時間。

    • Results:ノートブックの実行結果へのリンク。結果は読み取り専用で、ノートブックのセルは編集できません。 Edit current notebook を選択すると、現在のバージョンのノートブックを開いて編集することができます。

  5. オプションで View all tasks in schema を選択すると、スキーマに含まれる全タスクの表が表示されます。

  6. Done を選択してノートブックに戻ります。

タスク履歴の表示の詳細については、 アカウントのタスク履歴を表示する をご参照ください。

独自のスケジュールの使用

Airflowのような独自のスケジューリングツールを使用してノートブックを実行することを好む顧客もいます。そのためには、以下のコマンドを実行します。

EXECUTE NOTEBOOK DB.SCHEMA.NOTEBOOK_NAME();
Copy

これはノートブックを上から下へセルごとに実行します。結果はノートブックの走行履歴セクションからアクセスできます。

制限事項

  • スケジュールされたノートブックの実行履歴は、過去7日間に制限されています。

  • スケジュールタスクとして実行されているノートブックの名前を変更すると、タスクでエラーが発生することがあります。 CREATE TASK コマンドを使って手動でタスクを編集し、変更した名前でノートブックを呼び出すことができます。