Snowflake Notebookの実行スケジュール

ノートブックを実行するスケジュールを作成すると、 Snowsight は、そのスケジュールでノートブックを実行するタスクが作成されます。 Snowsight は、非インタラクティブモードで、上から下へセルごとにノートブックを実行します。ノートブックの実行に使用されるタスクは、ノートブック・オーナー・ロールが所有し、実行にノートブック・ウェアハウスを使用します。デフォルトでは、ノートブックのタスク実行は10回失敗すると自動停止します。タスクの詳細については、 タスクの紹介 をご参照ください。

ノートブックを実行するたびにノートブックが起動し、ウェアハウスと接続します。その結果、ノートブックが使用するウェアハウスは再開され、スケジュールタスクが完了してから15分後までアクティビティが維持されます。

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

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

権限

オブジェクト

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

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

スケジュールされたノートブックに引数を渡します。

key1=value1 key2=value2 --option2 のような構文を使って、スケジュールノートブックにコマンドライン引数を渡すことができます。そして、スケジュールノートブック内の sys.argv を使って、これらのパラメーターにアクセスすることができます。

# first argument
sys.argv[0]

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

過去のノートブック実行スケジュールの表示

スケジュール通りにNotebooksが実行されると、その履歴を確認することができます。

  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 コマンドを使ってください。このコマンドを実行するときに、スケジュールノートブックに直接コマンドライン引数を渡すこともできます。例:

EXECUTE NOTEBOOK DB.SCHEMA.NOTEBOOK_NAME('--env staging --tablename staging-table');
Copy

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

制限事項

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

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

失敗したノートブックの実行

  • スケジュールされたNotebooksの実行がエラーになった場合、その実行は実行履歴に Failed ステータスで表示されます。ノートブックを作成したユーザーは、失敗した実行を開き、エラーが発生したセルを切り分けることができます。