教程 2:创建和管理任务¶
简介¶
在本教程中,您将学习如何通过提交 REST 查询来创建和管理任务。
先决条件¶
备注
如果您已经完成了 Snowflake REST APIs 教程的常见设置 中的步骤,您可以跳过这些前提条件,直接进入本教程的第一步。
在您开始学习本教程之前,您必须完成 常见设置 说明,其中包括以下步骤:
导入 Snowflake REST APIs Postman 集合。
在 Postman 中设置持有者令牌,以对您的连接执行身份验证。
完成这些先决条件后,您就可以开始使用 API 了。
创建仓库¶
您可以使用仓库 API 来创建一个 Snowflake 仓库。
若要创建超小型 (xsmall
) 仓库,并将其名称指定为 demo_wh
,请将以下 POST 请求发送到 /api/v2/warehouses
端点,如此处所示:
在 Params 选项卡中,将
createMode
参数设置为errorIfExists
,这能确保您不会无意中覆盖现有仓库。在 Body 选项卡中,将以下代码添加到请求主体中,如此处所示。
{ "name": "demo_wh", "warehouse_size": "xsmall" }
有关详细信息,请参阅 Snowflake 仓库 API 参考。
创建任务¶
您可以使用任务 API 来创建 Snowflake 任务。
若要创建任务,请发送 POST 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks
端点,如此处所示:
在 Params 选项卡中,将
createMode
参数设置为orReplace
,并将database
和schema
路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}
和{{default_schema}}
)。在 Body 选项卡中添加请求主体,如此处所示。
{ "name": "{{test_task_name}}", "definition": "SELECT 1", "warehouse": "{{default_wh}}", "schedule": {"minutes": 2, "schedule_type": "MINUTES_TYPE"}, "config": {"consecteture": false, "sed_9": 61393640, "doloref3": -85761000}, "commnent": "comment", "session_parameters": { "TIMEZONE": "America/Los Angeles", "AUTOMCOMMIT": true }, "error_integration": null, "user_task_managed_initial_warehouse_size": null, "predecessors": null, "task_auto_retry_attempts": 3, "user_task_timeout_ms": 10000, "suspend_task_after_num_failures": 3, "condition": true, "allow_overlapping_execution": false }
有关详细信息,请参阅 Snowflake 任务 API 参考。
提取任务¶
您可以使用任务 API 来提取 Snowflake 任务。
要提取有关任务的详情,请发送 GET 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks
端点,如此处所示:
在 Params 选项卡中,将
database
、schema
和name
路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}
、{{default_schema}}
和{{test_task_name}}
)。
有关详细信息,请参阅 Snowflake 任务 API 参考。
列出任务¶
您可以使用任务 API 列出 Snowflake 任务。
要列出所有可用任务,请将 GET 请求发送至 /api/v2/databases/{database}/schemas/{schema}/tasks
端点,如此处所示:
在 Params 选项卡中,将
rootOnly
参数设置为false
,并将database
和schema
路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}
和{{default_schema}}
)。
有关详细信息,请参阅 Snowflake 任务 API 参考。
删除任务¶
您可以使用任务 API 来删除 Snowflake 任务。
要删除任务,请发送 DELETE 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks/{name}
端点,如此处所示:
在 Params 选项卡中,将
database
、schema
和name
路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}
、{{default_schema}}
和{{test_task_name}}
)。
有关详细信息,请参阅 Snowflake 任务 API 参考。
执行任务¶
您可以使用任务 API 来执行 Snowflake 任务。
要执行失败后不重试的任务,请发送 POST 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks/{name}:execute
端点,如此处所示:
在 Params 选项卡中,将
retryLast
参数设置为false
,并将database
和schema
路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}
和{{default_schema}}
)。
有关详细信息,请参阅 Snowflake 任务 API 参考。
完成图¶
备注
本教程假设您已定义默认仓库。
您可以使用任务 API 来返回已完成的图运行的详情。
要返回一个任务的已完成图运行的详细信息,请发送 GET 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks/{name}:execute
端点,如此处所示:
在 Params 选项卡中执行以下操作:
将
resultLimit
和errorOnly
查询参数分别设置为5
和false
。将
database
、schema
和name
路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}
、{{default_schema}}
和{{test_task_name}}
)。
有关详细信息,请参阅 Snowflake 任务 API 参考。
创建子任务¶
您可以使用任务 API 来为现有 Snowflake 任务创建子任务。
要创建子任务,请发送 POST 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks
端点,如此处所示:
在 Params 选项卡中,将
createMode
参数设置为orReplace
,并将database
和schema
路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}
和{{default_schema}}
)。在 Body 选项卡中添加请求主体,如此处所示。
name
参数指定子任务的名称,predecessors
标识父任务的名称。{ "name": "test_child_task", "definition": "SELECT 1", "warehouse": "{{default_wh}}", "predecessors": "{{test_task_name}}" }
有关详细信息,请参阅 Snowflake 任务 API 参考。
提取父任务的依赖任务¶
备注
本教程假设您已定义默认仓库。
您可以使用任务 API 来提取 Snowflake 任务的子任务(依赖任务)。
要提取有关子任务(依赖任务)的详细信息,请发送 GET 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks/{name}/dependents
端点,如此处所示:
在 Params 选项卡中,将
recursive
查询参数设置为true
,并将database
、schema
和name
路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}
、{{default_schema}}
和{{test_task_name}}
)。请注意,结果中包括父任务及其子任务。
有关详细信息,请参阅 Snowflake 任务 API 参考。
下一步是什么?¶
恭喜!在本教程中,您学习了使用 Snowflake REST APIs 管理 Snowflake 仓库和任务资源的基础知识。
摘要¶
在此过程中,您完成了以下步骤:
创建仓库。
创建任务。
提取任务。
删除任务。
执行任务。
完成图。
创建子任务。
提取父任务的依赖任务。