安排 Snowflake 笔记本运行¶
当您创建运行笔记本的时间表时,Snowsight 会创建一个任务以按该计划运行笔记本。Snowsight 以非交互模式从上到下逐个单元格执行笔记本。用于运行笔记本的任务归笔记本所有者角色所有,并使用笔记本仓库来运行。默认情况下,笔记本的任务在 10 次失败后自动暂停。有关任务的详细信息,请参阅 任务简介。
每次运行笔记本都会启动笔记本并将其与笔记本仓库连接起来。因此,笔记本使用的仓库将恢复并保持活动状态,直到计划任务完成 15 分钟后为止。
按计划运行笔记本所需的权限¶
由于按计划运行笔记本的过程会创建和执行任务,因此您必须使用具有以下权限的角色:
权限 |
对象 |
---|---|
EXECUTE TASK |
账户 |
USAGE |
包含笔记本的数据库 |
USAGE、CREATE TASK |
包含笔记本的架构 |
计划您的笔记本¶
要计划笔记本的运行,请通过执行以下操作来创建任务:
备注
您必须使用被授予 CREATE TASK 和 EXECUTE TASK 权限的角色。有关完整列表,请参阅 所需权限 部分。
选择 Projects » Notebooks。
找到并选择要计划的笔记本。
在笔记本中选择计划按钮,然后 Create schedule。
随即出现 Schedule a notebook run 对话框。
对于 Schedule name,输入笔记本计划的名称。它用作运行笔记本的任务的名称。
对于 Frequency,选择运行笔记本的频率(例如,Daily)。
根据您选择的频率,调整 Scheduled time 和其他选项以匹配您希望笔记本运行的时间。
或者 Parameter,您可以添加命令行语法参数以传递给预定笔记本。例如:
key1=value1 key2=value2 --option2
。查看计划的预览,然后选择 Create。
创建了一项任务,用于计划笔记本的运行。
管理笔记本计划¶
为笔记本创建计划后,您可以通过笔记本所在架构的任务列表查看和编辑计划。
选择 Projects » Notebooks。
找到并选择要管理计划的笔记本。
在笔记本中选择计划按钮,然后 View schedules。这将显示笔记本所在架构中包含的所有任务的表。
您可以进行编辑,例如更改计划的时间或频率,以及完全暂停或删除任务。有关管理任务的更多详情,请参阅 任务简介。
将实参传递给计划的笔记本¶
您可以使用 key1=value1 key2=value2 --option2
等语法将命令行实参传递给计划的笔记本。然后,您可以使用笔记本内的 sys.argv
访问计划笔记本内的这些参数。
# first argument
sys.argv[0]
# print the entire list
st.write(sys.argv)
查看过去的笔记本计划运行时间¶
笔记本按计划运行后,您可以查看其运行历史记录:
选择 Projects » Notebooks。
找到并选择要计划的笔记本。
在笔记本中选择计划按钮,然后 View run history。
将出现笔记本的 Run History 对话框。
您可以查看笔记本的运行历史记录,包括计划任务生成的运行活动或 API。不包括用户运行的笔记本。您还可以查看以下详细信息:
Trigger:导致笔记本运行的任务的名称。
Last Ran:上次计划运行笔记本的时间戳。
Status:已运行任务的状态。
Duration:运行笔记本所花费的时间长度。
Results:指向笔记本运行结果的链接。结果是只读的,笔记本单元格无法编辑。您可以选择 Edit current notebook 打开和编辑笔记本的当前版本。
(可选)选择 View all tasks in schema 查看架构中包含的所有任务的表。
选择 Done 返回您的笔记本。
有关查看任务历史记录的更多信息,请参阅 查看账户的任务历史记录。
使用您自己的计划¶
要使用自己的计划工具(例如 Airflow)来运行笔记本,请使用 EXECUTE NOTEBOOK 命令。您也可以在运行此命令时直接将命令行实参传递给计划的笔记本。例如:
EXECUTE NOTEBOOK DB.SCHEMA.NOTEBOOK_NAME('--env staging --tablename staging-table');
这会从上到下逐个单元格执行笔记本。可在笔记本的运行历史记录部分中查看结果。
限制¶
您的计划笔记本的运行历史记录仅限于最近七天。
更改作为计划任务运行的笔记本电脑的名称可能会导致任务出错。您可以使用 CREATE TASK 命令手动编辑任务,使用更改后的名称调用笔记本。
笔记本运行失败¶
如果计划的笔记本运行导致错误,该运行将显示在运行历史记录中,且状态为
Failed
。创建笔记本的用户可以打开失败的运行并隔离发生错误的单元格。