教程 2:创建和管理任务

简介

在本教程中,您将学习如何通过提交 REST 查询来创建和管理任务。

先决条件

备注

如果您已经完成了 Snowflake REST APIs 教程的常见设置 中的步骤,您可以跳过这些前提条件,直接进入本教程的第一步。

在您开始学习本教程之前,您必须完成 常见设置 说明,其中包括以下步骤:

  • 导入 Snowflake REST APIs Postman 集合。

  • 在 Postman 中设置持有者令牌,以对您的连接执行身份验证。

完成这些先决条件后,您就可以开始使用 API 了。

创建仓库

您可以使用仓库 API 来创建一个 Snowflake 仓库。

若要创建超小型 (xsmall) 仓库,并将其名称指定为 demo_wh,请将以下 POST 请求发送到 /api/v2/warehouses 端点,如此处所示:

  • Params 选项卡中,将 createMode 参数设置为 errorIfExists,这能确保您不会无意中覆盖现有仓库。

    ../../../_images/create-warehouse-params.png
  • Body 选项卡中,将以下代码添加到请求主体中,如此处所示。

    {
      "name": "demo_wh",
      "warehouse_size": "xsmall"
    }
    
    Copy
    ../../../_images/create-warehouse1.png

有关详细信息,请参阅 Snowflake 仓库 API 参考

创建任务

您可以使用任务 API 来创建 Snowflake 任务。

若要创建任务,请发送 POST 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks 端点,如此处所示:

  • Params 选项卡中,将 createMode 参数设置为 orReplace,并将 databaseschema 路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}{{default_schema}})。

    ../../../_images/create-task-params.png
  • 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
    }
    
    Copy
    ../../../_images/create-task1.png

有关详细信息,请参阅 Snowflake 任务 API 参考

提取任务

您可以使用任务 API 来提取 Snowflake 任务。

要提取有关任务的详情,请发送 GET 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks 端点,如此处所示:

  • Params 选项卡中,将 databaseschemaname 路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}{{default_schema}}{{test_task_name}})。

    ../../../_images/fetch-task1.png

有关详细信息,请参阅 Snowflake 任务 API 参考

列出任务

您可以使用任务 API 列出 Snowflake 任务。

要列出所有可用任务,请将 GET 请求发送至 /api/v2/databases/{database}/schemas/{schema}/tasks 端点,如此处所示:

  • Params 选项卡中,将 rootOnly 参数设置为 false,并将 databaseschema 路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}{{default_schema}})。

    ../../../_images/list-tasks1.png

有关详细信息,请参阅 Snowflake 任务 API 参考

删除任务

您可以使用任务 API 来删除 Snowflake 任务。

要删除任务,请发送 DELETE 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks/{name} 端点,如此处所示:

  • Params 选项卡中,将 databaseschemaname 路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}{{default_schema}}{{test_task_name}})。

    ../../../_images/delete-task.png

有关详细信息,请参阅 Snowflake 任务 API 参考

执行任务

您可以使用任务 API 来执行 Snowflake 任务。

要执行失败后不重试的任务,请发送 POST 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks/{name}:execute 端点,如此处所示:

  • Params 选项卡中,将 retryLast 参数设置为 false,并将 databaseschema 路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}{{default_schema}})。

    ../../../_images/execute-task.png

有关详细信息,请参阅 Snowflake 任务 API 参考

完成图

备注

本教程假设您已定义默认仓库。

您可以使用任务 API 来返回已完成的图运行的详情。

要返回一个任务的已完成图运行的详细信息,请发送 GET 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks/{name}:execute 端点,如此处所示:

  • Params 选项卡中执行以下操作:

    • resultLimiterrorOnly 查询参数分别设置为 5false

    • databaseschemaname 路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}{{default_schema}}{{test_task_name}})。

    ../../../_images/complete-graphs.png

有关详细信息,请参阅 Snowflake 任务 API 参考

创建子任务

您可以使用任务 API 来为现有 Snowflake 任务创建子任务。

要创建子任务,请发送 POST 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks 端点,如此处所示:

  • Params 选项卡中,将 createMode 参数设置为 orReplace,并将 databaseschema 路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}{{default_schema}})。

    ../../../_images/create-task-params.png
  • Body 选项卡中添加请求主体,如此处所示。name 参数指定子任务的名称,predecessors 标识父任务的名称。

    {
      "name": "test_child_task",
      "definition": "SELECT 1",
      "warehouse": "{{default_wh}}",
      "predecessors": "{{test_task_name}}"
    }
    
    Copy
    ../../../_images/create-child-task.png

有关详细信息,请参阅 Snowflake 任务 API 参考

提取父任务的依赖任务

备注

本教程假设您已定义默认仓库。

您可以使用任务 API 来提取 Snowflake 任务的子任务(依赖任务)。

要提取有关子任务(依赖任务)的详细信息,请发送 GET 请求至 /api/v2/databases/{database}/schemas/{schema}/tasks/{name}/dependents 端点,如此处所示:

  • Params 选项卡中,将 recursive 查询参数设置为 true,并将 databaseschemaname 路径变量设置为使用您在 Snowflake REST APIs 教程的常见设置 教程中设置的环境变量({{default_db}}{{default_schema}}{{test_task_name}})。

    ../../../_images/get-task-dependents.png

    请注意,结果中包括父任务及其子任务。

有关详细信息,请参阅 Snowflake 任务 API 参考

下一步是什么?

恭喜!在本教程中,您学习了使用 Snowflake REST APIs 管理 Snowflake 仓库和任务资源的基础知识。

摘要

在此过程中,您完成了以下步骤:

  • 创建仓库。

  • 创建任务。

  • 提取任务。

  • 删除任务。

  • 执行任务。

  • 完成图。

  • 创建子任务。

  • 提取父任务的依赖任务。

语言: 中文