Skip to content

Commit 64f292f

Browse files
🌐 Add LLM Translations (#865)
* 💬Generate LLM translations * docs: minor update Signed-off-by: Chojan Shang <[email protected]> --------- Signed-off-by: Chojan Shang <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chojan Shang <[email protected]>
1 parent 1dc4927 commit 64f292f

12 files changed

+309
-292
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
---
2+
title: 创建任务
3+
sidebar_position: 1
4+
---
5+
6+
import FunctionDescription from '@site/src/components/FunctionDescription';
7+
8+
<FunctionDescription description="引入或更新于:v1.2.371"/>
9+
10+
CREATE TASK 语句用于定义一个新任务,该任务按照预定的时间表或基于任务图的 DAG 执行指定的 SQL 语句。
11+
12+
**注意:**此功能仅在 Databend Cloud 中开箱即用。
13+
14+
## 语法
15+
16+
```sql
17+
CREATE TASK [ IF NOT EXISTS ] <name>
18+
[ WAREHOUSE = <string ]
19+
[ SCHEDULE = { <num> MINUTE | <num> SECOND | USING CRON <expr> <time_zone> } ]
20+
[ AFTER <string> [ , <string> , ... ]]
21+
[ WHEN <boolean_expr> ]
22+
[ SUSPEND_TASK_AFTER_NUM_FAILURES = <num> ]
23+
[ ERROR_INTEGRATION = <string> ]
24+
[ COMMENT = '<string_literal>' ]
25+
[ <session_parameter> = <value> [ , <session_parameter> = <value> ... ] ]
26+
AS
27+
<sql>
28+
```
29+
30+
| 参数 | 描述 |
31+
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
32+
| IF NOT EXISTS | 可选。如果指定,仅当不存在同名任务时才创建任务。 |
33+
| name | 任务的名称。这是一个必填字段。 |
34+
| WAREHOUSE | 可选。指定任务使用的虚拟仓库。 |
35+
| SCHEDULE | 可选。定义任务运行的计划。可以按分钟指定,或使用带有时区的 CRON 表达式。 |
36+
| SUSPEND_TASK_AFTER_NUM_FAILURES | 可选。任务在连续失败指定次数后将自动暂停。 |
37+
| AFTER | 列出必须在当前任务开始之前完成的任务。 |
38+
| WHEN boolean_expr | 任务运行必须为真的条件。 |
39+
| [ERROR_INTEGRATION](../16-notification/index.md) | 可选。任务错误通知使用的通知集成名称,特定[任务错误负载](./10-task-error-integration-payload.md)将应用于该任务。 |
40+
| COMMENT | 可选。作为任务注释或描述的字符串字面量。 |
41+
| session_parameter | 可选。指定任务运行期间使用的会话参数。 |
42+
| sql | 任务将执行的 SQL 语句,可以是单个语句或脚本。这是一个必填字段。 |
43+
44+
### 使用说明:
45+
46+
- 必须为独立任务或 DAG 中的根任务定义计划;否则,任务仅在手动执行 EXECUTE TASK 时运行。
47+
- 不能为 DAG 中的子任务指定计划。
48+
- 创建任务后,必须执行 `ALTER TASK … RESUME` 才能根据任务定义中的参数运行任务。
49+
- 当条件仅支持一部分 <boolean_expression>。以下是在任务 WHEN 子句中支持的:
50+
51+
- [STREAM_STATUS](../../../00-sql-reference/20-system-tables/system-stream-status.md) 在 SQL 表达式中支持评估。此函数指示指定的流是否包含变更跟踪数据。您可以使用此函数在当前运行开始前评估指定的流是否包含变更数据。如果结果为 FALSE,则任务不运行。
52+
- 布尔运算符,如 AND、OR、NOT 等。
53+
- 数值、字符串和布尔类型之间的转换。
54+
- 比较运算符,如等于、不等于、大于、小于等。
55+
56+
- 从单个表流消费变更数据的多个任务检索不同的增量。当任务使用 DML 语句消费流中的变更数据时,流会推进偏移量。变更数据不再可供下一个任务消费。目前,我们建议仅有一个任务从流中消费变更数据。可以为同一表创建多个流,并由不同的任务消费。
57+
- 任务不会在每次执行时重试;每次执行都是串行的。每个脚本 SQL 按顺序执行,没有并行执行。这确保了任务执行的顺序和依赖关系得到维护。
58+
- 基于间隔的任务以紧密的方式遵循固定间隔点。这意味着如果当前任务执行时间超过间隔单位,下一个任务将立即执行。否则,下一个任务将等待直到下一个间隔单位被触发。例如,如果任务定义为 1 秒间隔,一次任务执行耗时 1.5 秒,则下一个任务将立即执行。如果一次任务执行耗时 0.5 秒,则下一个任务将等待直到下一个 1 秒间隔开始。
59+
60+
## 使用示例
61+
62+
```sql
63+
CREATE TASK my_daily_task
64+
WAREHOUSE = 'compute_wh'
65+
SCHEDULE = USING CRON '0 9 * * * *' 'America/Los_Angeles'
66+
COMMENT = '每日汇总任务'
67+
AS
68+
INSERT INTO summary_table SELECT * FROM source_table;
69+
```
70+
71+
在此示例中,创建了一个名为 my_daily_task 的任务。它使用 compute_wh 仓库运行一个 SQL 语句,将数据从 source_table 插入到 summary_table。该任务计划每天上午 9 点太平洋时间运行。
72+
73+
```sql
74+
CREATE TASK IF NOT EXISTS mytask
75+
WAREHOUSE = 'system'
76+
SCHEDULE = 2 MINUTE
77+
SUSPEND_TASK_AFTER_NUM_FAILURES = 3
78+
AS
79+
INSERT INTO compaction_test.test VALUES((1));
80+
```
81+
82+
此示例创建了一个名为 mytask 的任务,如果不存在。该任务分配给系统仓库,并计划每 2 分钟运行一次。如果连续失败三次,任务将被暂停。该任务执行向 compaction_test.test 表插入操作。
83+
84+
```sql
85+
CREATE TASK IF NOT EXISTS daily_sales_summary
86+
WAREHOUSE = 'analytics'
87+
SCHEDULE = 30 SECOND
88+
FROM sales_data
89+
GROUP BY sales_date;
90+
```
91+
92+
在此示例中,创建了一个名为 daily_sales_summary 的任务,具有秒级调度。它计划每 30 秒运行一次。该任务使用 'analytics' 仓库,并通过聚合 sales_data 表的数据来计算每日销售汇总。
93+
94+
```sql
95+
CREATE TASK IF NOT EXISTS process_orders
96+
WAREHOUSE = 'etl'
97+
AFTER task1, task2
98+
ASINSERT INTO data_warehouse.orders
99+
SELECT * FROM staging.orders;
100+
```
101+
102+
在此示例中,创建了一个名为 process_orders 的任务,并定义为在 task1 和 task2 成功完成后运行。这对于在有向无环图 (DAG) 中创建依赖关系非常有用。该任务使用 'etl' 仓库,并将数据从暂存区转移到数据仓库。
103+
104+
```sql
105+
CREATE TASK IF NOT EXISTS hourly_data_cleanup
106+
WAREHOUSE = 'maintenance'
107+
SCHEDULE = '0 * * * *'
108+
WHEN STREAM_STATUS('change_stream') = TRUE
109+
AS
110+
DELETE FROM archived_data
111+
WHERE archived_date < DATEADD(HOUR, -24, CURRENT_TIMESTAMP());
112+
113+
```
114+
115+
在此示例中,创建了一个名为 hourly_data_cleanup 的任务。它使用维护仓库,并计划每小时运行一次。该任务删除 archived_data 表中超过 24 小时的数据。仅当 change_stream 流包含变更数据时,任务才会运行。
116+
117+
```sql
118+
CREATE TASK IF NOT EXISTS mytask
119+
WAREHOUSE = 'mywh'
120+
SCHEDULE = 30 SECOND
121+
ERROR_INTEGRATION = 'myerror'
122+
AS
123+
BEGIN
124+
BEGIN;
125+
INSERT INTO mytable(ts) VALUES(CURRENT_TIMESTAMP);
126+
DELETE FROM mytable WHERE ts < DATEADD(MINUTE, -5, CURRENT_TIMESTAMP());
127+
COMMIT;
128+
END;
129+
```
130+
131+
在此示例中,创建了一个名为 mytask 的任务。它使用 mywh 仓库,并计划每 30 秒运行一次。该任务执行一个 BEGIN 块,其中包含一个 INSERT 语句和一个 DELETE 语句。任务在执行完两个语句后提交事务。当任务失败时,将触发名为 myerror 的错误集成。
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
---
2+
title: 修改任务
3+
sidebar_position: 2
4+
---
5+
6+
import FunctionDescription from '@site/src/components/FunctionDescription';
7+
8+
<FunctionDescription description="引入或更新: v1.2.371"/>
9+
10+
ALTER TASK 语句用于修改现有的任务。
11+
12+
**注意:**此功能仅在 Databend Cloud 中开箱即用。
13+
14+
## 语法
15+
16+
```sql
17+
--- 挂起或恢复任务
18+
ALTER TASK [ IF EXISTS ] <name> RESUME | SUSPEND
19+
20+
--- 更改任务设置
21+
ALTER TASK [ IF EXISTS ] <name> SET
22+
[ WAREHOUSE = <string> ]
23+
[ SCHEDULE = { <number> MINUTE | <number> SECOND | USING CRON <expr> <time_zone> } ]
24+
[ SUSPEND_TASK_AFTER_NUM_FAILURES = <num ]
25+
[ ERROR_INTEGRATION = <string> ]
26+
[ <session_parameter> = <value> [ , <session_parameter> = <value> ... ] ]
27+
[ COMMENT = <string> ]
28+
29+
--- 更改任务 SQL
30+
ALTER TASK [ IF EXISTS ] <name> MODIFY AS <sql>
31+
32+
--- 修改 DAG 的条件和后置条件
33+
ALTER TASK [ IF EXISTS ] <name> REMOVE AFTER <string> [ , <string> , ... ] | ADD AFTER <string> [ , <string> , ... ]
34+
--- 允许更改任务执行的条件
35+
ALTER TASK [ IF EXISTS ] <name> MODIFY WHEN <boolean_expr>
36+
```
37+
38+
| 参数 | 描述 |
39+
| ----------------- | --------------------------------------------------------------------------- |
40+
| IF EXISTS | 可选。如果指定,则仅当存在同名任务时才会修改任务。 |
41+
| name | 任务的名称。这是一个必填字段。 |
42+
| RESUME \| SUSPEND | 恢复或挂起任务。 |
43+
| SET | 更改任务设置。详细参数描述请参见 [创建任务](01-ddl-create_task.md)|
44+
| MODIFY AS | 更改任务 SQL。 |
45+
| REMOVE AFTER | 从任务 DAG 中移除前置任务,任务将成为独立任务或如果无前置任务则成为根任务。 |
46+
| ADD AFTER | 向任务 DAG 添加前置任务。 |
47+
| MODIFY WHEN | 更改任务执行的条件。 |
48+
49+
## 示例
50+
51+
```sql
52+
ALTER TASK IF EXISTS mytask SUSPEND;
53+
```
54+
55+
此命令挂起名为 mytask 的任务(如果存在)。
56+
57+
```sql
58+
ALTER TASK IF EXISTS mytask SET
59+
WAREHOUSE = 'new_warehouse'
60+
SCHEDULE = USING CRON '0 12 * * * *' 'UTC';
61+
```
62+
63+
此示例修改 mytask 任务,将其仓库更改为 new_warehouse,并将其计划更新为每天 UTC 中午运行。
64+
65+
```sql
66+
ALTER TASK IF EXISTS mytask MODIFY
67+
AS
68+
INSERT INTO new_table SELECT * FROM source_table;
69+
```
70+
71+
这里,mytask 执行的 SQL 语句被更改为从 source_table 向 new_table 插入数据。
72+
73+
```sql
74+
ALTER TASK mytaskchild MODIFY WHEN STREAM_STATUS('stream3') = False;
75+
```
76+
77+
在此示例中,我们正在修改 mytaskchild 任务以更改其 WHEN 条件。任务现在仅在 'stream3' 的 STREAM_STATUS 函数评估为 False 时运行。这意味着当 'stream3' 不包含变更数据时,任务将执行。
78+
79+
```sql
80+
ALTER TASK MyTask1 ADD AFTER 'task2', 'task3';
81+
```
82+
83+
在此示例中,我们正在向 MyTask1 任务添加依赖项。它现在将在 'task2' 和 'task3' 成功完成后运行。这在一个任务的有向无环图 (DAG) 中创建了依赖关系。
84+
85+
```sql
86+
ALTER TASK MyTask1 REMOVE AFTER 'task2';
87+
```
88+
89+
这里,我们正在为 MyTask1 任务移除特定的依赖项。它将不再在 'task2' 之后运行。如果您想在任务的 DAG 中修改任务的依赖关系,这可能很有用。
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: 删除任务
3+
sidebar_position: 3
4+
---
5+
6+
import FunctionDescription from '@site/src/components/FunctionDescription';
7+
8+
<FunctionDescription description="引入或更新: v1.2.371"/>
9+
10+
DROP TASK 语句用于删除一个现有的任务。
11+
12+
**注意:**此功能仅在 Databend Cloud 中开箱即用。
13+
14+
## 语法
15+
16+
```sql
17+
DROP TASK [ IF EXISTS ] <name>
18+
```
19+
20+
| 参数 | 描述 |
21+
| --------- | -------------------------------------------------------- |
22+
| IF EXISTS | 可选。如果指定,只有当存在同名任务时,该任务才会被删除。 |
23+
| name | 任务的名称。这是一个必填字段。 |
24+
25+
## 使用说明:
26+
27+
- 如果在 DAG 中删除一个前驱任务,那么所有之前将该任务标识为前驱的子任务将变为独立任务或根任务,这取决于是否有其他任务将这些之前的子任务标识为它们的前驱。这些之前的子任务默认会被挂起,并且必须手动恢复。
28+
- 在删除前,根任务必须先被挂起。
29+
30+
## 使用示例
31+
32+
```sql
33+
DROP TASK IF EXISTS mytask;
34+
```
35+
36+
此命令将删除名为 mytask 的任务(如果它存在)。
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
title: 执行任务
3+
sidebar_position: 4
4+
---
5+
6+
import FunctionDescription from '@site/src/components/FunctionDescription';
7+
8+
<FunctionDescription description="引入或更新版本: v1.2.371"/>
9+
10+
EXECUTE TASK 语句用于手动执行一个已存在的任务。
11+
12+
**注意:** 此功能仅在 Databend Cloud 中默认可用。
13+
14+
## 语法
15+
16+
```sql
17+
EXECUTE TASK <name>
18+
```
19+
20+
| 参数 | 描述 |
21+
| ---- | ------------------------------ |
22+
| name | 任务的名称。这是一个必填字段。 |
23+
24+
## 使用说明
25+
26+
- SQL 命令只能执行一个独立的任务或 DAG 中的根任务。如果输入的是子任务,命令将返回用户错误。
27+
28+
## 使用示例
29+
30+
```sql
31+
EXECUTE TASK mytask;
32+
```
33+
34+
此命令执行名为 mytask 的任务。

docs/cn/sql-reference/10-sql-commands/00-ddl/15-task/10-task-error-integration-payload.md renamed to docs/cn/sql-reference/10-sql-commands/00-ddl/04-task/10-task-error-integration-payload.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22
title: 任务错误通知负载
33
sidebar_position: 10
44
---
5+
56
import FunctionDescription from '@site/src/components/FunctionDescription';
67

7-
<FunctionDescription description="引入或更新于v1.2.371"/>
8+
<FunctionDescription description="引入或更新于: v1.2.371"/>
89

9-
任务错误通知的负载体
10+
任务错误通知的负载主体
1011

11-
**注意:**此功能仅在 Databend Cloud 中开箱即用
12+
**注意:**此功能仅在 Databend Cloud 中默认启用
1213

13-
以下是描述任务错误的示例消息负载。负载可以包含一个或多个错误消息。
14+
以下是一个描述任务错误的示例消息负载。负载可以包含一个或多个错误消息。
1415

1516
```json
1617
{
@@ -32,4 +33,4 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
3233
"errorCode": "500",
3334
"errorMessage": "query sync failed: All attempts fail: #1: query error: code: 1006, message: divided by zero while evaluating function divide(1, 0)"
3435
}
35-
```
36+
```
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"label": "任务(TASK)",
3+
"position": 7
4+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
title: 任务
3+
---
4+
5+
import IndexOverviewList from '@site/src/components/IndexOverviewList';
6+
7+
本页提供 Databend Cloud 中与任务相关的命令参考信息。
8+
9+
<IndexOverviewList />

0 commit comments

Comments
 (0)