@clickzetta/cz-cli-linux-x64 0.3.2 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cz-cli +0 -0
- package/package.json +1 -1
- package/bin/skills/clickzetta-access-control/SKILL.md +0 -243
- package/bin/skills/clickzetta-access-control/references/dynamic-masking.md +0 -86
- package/bin/skills/clickzetta-access-control/references/grant-revoke.md +0 -103
- package/bin/skills/clickzetta-access-control/references/role-management.md +0 -66
- package/bin/skills/clickzetta-access-control/references/user-management.md +0 -61
- package/bin/skills/clickzetta-ai-vector-search/SKILL.md +0 -160
- package/bin/skills/clickzetta-ai-vector-search/references/vector-search.md +0 -155
- package/bin/skills/clickzetta-app-python-sdk/SKILL.md +0 -153
- package/bin/skills/clickzetta-app-python-sdk/references/bulkload.md +0 -196
- package/bin/skills/clickzetta-app-python-sdk/references/connector.md +0 -143
- package/bin/skills/clickzetta-app-python-sdk/references/realtime.md +0 -122
- package/bin/skills/clickzetta-batch-sync-pipeline/SKILL.md +0 -293
- package/bin/skills/clickzetta-bi-connect/SKILL.md +0 -176
- package/bin/skills/clickzetta-bi-connect/references/bi-tools.md +0 -170
- package/bin/skills/clickzetta-cdc-sync-pipeline/SKILL.md +0 -450
- package/bin/skills/clickzetta-concepts/SKILL.md +0 -282
- package/bin/skills/clickzetta-concepts/references/brands-and-endpoints.md +0 -79
- package/bin/skills/clickzetta-concepts/references/object-model.md +0 -311
- package/bin/skills/clickzetta-data-ingest-pipeline/SKILL.md +0 -165
- package/bin/skills/clickzetta-data-lifecycle/SKILL.md +0 -211
- package/bin/skills/clickzetta-data-lifecycle/references/lifecycle-reference.md +0 -175
- package/bin/skills/clickzetta-data-recovery/SKILL.md +0 -215
- package/bin/skills/clickzetta-data-recovery/evals/evals.json +0 -35
- package/bin/skills/clickzetta-data-science/SKILL.md +0 -125
- package/bin/skills/clickzetta-data-science/references/bitmap-profile.md +0 -146
- package/bin/skills/clickzetta-data-science/references/data-patterns.md +0 -110
- package/bin/skills/clickzetta-data-science/references/setup.md +0 -160
- package/bin/skills/clickzetta-data-science/references/stats-functions.md +0 -195
- package/bin/skills/clickzetta-data-science/references/write-and-infer.md +0 -122
- package/bin/skills/clickzetta-data-science/references/zettapark-api.md +0 -156
- package/bin/skills/clickzetta-data-sharing/SKILL.md +0 -160
- package/bin/skills/clickzetta-data-sharing/references/share-ddl.md +0 -134
- package/bin/skills/clickzetta-dba-guide/SKILL.md +0 -540
- package/bin/skills/clickzetta-dw-modeling/SKILL.md +0 -259
- package/bin/skills/clickzetta-dw-modeling/references/modeling-patterns.md +0 -100
- package/bin/skills/clickzetta-dynamic-table/SKILL.md +0 -86
- package/bin/skills/clickzetta-dynamic-table/best-practices/dimension-table-join-guide.md +0 -257
- package/bin/skills/clickzetta-dynamic-table/best-practices/medallion-and-stream-patterns.md +0 -124
- package/bin/skills/clickzetta-dynamic-table/best-practices/non-partitioned-merge-into-warning.md +0 -96
- package/bin/skills/clickzetta-dynamic-table/best-practices/performance-optimization.md +0 -109
- package/bin/skills/clickzetta-dynamic-table/dt-creator/SKILL.md +0 -15
- package/bin/skills/clickzetta-dynamic-table/dt-creator/references/dt-declaration-strategy.md +0 -185
- package/bin/skills/clickzetta-dynamic-table/dt-creator/references/incremental-config-reference.md +0 -429
- package/bin/skills/clickzetta-dynamic-table/dt-creator/references/refresh-history-guide.md +0 -268
- package/bin/skills/clickzetta-dynamic-table/dt-creator/references/sql-limitations.md +0 -80
- package/bin/skills/clickzetta-dynamic-table/dynamic-table-alter/SKILL.md +0 -190
- package/bin/skills/clickzetta-external-catalog/SKILL.md +0 -120
- package/bin/skills/clickzetta-external-catalog/references/external-catalog-ddl.md +0 -130
- package/bin/skills/clickzetta-external-function/SKILL.md +0 -203
- package/bin/skills/clickzetta-external-function/references/external-function-ddl.md +0 -171
- package/bin/skills/clickzetta-file-import-pipeline/SKILL.md +0 -117
- package/bin/skills/clickzetta-index-manager/SKILL.md +0 -140
- package/bin/skills/clickzetta-index-manager/references/bloomfilter-index.md +0 -67
- package/bin/skills/clickzetta-index-manager/references/index-management.md +0 -73
- package/bin/skills/clickzetta-index-manager/references/inverted-index.md +0 -80
- package/bin/skills/clickzetta-index-manager/references/vector-index.md +0 -81
- package/bin/skills/clickzetta-information-schema/SKILL.md +0 -367
- package/bin/skills/clickzetta-information-schema/references/instance-views-reference.md +0 -276
- package/bin/skills/clickzetta-information-schema/references/metering-views-reference.md +0 -137
- package/bin/skills/clickzetta-information-schema/references/views-reference.md +0 -271
- package/bin/skills/clickzetta-java-sdk/SKILL.md +0 -186
- package/bin/skills/clickzetta-java-sdk/references/bulkload.md +0 -163
- package/bin/skills/clickzetta-java-sdk/references/realtime.md +0 -212
- package/bin/skills/clickzetta-kafka-ingest-pipeline/SKILL.md +0 -531
- package/bin/skills/clickzetta-kafka-ingest-pipeline/references/kafka-pipe-syntax.md +0 -186
- package/bin/skills/clickzetta-lakehouse-connect/SKILL.md +0 -218
- package/bin/skills/clickzetta-lakehouse-connect/evals/evals.json +0 -35
- package/bin/skills/clickzetta-lakehouse-connect/references/config-file.md +0 -435
- package/bin/skills/clickzetta-lakehouse-connect/references/jdbc.md +0 -478
- package/bin/skills/clickzetta-lakehouse-connect/references/python-sdk.md +0 -225
- package/bin/skills/clickzetta-lakehouse-connect/references/sqlalchemy.md +0 -468
- package/bin/skills/clickzetta-lakehouse-connect/references/zettapark-session.md +0 -445
- package/bin/skills/clickzetta-manage-comments/SKILL.md +0 -219
- package/bin/skills/clickzetta-metadata-query/SKILL.md +0 -298
- package/bin/skills/clickzetta-metadata-query/references/show-desc-reference.md +0 -326
- package/bin/skills/clickzetta-monitoring/SKILL.md +0 -199
- package/bin/skills/clickzetta-monitoring/references/job-history-analysis.md +0 -97
- package/bin/skills/clickzetta-monitoring/references/show-jobs.md +0 -48
- package/bin/skills/clickzetta-oss-ingest-pipeline/SKILL.md +0 -402
- package/bin/skills/clickzetta-query-optimizer/SKILL.md +0 -156
- package/bin/skills/clickzetta-query-optimizer/references/explain.md +0 -56
- package/bin/skills/clickzetta-query-optimizer/references/hints-and-sortkey.md +0 -78
- package/bin/skills/clickzetta-query-optimizer/references/optimize.md +0 -65
- package/bin/skills/clickzetta-query-optimizer/references/result-cache.md +0 -49
- package/bin/skills/clickzetta-query-optimizer/references/show-jobs.md +0 -42
- package/bin/skills/clickzetta-realtime-sync-pipeline/SKILL.md +0 -197
- package/bin/skills/clickzetta-semantic-view/SKILL.md +0 -207
- package/bin/skills/clickzetta-semantic-view/references/semantic-view-reference.md +0 -167
- package/bin/skills/clickzetta-spark-flink-connector/SKILL.md +0 -92
- package/bin/skills/clickzetta-spark-flink-connector/references/flink.md +0 -147
- package/bin/skills/clickzetta-spark-flink-connector/references/spark.md +0 -132
- package/bin/skills/clickzetta-sql-pipeline-manager/SKILL.md +0 -353
- package/bin/skills/clickzetta-sql-pipeline-manager/evals/evals.json +0 -166
- package/bin/skills/clickzetta-sql-pipeline-manager/references/dynamic-table.md +0 -173
- package/bin/skills/clickzetta-sql-pipeline-manager/references/materialized-view.md +0 -129
- package/bin/skills/clickzetta-sql-pipeline-manager/references/pipe.md +0 -160
- package/bin/skills/clickzetta-sql-pipeline-manager/references/table-stream.md +0 -123
- package/bin/skills/clickzetta-sql-syntax-guide/SKILL.md +0 -172
- package/bin/skills/clickzetta-sql-syntax-guide/references/ddl-reference.md +0 -350
- package/bin/skills/clickzetta-sql-syntax-guide/references/dml-reference.md +0 -279
- package/bin/skills/clickzetta-sql-syntax-guide/references/dql-reference.md +0 -504
- package/bin/skills/clickzetta-sql-syntax-guide/references/functions-reference.md +0 -372
- package/bin/skills/clickzetta-sql-syntax-guide/references/migration-databricks.md +0 -260
- package/bin/skills/clickzetta-sql-syntax-guide/references/migration-snowflake.md +0 -382
- package/bin/skills/clickzetta-sql-syntax-guide/references/vs-snowflake.md +0 -346
- package/bin/skills/clickzetta-sql-syntax-guide/references/vs-spark.md +0 -229
- package/bin/skills/clickzetta-studio-overview/SKILL.md +0 -170
- package/bin/skills/clickzetta-studio-overview/references/studio-modules.md +0 -173
- package/bin/skills/clickzetta-table-stream-pipeline/SKILL.md +0 -155
- package/bin/skills/clickzetta-vcluster-manager/SKILL.md +0 -212
- package/bin/skills/clickzetta-vcluster-manager/references/vc-cache.md +0 -54
- package/bin/skills/clickzetta-vcluster-manager/references/vcluster-ddl.md +0 -150
- package/bin/skills/clickzetta-volume-manager/SKILL.md +0 -249
- package/bin/skills/clickzetta-volume-manager/references/volume-ddl.md +0 -194
- package/bin/skills/clickzetta-zettapark/SKILL.md +0 -248
- package/bin/skills/clickzetta-zettapark/references/zettapark-api.md +0 -283
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: clickzetta-studio-overview
|
|
3
|
-
description: |
|
|
4
|
-
ClickZetta Lakehouse Studio 功能全貌概览。Studio 是内置于 Lakehouse 的一站式
|
|
5
|
-
Web IDE,集数据开发、任务调度、数据集成、数据目录、数据质量、运维监控六大模块于一体,
|
|
6
|
-
是 ClickZetta 区别于 Snowflake/Databricks 的核心差异化能力(后两者需第三方工具)。
|
|
7
|
-
覆盖:六大模块定位与边界、任务类型(SQL/Python/Shell/JDBC/同步/动态表)、
|
|
8
|
-
任务组 DAG 编排、任务参数(${var} 和 $[时间表达式])、调度配置、
|
|
9
|
-
数据目录(Data Catalog)、数据质量规则六大维度、运维监控告警。
|
|
10
|
-
当用户说"Studio 是什么"、"Studio 有哪些功能"、"Studio 和其他 Lakehouse 的区别"、
|
|
11
|
-
"任务调度怎么配"、"DAG 编排"、"任务组"、"任务参数"、"${} 参数怎么用"、
|
|
12
|
-
"数据目录"、"数据质量"、"运维监控"、"告警配置"、"补数据"、"任务依赖"时触发。
|
|
13
|
-
Keywords: Studio, Web IDE, scheduler, DAG, data catalog, data quality, monitoring
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# ClickZetta Lakehouse Studio 功能概览
|
|
17
|
-
|
|
18
|
-
阅读 [references/studio-modules.md](references/studio-modules.md) 了解各模块详细说明。
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Studio 是什么
|
|
23
|
-
|
|
24
|
-
Studio 是 ClickZetta Lakehouse **内置的一站式 Web IDE**,无需安装任何客户端,直接在浏览器中完成从数据接入、开发、调度到运维的全链路操作。
|
|
25
|
-
|
|
26
|
-
**这是 ClickZetta 与 Snowflake、Databricks 等产品的核心差异之一**:
|
|
27
|
-
|
|
28
|
-
| 能力 | ClickZetta Studio | Snowflake | Databricks |
|
|
29
|
-
|---|---|---|---|
|
|
30
|
-
| Web SQL 开发 | ✅ 内置 | ✅ Snowsight | ✅ Notebooks |
|
|
31
|
-
| 可视化数据集成(无代码同步) | ✅ 内置 30+ 数据源 | ❌ 需第三方 | ❌ 需第三方 |
|
|
32
|
-
| 任务调度 + DAG 编排 | ✅ 内置 | ❌ 需第三方 | ❌ 需第三方 |
|
|
33
|
-
| 数据目录(Data Catalog) | ✅ 内置 | 部分 | 部分 |
|
|
34
|
-
| 数据质量规则 | ✅ 内置 6 维度 | ❌ 需第三方 | ❌ 需第三方 |
|
|
35
|
-
| 运维监控 + 告警 | ✅ 内置 | 部分 | 部分 |
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Studio 六大模块
|
|
40
|
-
|
|
41
|
-
### 1. 数据开发(IDE)
|
|
42
|
-
|
|
43
|
-
Web 在线 IDE,支持多种任务类型:
|
|
44
|
-
|
|
45
|
-
| 任务类型 | 说明 | 使用集群 |
|
|
46
|
-
|---|---|---|
|
|
47
|
-
| SQL 任务 | 编写 DDL/DML,支持自动补全、结果可视化 | GP 或 AP |
|
|
48
|
-
| Python 任务 | SQLAlchemy / ZettaPark 脚本,支持安装依赖 | 不使用 VCluster |
|
|
49
|
-
| Shell 任务 | Shell 脚本,支持调用外部命令 | 不使用 VCluster |
|
|
50
|
-
| JDBC 任务 | 连接 MySQL/Hive/ClickHouse 等执行 SQL | 不使用 VCluster |
|
|
51
|
-
| 动态表任务 | 向导式创建 Dynamic Table,配置刷新周期 | GP 或 AP |
|
|
52
|
-
| 数据同步任务 | 无代码配置离线/实时/CDC 同步 | 同步型 VCluster |
|
|
53
|
-
|
|
54
|
-
### 2. 任务调度与编排
|
|
55
|
-
|
|
56
|
-
- **周期调度**:Cron 表达式,支持分钟/小时/天/月级别
|
|
57
|
-
- **任务依赖**:上下游依赖,支持跨工作空间依赖
|
|
58
|
-
- **任务组(DAG)**:可视化拖拽编排,批量管理一组任务
|
|
59
|
-
- **补数据**:对历史周期重新触发执行
|
|
60
|
-
- **任务参数**:动态变量替换,支持时间表达式
|
|
61
|
-
|
|
62
|
-
### 3. 数据集成(同步任务)
|
|
63
|
-
|
|
64
|
-
内置 30+ 数据源,无代码配置数据同步:
|
|
65
|
-
|
|
66
|
-
- **离线同步**:全量/增量,支持整库迁移、Schema Evolution
|
|
67
|
-
- **实时同步**(单表):Kafka、MySQL、PostgreSQL 实时写入
|
|
68
|
-
- **多表实时 CDC**:整库镜像、分库分表合并,基于 Binlog/WAL
|
|
69
|
-
|
|
70
|
-
### 4. 数据目录(Data Catalog)
|
|
71
|
-
|
|
72
|
-
- 全局数据资产搜索(按名称、描述、负责人)
|
|
73
|
-
- 表详情:DDL、字段、数据预览(100行)、数据血缘、作业历史
|
|
74
|
-
- 可视化创建 Schema/表(内置 DDL 模板)
|
|
75
|
-
|
|
76
|
-
### 5. 数据质量
|
|
77
|
-
|
|
78
|
-
6 大维度质量规则:完整性、唯一性、一致性、准确性、有效性、及时性。
|
|
79
|
-
|
|
80
|
-
- 支持定时触发、调度任务触发、手动触发
|
|
81
|
-
- 质量规则大盘:覆盖表数、校验通过率、高质量表
|
|
82
|
-
|
|
83
|
-
### 6. 运维监控与告警
|
|
84
|
-
|
|
85
|
-
- 任务实例运维:启停、重跑、批量操作
|
|
86
|
-
- 内置告警规则:周期任务失败、数据质量失败等
|
|
87
|
-
- 自定义告警规则
|
|
88
|
-
- 告警通知:飞书/企业微信 webhook
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## 任务参数详解
|
|
93
|
-
|
|
94
|
-
任务参数是 Studio 调度的核心能力,实现代码与配置分离。
|
|
95
|
-
|
|
96
|
-
### 参数格式
|
|
97
|
-
|
|
98
|
-
```sql
|
|
99
|
-
-- 在 SQL 中使用参数(格式:${参数名})
|
|
100
|
-
SELECT * FROM orders
|
|
101
|
-
WHERE city = '${city}'
|
|
102
|
-
AND dt = '${yesterday}';
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### 参数赋值方式
|
|
106
|
-
|
|
107
|
-
| 赋值类型 | 示例 | 说明 |
|
|
108
|
-
|---|---|---|
|
|
109
|
-
| 常量 | `Shanghai` | 固定值 |
|
|
110
|
-
| 系统内置时间函数 | `$[yyyy-MM-dd, -1d]` | 昨天日期 |
|
|
111
|
-
| 系统内置时间函数 | `$[yyyy-MM-dd HH:mm:ss]` | 当前时间 |
|
|
112
|
-
| 系统内置时间函数 | `$[yyyyMM, -1M]` | 上月 |
|
|
113
|
-
| 系统内置参数 | `sys_plan_datetime` | 任务计划执行时间 |
|
|
114
|
-
|
|
115
|
-
```sql
|
|
116
|
-
-- 示例:每天处理前一天数据
|
|
117
|
-
SELECT date, SUM(amount)
|
|
118
|
-
FROM sales
|
|
119
|
-
WHERE dt = '${yesterday}' -- 赋值:$[yyyy-MM-dd, -1d]
|
|
120
|
-
GROUP BY date;
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### 参数作用域
|
|
124
|
-
|
|
125
|
-
- **任务参数**:仅当前任务有效
|
|
126
|
-
- **任务组参数**:任务组内所有任务共享,任务组提交后生效
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## 任务组(DAG)编排
|
|
131
|
-
|
|
132
|
-
任务组是 Studio 的核心调度能力,用于管理有依赖关系的一批任务。
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
任务组(Task Group)
|
|
136
|
-
├── 节点 A:离线同步(MySQL → Lakehouse)
|
|
137
|
-
├── 节点 B:SQL 任务(ODS 清洗) 依赖 A
|
|
138
|
-
├── 节点 C:SQL 任务(DWD 加工) 依赖 B
|
|
139
|
-
└── 节点 D:SQL 任务(DWS 聚合) 依赖 C
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
**关键限制:**
|
|
143
|
-
- 任务组内仅支持周期任务,不支持实时任务
|
|
144
|
-
- 一个任务节点只能归属于一个任务组
|
|
145
|
-
- 任务组参数需提交后才对任务节点生效
|
|
146
|
-
- 跨工作空间依赖支持,但下游链路复制不包含其他空间节点
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## 数据目录(Data Catalog)核心功能
|
|
151
|
-
|
|
152
|
-
```sql
|
|
153
|
-
-- 数据目录中的表详情页提供:
|
|
154
|
-
-- 1. DDL 语句(一键复制)
|
|
155
|
-
-- 2. 字段信息(名称/类型/描述/主键标识)
|
|
156
|
-
-- 3. 数据预览(100行,需 SELECT 权限 + 指定 VCluster)
|
|
157
|
-
-- 4. 数据血缘(上下游表关系)
|
|
158
|
-
-- 5. 作业历史(该表相关的查询记录)
|
|
159
|
-
-- 6. 上传(本地文件直接上传到表)
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
## 与其他系统的对比
|
|
165
|
-
|
|
166
|
-
**为什么 Studio 是差异化能力?**
|
|
167
|
-
|
|
168
|
-
Snowflake 和 Databricks 的数据集成、调度、数据质量通常需要对接 Fivetran、dbt、Airflow、Great Expectations 等第三方工具,形成复杂的技术栈。
|
|
169
|
-
|
|
170
|
-
ClickZetta Studio 将这些能力**内置在平台中**,统一的权限体系、统一的监控告警、统一的数据血缘,降低了运维复杂度,特别适合中小团队和希望减少工具链复杂度的企业。
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
# Studio 各模块详细说明
|
|
2
|
-
|
|
3
|
-
> 来源:https://www.yunqi.tech/documents/LakehouseStudioTour 等官方文档
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 任务类型完整列表
|
|
8
|
-
|
|
9
|
-
| 任务类型 | 触发方式 | 使用 VCluster | 典型用途 |
|
|
10
|
-
|---|---|---|---|
|
|
11
|
-
| SQL 任务 | 周期调度 / 手动 | GP 或 AP | ETL、Ad-Hoc 查询、DDL 操作 |
|
|
12
|
-
| Python 任务 | 周期调度 / 手动 | 不使用 | ZettaPark 数据处理、文件操作 |
|
|
13
|
-
| Shell 任务 | 周期调度 / 手动 | 不使用 | 系统命令、文件处理 |
|
|
14
|
-
| JDBC 任务 | 周期调度 / 手动 | 不使用 | 操作 MySQL/Hive/ClickHouse 等 |
|
|
15
|
-
| 动态表任务 | 向导式创建 | GP 或 AP | 声明式增量计算 |
|
|
16
|
-
| 离线同步任务 | 周期调度 | 同步型 | 全量/增量批量同步 |
|
|
17
|
-
| 实时同步任务(单表) | 持续运行 | 同步型 | Kafka/MySQL/PG 实时写入 |
|
|
18
|
-
| 多表实时 CDC | 持续运行 | 同步型 | 整库镜像、分库分表合并 |
|
|
19
|
-
| 组合任务 | 周期调度 | 取决于子任务 | 封装多个任务统一调度 |
|
|
20
|
-
| 虚拟节点 | 周期调度 | 不使用 | 占位节点,用于依赖编排 |
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 任务状态说明
|
|
25
|
-
|
|
26
|
-
| 状态 | 含义 |
|
|
27
|
-
|---|---|
|
|
28
|
-
| 已提交,有修改 | 任务已提交到生产,但本地有未提交的修改 |
|
|
29
|
-
| 已提交,无修改 | 生产版本与本地版本一致 |
|
|
30
|
-
| 已下线 | 任务已停止调度 |
|
|
31
|
-
| 未提交 | 仅在开发环境,未发布到生产 |
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 调度配置关键参数
|
|
36
|
-
|
|
37
|
-
### Cron 表达式示例
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
# 每天凌晨 2 点执行
|
|
41
|
-
0 2 * * *
|
|
42
|
-
|
|
43
|
-
# 每小时执行一次
|
|
44
|
-
0 * * * *
|
|
45
|
-
|
|
46
|
-
# 每 5 分钟执行一次
|
|
47
|
-
*/5 * * * *
|
|
48
|
-
|
|
49
|
-
# 每月 1 号凌晨 1 点执行
|
|
50
|
-
0 1 1 * *
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### 依赖策略
|
|
54
|
-
|
|
55
|
-
| 策略 | 说明 | 适用场景 |
|
|
56
|
-
|---|---|---|
|
|
57
|
-
| 默认 | 上游当天实例完成后触发下游 | 标准 ETL 链路 |
|
|
58
|
-
| 向前 | 上游最近一个完成的实例触发 | 上游频率高于下游 |
|
|
59
|
-
| 向前就近 | 上游最近且时间最接近的实例触发 | 时间对齐要求高 |
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## 任务参数内置时间函数
|
|
64
|
-
|
|
65
|
-
| 表达式 | 含义 | 示例(今天 2024-01-15) |
|
|
66
|
-
|---|---|---|
|
|
67
|
-
| `$[yyyy-MM-dd]` | 当天日期 | 2024-01-15 |
|
|
68
|
-
| `$[yyyy-MM-dd, -1d]` | 昨天 | 2024-01-14 |
|
|
69
|
-
| `$[yyyy-MM-dd, +1d]` | 明天 | 2024-01-16 |
|
|
70
|
-
| `$[yyyyMM]` | 当月 | 202401 |
|
|
71
|
-
| `$[yyyyMM, -1M]` | 上月 | 202312 |
|
|
72
|
-
| `$[yyyy-MM-dd HH:mm:ss]` | 当前时间 | 2024-01-15 10:30:00 |
|
|
73
|
-
| `$[HH:mm:ss]` | 当前时间(仅时分秒) | 10:30:00 |
|
|
74
|
-
| `sys_plan_datetime` | 任务计划执行时间 | 系统内置参数 |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## 数据质量规则六大维度
|
|
79
|
-
|
|
80
|
-
| 维度 | 说明 | 示例规则 |
|
|
81
|
-
|---|---|---|
|
|
82
|
-
| 完整性 | 字段非空率 | `user_id` 非空率 ≥ 99% |
|
|
83
|
-
| 唯一性 | 主键/唯一键重复检测 | `order_id` 无重复 |
|
|
84
|
-
| 一致性 | 跨表数据一致 | 订单表与明细表金额一致 |
|
|
85
|
-
| 准确性 | 数值范围合理性 | `age` 在 0-150 之间 |
|
|
86
|
-
| 有效性 | 格式/枚举值合法 | `status` 在 ['active','inactive'] 中 |
|
|
87
|
-
| 及时性 | 数据更新时效 | 每天 8 点前数据已更新 |
|
|
88
|
-
|
|
89
|
-
### 触发方式
|
|
90
|
-
|
|
91
|
-
- **定时触发**:Cron 表达式,独立于任务调度
|
|
92
|
-
- **调度任务触发**:绑定到某个 SQL/同步任务,任务完成后自动触发质量检测
|
|
93
|
-
- **手动触发**:在 Studio 界面手动执行
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## 数据目录(Data Catalog)功能
|
|
98
|
-
|
|
99
|
-
### 表详情页六大 Tab
|
|
100
|
-
|
|
101
|
-
| Tab | 内容 |
|
|
102
|
-
|---|---|
|
|
103
|
-
| 详情 | DDL 语句(一键复制)、权限管理入口 |
|
|
104
|
-
| 字段 | 字段名/类型/描述/主键/标准化标签 |
|
|
105
|
-
| 预览 | 100 行数据预览(需 SELECT 权限 + 指定 VCluster) |
|
|
106
|
-
| 血缘 | 上下游表关系图(数据血缘) |
|
|
107
|
-
| 作业 | 该表相关的查询历史 |
|
|
108
|
-
| 上传 | 本地文件直接上传到表 |
|
|
109
|
-
|
|
110
|
-
### 搜索支持的过滤条件
|
|
111
|
-
|
|
112
|
-
- 对象类型:Table / View / Materialized View
|
|
113
|
-
- 工作空间 / Schema
|
|
114
|
-
- 创建时间范围
|
|
115
|
-
- 负责人
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## 运维监控告警
|
|
120
|
-
|
|
121
|
-
### 内置告警规则
|
|
122
|
-
|
|
123
|
-
| 规则 | 触发条件 |
|
|
124
|
-
|---|---|
|
|
125
|
-
| 周期任务实例运行失败 | 任务实例执行失败 |
|
|
126
|
-
| 数据质量检测失败 | 质量规则校验不通过 |
|
|
127
|
-
| Pipe 延迟告警 | Kafka/OSS Pipe 消费延迟超阈值 |
|
|
128
|
-
| 同步任务失败 | 离线/实时同步任务异常 |
|
|
129
|
-
| 自定义规则 | 用户自定义 SQL 条件 |
|
|
130
|
-
|
|
131
|
-
### 告警通知渠道
|
|
132
|
-
|
|
133
|
-
- 飞书 webhook
|
|
134
|
-
- 企业微信 webhook
|
|
135
|
-
- 邮件(部分版本)
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## 数据同步支持的数据源(部分)
|
|
140
|
-
|
|
141
|
-
### 离线同步(批量)
|
|
142
|
-
|
|
143
|
-
MySQL · PostgreSQL · SQL Server · Oracle · Aurora · PolarDB · ClickHouse · Hive · HDFS · OSS/S3/COS · Lakehouse
|
|
144
|
-
|
|
145
|
-
### 实时同步(CDC)
|
|
146
|
-
|
|
147
|
-
MySQL(Binlog)· PostgreSQL(WAL)· Kafka(JSON/Avro/CSV)
|
|
148
|
-
|
|
149
|
-
### 连接方式
|
|
150
|
-
|
|
151
|
-
- 公网直连
|
|
152
|
-
- SSH Tunnel(连接 VPC 内数据库)
|
|
153
|
-
- 私网连接(PrivateLink)
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Python 任务中使用数据源
|
|
158
|
-
|
|
159
|
-
Studio Python 任务内置 `clickzetta-dbutils` 工具包,可直接使用预配置的数据源:
|
|
160
|
-
|
|
161
|
-
```python
|
|
162
|
-
from clickzetta import dbutils
|
|
163
|
-
|
|
164
|
-
# 使用预配置的 Lakehouse 数据源
|
|
165
|
-
conn = dbutils.get_connection('my_lakehouse_datasource')
|
|
166
|
-
cursor = conn.cursor()
|
|
167
|
-
cursor.execute("SELECT * FROM my_schema.my_table LIMIT 10")
|
|
168
|
-
rows = cursor.fetchall()
|
|
169
|
-
print(rows)
|
|
170
|
-
|
|
171
|
-
# 使用预配置的 MySQL 数据源
|
|
172
|
-
mysql_conn = dbutils.get_connection('my_mysql_datasource')
|
|
173
|
-
```
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: clickzetta-table-stream-pipeline
|
|
3
|
-
description: |
|
|
4
|
-
搭建和管理 ClickZetta Table Stream 变更数据捕获管道,覆盖从源表配置、Stream 创建、
|
|
5
|
-
数据消费到增量 ETL 的端到端工作流。当用户说"创建 Table Stream"、"Table Stream CDC"、
|
|
6
|
-
"Table Stream 管道"、"Table Stream 增量消费"、"Stream 消费"时触发。
|
|
7
|
-
包含变更跟踪开启、模式选择、offset 管理、元数据字段使用、幂等消费等 ClickZetta 特有逻辑。
|
|
8
|
-
Keywords: table stream, CDC, change capture, incremental ETL, stream
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Table Stream 变更数据捕获工作流
|
|
12
|
-
|
|
13
|
-
## 指令
|
|
14
|
-
|
|
15
|
-
### 步骤 1:开启源表变更跟踪(必需前置)
|
|
16
|
-
使用 `write_query` 开启源表的 change_tracking:
|
|
17
|
-
```sql
|
|
18
|
-
ALTER TABLE <source_table> SET PROPERTIES ('change_tracking' = 'true');
|
|
19
|
-
```
|
|
20
|
-
- 这是强制性前置步骤,不执行则 Stream 无法正确捕获变更
|
|
21
|
-
- 使用 `read_query` 验证属性是否生效:
|
|
22
|
-
```sql
|
|
23
|
-
SHOW CREATE TABLE <source_table>;
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### 步骤 2:创建 Table Stream
|
|
27
|
-
使用 `write_query` 创建 Stream:
|
|
28
|
-
```sql
|
|
29
|
-
CREATE [ OR REPLACE ] TABLE STREAM <stream_name>
|
|
30
|
-
ON TABLE <source_table>
|
|
31
|
-
[ TIMESTAMP AS OF '<timestamp>' ]
|
|
32
|
-
[ COMMENT '<描述>' ]
|
|
33
|
-
WITH PROPERTIES (
|
|
34
|
-
'TABLE_STREAM_MODE' = 'STANDARD | APPEND_ONLY',
|
|
35
|
-
'SHOW_INITIAL_ROWS' = 'TRUE | FALSE'
|
|
36
|
-
);
|
|
37
|
-
```
|
|
38
|
-
关键参数选择:
|
|
39
|
-
- **STANDARD 模式**:捕获 INSERT/UPDATE/DELETE,反映表当前状态 → 适用于数据同步、增量 ETL
|
|
40
|
-
- **APPEND_ONLY 模式**:仅捕获 INSERT,保留所有历史插入记录 → 适用于审计、历史记录保留
|
|
41
|
-
- **SHOW_INITIAL_ROWS = TRUE**:首次消费返回建 Stream 时表中已有行
|
|
42
|
-
- **SHOW_INITIAL_ROWS = FALSE**(默认):首次消费仅返回建 Stream 后的新变更
|
|
43
|
-
- 可选:指定起始时间点
|
|
44
|
-
```sql
|
|
45
|
-
-- ⚠️ TIMESTAMP AS OF 功能在 ClickZetta 中不稳定,建议仅在必要时使用
|
|
46
|
-
-- 如需使用,时间戳必须用 CAST() 形式
|
|
47
|
-
CREATE TABLE STREAM <stream_name>
|
|
48
|
-
ON TABLE <source_table>
|
|
49
|
-
TIMESTAMP AS OF CAST('<timestamp>' AS TIMESTAMP)
|
|
50
|
-
WITH PROPERTIES ('TABLE_STREAM_MODE' = 'STANDARD');
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### 步骤 3:准备目标表
|
|
54
|
-
使用 `write_query` 或 `create_table` 创建与源表结构兼容的目标表:
|
|
55
|
-
- 目标表列定义需包含源表的业务列
|
|
56
|
-
- 建议额外添加元数据列(如 sync_version、sync_timestamp)用于追踪
|
|
57
|
-
|
|
58
|
-
### 步骤 4:查询 Stream 数据(预览,不移动 offset)
|
|
59
|
-
使用 `read_query` 预览 Stream 中的变更数据:
|
|
60
|
-
```sql
|
|
61
|
-
SELECT *, __change_type, __commit_version, __commit_timestamp
|
|
62
|
-
FROM <stream_name>;
|
|
63
|
-
```
|
|
64
|
-
- 仅 SELECT 不会移动 offset
|
|
65
|
-
- 元数据字段:`__change_type`(值:`INSERT` / `UPDATE_BEFORE` / `UPDATE_AFTER` / `DELETE`)、`__commit_version`、`__commit_timestamp`
|
|
66
|
-
- UPDATE 产生两条记录:`UPDATE_BEFORE`(更新前旧值)和 `UPDATE_AFTER`(更新后新值),消费时通常忽略 `UPDATE_BEFORE`
|
|
67
|
-
|
|
68
|
-
### 步骤 5:消费 Stream 数据(移动 offset)
|
|
69
|
-
使用 `write_query` 执行 DML 操作消费数据:
|
|
70
|
-
|
|
71
|
-
#### 方式 A:全量消费(INSERT INTO)
|
|
72
|
-
```sql
|
|
73
|
-
INSERT INTO <target_table>
|
|
74
|
-
SELECT <columns> FROM <stream_name>;
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
#### 方式 B:幂等消费(MERGE,推荐)
|
|
78
|
-
```sql
|
|
79
|
-
MERGE INTO <target_table> t
|
|
80
|
-
USING <stream_name> s
|
|
81
|
-
ON t.<pk_column> = s.<pk_column>
|
|
82
|
-
WHEN MATCHED AND s.__change_type = 'UPDATE_AFTER' THEN UPDATE SET t.col1 = s.col1, t.col2 = s.col2
|
|
83
|
-
WHEN MATCHED AND s.__change_type = 'DELETE' THEN DELETE
|
|
84
|
-
WHEN NOT MATCHED AND s.__change_type = 'INSERT' THEN INSERT (<columns>) VALUES (s.<columns>);
|
|
85
|
-
```
|
|
86
|
-
- DML 操作(INSERT/UPDATE/MERGE)会移动 offset
|
|
87
|
-
- 即使使用 WHERE 条件过滤,所有数据的 offset 仍会移动
|
|
88
|
-
- 推荐使用 MERGE 实现幂等性,避免重复消费导致数据重复
|
|
89
|
-
|
|
90
|
-
### 步骤 6:验证消费状态
|
|
91
|
-
使用 `read_query` 确认消费完成:
|
|
92
|
-
```sql
|
|
93
|
-
SELECT COUNT(*) FROM <stream_name>;
|
|
94
|
-
```
|
|
95
|
-
- 消费成功后 COUNT 应为 0 或仅包含新变更
|
|
96
|
-
- 记录最后消费的 `__commit_version` 用于故障恢复
|
|
97
|
-
|
|
98
|
-
## 模式选择速查
|
|
99
|
-
|
|
100
|
-
| 需求 | 推荐模式 |
|
|
101
|
-
|------|---------|
|
|
102
|
-
| 数据同步(保持目标与源一致) | STANDARD |
|
|
103
|
-
| 增量 ETL 流程 | STANDARD |
|
|
104
|
-
| 审计所有插入记录 | APPEND_ONLY |
|
|
105
|
-
| 历史记录保留 | APPEND_ONLY |
|
|
106
|
-
|
|
107
|
-
## 性能优化要点
|
|
108
|
-
|
|
109
|
-
- 只 SELECT 必要列,避免 `SELECT *`
|
|
110
|
-
- 定期消费 Stream,避免数据累积
|
|
111
|
-
- 高变更率表:更频繁消费;低变更率表:降低频率
|
|
112
|
-
- 大型 Stream 可按主键范围拆分并行处理
|
|
113
|
-
- 在源表上设置适当的数据保留期
|
|
114
|
-
|
|
115
|
-
## 示例
|
|
116
|
-
|
|
117
|
-
### 示例 1:订单表实时同步
|
|
118
|
-
```
|
|
119
|
-
1. write_query("ALTER TABLE orders SET PROPERTIES ('change_tracking' = 'true')")
|
|
120
|
-
2. write_query("CREATE TABLE STREAM orders_stream ON TABLE orders WITH PROPERTIES ('TABLE_STREAM_MODE' = 'STANDARD', 'SHOW_INITIAL_ROWS' = 'FALSE')")
|
|
121
|
-
3. write_query("CREATE TABLE orders_sync LIKE orders") -- 或手动建表
|
|
122
|
-
4. read_query("SELECT *, __commit_version, __commit_timestamp FROM orders_stream") -- 预览
|
|
123
|
-
5. write_query("MERGE INTO orders_sync t USING orders_stream s ON t.order_id = s.order_id WHEN MATCHED THEN UPDATE SET t.status = s.status, t.amount = s.amount WHEN NOT MATCHED THEN INSERT (order_id, status, amount) VALUES (s.order_id, s.status, s.amount)")
|
|
124
|
-
6. read_query("SELECT COUNT(*) FROM orders_stream") -- 验证 offset 已移动
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### 示例 2:用户行为审计(保留全部插入历史)
|
|
128
|
-
```
|
|
129
|
-
1. write_query("ALTER TABLE user_actions SET PROPERTIES ('change_tracking' = 'true')")
|
|
130
|
-
2. write_query("CREATE TABLE STREAM user_actions_audit_stream ON TABLE user_actions WITH PROPERTIES ('TABLE_STREAM_MODE' = 'APPEND_ONLY', 'SHOW_INITIAL_ROWS' = 'TRUE')")
|
|
131
|
-
3. read_query("SELECT *, __commit_version, __commit_timestamp FROM user_actions_audit_stream")
|
|
132
|
-
4. write_query("INSERT INTO user_actions_audit SELECT *, __commit_version AS audit_version, __commit_timestamp AS audit_time FROM user_actions_audit_stream")
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## 故障排除
|
|
136
|
-
|
|
137
|
-
Stream 不捕获变更:
|
|
138
|
-
原因:源表未开启 change_tracking
|
|
139
|
-
解决方案:执行 `ALTER TABLE <table> SET PROPERTIES ('change_tracking' = 'true')`,确认 DML 在 Stream 创建后执行
|
|
140
|
-
|
|
141
|
-
无法区分变更类型:
|
|
142
|
-
原因:未在 MERGE/INSERT 中过滤 `__change_type`,导致 `UPDATE_BEFORE` 旧值也被写入目标表
|
|
143
|
-
解决方案:MERGE 时过滤 `__change_type IN ('UPDATE_AFTER', 'DELETE')`,忽略 `UPDATE_BEFORE` 记录
|
|
144
|
-
|
|
145
|
-
消费后 offset 未移动:
|
|
146
|
-
原因:仅使用 SELECT 查询,未执行 DML
|
|
147
|
-
解决方案:必须通过 INSERT INTO / MERGE INTO / UPDATE 等 DML 操作消费数据
|
|
148
|
-
|
|
149
|
-
重复消费导致目标表数据重复:
|
|
150
|
-
原因:使用 INSERT INTO 而非 MERGE,或消费逻辑非幂等
|
|
151
|
-
解决方案:改用 MERGE 语句;记录最后消费的 `__commit_version` 和 `__commit_timestamp` 用于断点恢复
|
|
152
|
-
|
|
153
|
-
COMMENT 语法错误:
|
|
154
|
-
原因:使用了 `COMMENT = '...'`(带等号)而非 `COMMENT '...'`
|
|
155
|
-
解决方案:正确语法为 `COMMENT '注释内容'`,不带等号
|