安排 Snowflake 笔记本运行

当您创建运行笔记本的时间表时,Snowsight 会创建一个任务以按该计划运行笔记本。Snowsight 以非交互模式从上到下逐个单元格执行笔记本。用于运行笔记本的任务归笔记本所有者角色所有,并使用笔记本仓库来运行。默认情况下,笔记本的任务在 10 次失败后自动暂停。有关任务的详细信息,请参阅 任务简介

每次运行笔记本都会启动笔记本并将其与笔记本仓库连接起来。因此,笔记本使用的仓库将恢复并保持活动状态,直到计划任务完成 15 分钟后为止。

按计划运行笔记本所需的权限

由于按计划运行笔记本的过程会创建和执行任务,因此您必须使用具有以下权限的角色:

权限

对象

EXECUTE TASK

账户

USAGE

包含笔记本的数据库

USAGE、CREATE TASK

包含笔记本的架构

计划您的笔记本

要计划笔记本的运行,请通过执行以下操作来创建任务:

备注

您必须使用被授予 CREATE TASK 和 EXECUTE TASK 权限的角色。有关完整列表,请参阅 所需权限 部分。

  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

    备注

    如果您将 ``--``(两个短划线)作为独立参数传递,则在破折号之前传递的任何参数都将被解释为传递给笔记本运行时。

  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

查看过去的笔记本计划运行时间

笔记本按计划运行后,您可以查看其运行历史记录:

  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

这会从上到下逐个单元格执行笔记本。可在笔记本的运行历史记录部分中查看结果。

限制

  • 您的计划笔记本的运行历史记录仅限于最近七天。

  • 更改作为计划任务运行的笔记本电脑的名称可能会导致任务出错。您可以使用 CREATE TASK 命令手动编辑任务,使用更改后的名称调用笔记本。

笔记本运行失败

  • 如果计划的笔记本运行导致错误,该运行将显示在运行历史记录中,且状态为 Failed。创建笔记本的用户可以打开失败的运行并隔离发生错误的单元格。

语言: 中文