2929
3030| 参数 | 描述 |
3131| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
32- | IF NOT EXISTS | 可选。如果指定,则仅当不存在同名任务时才会创建任务 。 |
33- | name | 任务的名称。这是一个必填字段。 |
32+ | IF NOT EXISTS | 可选。如果指定,则仅当同名任务不存在时才会创建任务 。 |
33+ | name | 任务的名称。这是一个必填字段。 |
3434| WAREHOUSE | 可选。指定任务使用的虚拟计算集群。 |
35- | SCHEDULE | 可选。定义任务运行的调度计划 。可以以分钟为单位指定,或使用 CRON 表达式以及时区。 |
36- | SUSPEND_TASK_AFTER_NUM_FAILURES | 可选。任务在连续失败指定次数后会自动挂起 。 |
35+ | SCHEDULE | 可选。定义任务运行的计划 。可以以分钟为单位指定,或使用 CRON 表达式以及时区。 |
36+ | SUSPEND_TASK_AFTER_NUM_FAILURES | 可选。任务在连续失败指定次数后将被自动挂起 。 |
3737| AFTER | 列出在此任务开始之前必须完成的任务。 |
3838| WHEN boolean_expr | 任务运行必须满足的条件。 |
3939| [ ERROR_INTEGRATION] ( ../16-notification/index.md ) | 可选。用于任务错误通知的通知集成名称,并应用特定的[ 任务错误负载] ( ./10-task-error-integration-payload.md ) 。 |
4343
4444### 使用说明
4545
46- - 必须为独立任务或任务 DAG 中的根任务定义调度计划 ;否则,任务仅在手动使用 EXECUTE TASK 执行时运行。
47- - 不能为 DAG 中的子任务指定调度计划 。
46+ - 必须为独立任务或任务 DAG 中的根任务定义计划 ;否则,任务仅在手动使用 EXECUTE TASK 执行时运行。
47+ - 不能为 DAG 中的子任务指定计划 。
4848- 创建任务后,必须执行 ALTER TASK … RESUME,任务才会根据任务定义中指定的参数运行。
49- - WHEN 条件仅支持部分 ` <boolean_expression> ` ,任务 WHEN 子句中支持以下内容:
49+ - 条件表达式仅支持 ` <boolean_expression> ` 的子集:
50+ 任务 WHEN 子句中支持以下内容:
5051
51- - [ STREAM_STATUS] ( ../../../20-sql-functions/17-table-functions/stream-status.md ) 可用于 SQL 表达式中的评估 。此函数指示指定的流是否包含变更跟踪数据。您可以在当前运行开始之前使用此函数评估指定的流是否包含变更数据 。如果结果为 FALSE,则任务不会运行。
52+ - [ STREAM_STATUS] ( ../../../20-sql-functions/17-table-functions/stream-status.md ) 可用于 SQL 表达式的评估 。此函数指示指定的流是否包含变更跟踪数据。您可以使用此函数在开始当前运行之前评估指定的流是否包含变更数据 。如果结果为 FALSE,则任务不会运行。
5253 - 布尔运算符,如 AND、OR、NOT 等。
53- - 数值 、字符串和布尔类型之间的转换。
54+ - 数字 、字符串和布尔类型之间的转换。
5455 - 比较运算符,如等于、不等于、大于、小于等。
56+
57+ ::: note
58+ 警告:在任务中使用 STREAM_STATUS 时,引用流时必须包含数据库名称(例如,` STREAM_STATUS('mydb.stream_name') ` )。
59+ :::
5560
56- - 从单个表流中消费变更数据的多个任务会检索不同的增量。当任务使用 DML 语句消费流中的变更数据时,流会推进偏移量。变更数据不再可供下一个任务消费 。目前,我们建议只有一个任务从流中消费变更数据。可以为同一表创建多个流,并由不同的任务消费。
61+ - 从单个表流中消费变更数据的多个任务会检索不同的增量。当任务使用 DML 语句消费流中的变更数据时,流会推进偏移量。变更数据将不再可供下一个任务消费 。目前,我们建议只有一个任务从流中消费变更数据。可以为同一表创建多个流,并由不同的任务消费。
5762- 任务不会在每次执行时重试;每次执行都是串行的。每个脚本 SQL 依次执行,没有并行执行。这确保了任务执行的顺序和依赖关系得以维护。
58- - 基于间隔的任务严格遵循固定的间隔点。这意味着如果当前任务执行时间超过间隔单位 ,下一个任务将立即执行。否则,下一个任务将等待直到下一个间隔单位触发。例如,如果任务定义为 1 秒间隔,且一次任务执行耗时 1.5 秒,则下一个任务将立即执行。如果一次任务执行耗时 0.5 秒,则下一个任务将等待直到下一个 1 秒间隔开始。
63+ - 基于间隔的任务严格遵循固定的间隔点。这意味着如果当前任务的执行时间超过间隔单位 ,下一个任务将立即执行。否则,下一个任务将等待直到下一个间隔单位触发。例如,如果任务定义为 1 秒间隔,且一次任务执行需要 1.5 秒,则下一个任务将立即执行。如果一次任务执行需要 0.5 秒,则下一个任务将等待直到下一个 1 秒间隔开始。
5964
6065### 关于 Cron 表达式的重要说明
6166
6267- ` SCHEDULE ` 参数中使用的 cron 表达式必须** 恰好包含 6 个字段** 。
63- - 字段表示以下内容 :
68+ - 这些字段表示以下内容 :
6469 1 . ** 秒** (0-59)
6570 2 . ** 分钟** (0-59)
6671 3 . ** 小时** (0-23)
6772 4 . ** 日期** (1-31)
6873 5 . ** 月份** (1-12 或 JAN-DEC)
69- 6 . ** 星期几** (0-6,其中 0 是周日 ,或 SUN-SAT)
74+ 6 . ** 星期几** (0-6,其中 0 是星期日 ,或 SUN-SAT)
7075
7176 #### Cron 表达式示例:
7277
7984
8085- ** 每小时的第 15 分钟:**
8186 - ` USING CRON '0 15 * * * *' 'UTC' `
82- - 这将在每小时的第 15 分钟运行任务 。
87+ - 这将在每小时的 15 分钟时运行任务 。
8388
8489- ** 每周一中午 12:00:00:**
8590 - ` USING CRON '0 0 12 * * 1' 'UTC' `
99104CREATE TASK my_daily_task
100105 WAREHOUSE = ' compute_wh'
101106 SCHEDULE = USING CRON ' 0 0 9 * * *' ' America/Los_Angeles'
102- COMMENT = ' 每日汇总任务 '
107+ COMMENT = ' 每日摘要任务 '
103108 AS
104109 INSERT INTO summary_table SELECT * FROM source_table;
105110```
115120INSERT INTO compaction_test .test VALUES ((1 ));
116121```
117122
118- 此示例创建了一个名为 mytask 的任务,如果它尚不存在。任务分配给 system 计算集群,并计划每 2 分钟运行一次。如果连续失败三次,任务将被挂起 。任务执行插入操作到 compaction_test.test 表中。
123+ 此示例创建了一个名为 mytask 的任务,如果它尚不存在。任务分配给 system 计算集群,并计划每 2 分钟运行一次。如果连续失败三次,它将被挂起 。任务执行插入操作到 compaction_test.test 表中。
119124
120125``` sql
121126CREATE TASK IF NOT EXISTS daily_sales_summary
@@ -125,7 +130,7 @@ FROM sales_data
125130GROUP BY sales_date;
126131```
127132
128- 在此示例中,创建了一个名为 daily_sales_summary 的任务,并设置了秒级调度。它计划每 30 秒运行一次。任务使用 'analytics' 计算集群,并通过从 sales_data 表中聚合数据来计算每日销售汇总 。
133+ 在此示例中,创建了一个名为 daily_sales_summary 的任务,并设置了秒级调度。它计划每 30 秒运行一次。任务使用 'analytics' 计算集群,并通过聚合 sales_data 表中的数据计算每日销售摘要 。
129134
130135``` sql
131136CREATE TASK IF NOT EXISTS process_orders
@@ -148,7 +153,7 @@ WHERE archived_date < DATEADD(HOUR, -24, CURRENT_TIMESTAMP());
148153
149154```
150155
151- 在此示例中,创建了一个名为 hourly_data_cleanup 的任务。它使用 maintenance 计算集群,并计划每小时运行一次。任务从 archived_data 表中删除超过 24 小时的数据。任务仅在 change_stream 流包含变更数据时运行。
156+ 在此示例中,创建了一个名为 hourly_data_cleanup 的任务。它使用 maintenance 计算集群,并计划每小时运行一次。任务删除 archived_data 表中超过 24 小时的数据。任务仅在 change_stream 流包含变更数据时运行。
152157
153158``` sql
154159CREATE TASK IF NOT EXISTS mytask
0 commit comments