@clickzetta/cz-cli-linux-x64 0.3.4 → 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.
Files changed (118) hide show
  1. package/bin/cz-cli +0 -0
  2. package/package.json +1 -1
  3. package/bin/skills/clickzetta-access-control/SKILL.md +0 -243
  4. package/bin/skills/clickzetta-access-control/references/dynamic-masking.md +0 -86
  5. package/bin/skills/clickzetta-access-control/references/grant-revoke.md +0 -103
  6. package/bin/skills/clickzetta-access-control/references/role-management.md +0 -66
  7. package/bin/skills/clickzetta-access-control/references/user-management.md +0 -61
  8. package/bin/skills/clickzetta-ai-vector-search/SKILL.md +0 -160
  9. package/bin/skills/clickzetta-ai-vector-search/references/vector-search.md +0 -155
  10. package/bin/skills/clickzetta-app-python-sdk/SKILL.md +0 -153
  11. package/bin/skills/clickzetta-app-python-sdk/references/bulkload.md +0 -196
  12. package/bin/skills/clickzetta-app-python-sdk/references/connector.md +0 -143
  13. package/bin/skills/clickzetta-app-python-sdk/references/realtime.md +0 -122
  14. package/bin/skills/clickzetta-batch-sync-pipeline/SKILL.md +0 -293
  15. package/bin/skills/clickzetta-bi-connect/SKILL.md +0 -176
  16. package/bin/skills/clickzetta-bi-connect/references/bi-tools.md +0 -170
  17. package/bin/skills/clickzetta-cdc-sync-pipeline/SKILL.md +0 -457
  18. package/bin/skills/clickzetta-concepts/SKILL.md +0 -282
  19. package/bin/skills/clickzetta-concepts/references/brands-and-endpoints.md +0 -79
  20. package/bin/skills/clickzetta-concepts/references/object-model.md +0 -311
  21. package/bin/skills/clickzetta-data-ingest-pipeline/SKILL.md +0 -165
  22. package/bin/skills/clickzetta-data-lifecycle/SKILL.md +0 -211
  23. package/bin/skills/clickzetta-data-lifecycle/references/lifecycle-reference.md +0 -175
  24. package/bin/skills/clickzetta-data-recovery/SKILL.md +0 -215
  25. package/bin/skills/clickzetta-data-recovery/evals/evals.json +0 -35
  26. package/bin/skills/clickzetta-data-science/SKILL.md +0 -125
  27. package/bin/skills/clickzetta-data-science/references/bitmap-profile.md +0 -146
  28. package/bin/skills/clickzetta-data-science/references/data-patterns.md +0 -110
  29. package/bin/skills/clickzetta-data-science/references/setup.md +0 -160
  30. package/bin/skills/clickzetta-data-science/references/stats-functions.md +0 -195
  31. package/bin/skills/clickzetta-data-science/references/write-and-infer.md +0 -122
  32. package/bin/skills/clickzetta-data-science/references/zettapark-api.md +0 -156
  33. package/bin/skills/clickzetta-data-sharing/SKILL.md +0 -160
  34. package/bin/skills/clickzetta-data-sharing/references/share-ddl.md +0 -134
  35. package/bin/skills/clickzetta-dba-guide/SKILL.md +0 -540
  36. package/bin/skills/clickzetta-dw-modeling/SKILL.md +0 -259
  37. package/bin/skills/clickzetta-dw-modeling/references/modeling-patterns.md +0 -100
  38. package/bin/skills/clickzetta-dynamic-table/SKILL.md +0 -112
  39. package/bin/skills/clickzetta-dynamic-table/best-practices/dimension-table-join-guide.md +0 -257
  40. package/bin/skills/clickzetta-dynamic-table/best-practices/medallion-and-stream-patterns.md +0 -124
  41. package/bin/skills/clickzetta-dynamic-table/best-practices/non-partitioned-merge-into-warning.md +0 -96
  42. package/bin/skills/clickzetta-dynamic-table/best-practices/performance-optimization.md +0 -109
  43. package/bin/skills/clickzetta-dynamic-table/dt-creator/SKILL.md +0 -15
  44. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/dt-declaration-strategy.md +0 -185
  45. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/incremental-config-reference.md +0 -429
  46. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/refresh-history-guide.md +0 -268
  47. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/sql-limitations.md +0 -80
  48. package/bin/skills/clickzetta-dynamic-table/dynamic-table-alter/SKILL.md +0 -190
  49. package/bin/skills/clickzetta-external-catalog/SKILL.md +0 -120
  50. package/bin/skills/clickzetta-external-catalog/references/external-catalog-ddl.md +0 -130
  51. package/bin/skills/clickzetta-external-function/SKILL.md +0 -203
  52. package/bin/skills/clickzetta-external-function/references/external-function-ddl.md +0 -171
  53. package/bin/skills/clickzetta-file-import-pipeline/SKILL.md +0 -156
  54. package/bin/skills/clickzetta-index-manager/SKILL.md +0 -140
  55. package/bin/skills/clickzetta-index-manager/references/bloomfilter-index.md +0 -67
  56. package/bin/skills/clickzetta-index-manager/references/index-management.md +0 -73
  57. package/bin/skills/clickzetta-index-manager/references/inverted-index.md +0 -80
  58. package/bin/skills/clickzetta-index-manager/references/vector-index.md +0 -81
  59. package/bin/skills/clickzetta-information-schema/SKILL.md +0 -367
  60. package/bin/skills/clickzetta-information-schema/references/instance-views-reference.md +0 -276
  61. package/bin/skills/clickzetta-information-schema/references/metering-views-reference.md +0 -137
  62. package/bin/skills/clickzetta-information-schema/references/views-reference.md +0 -271
  63. package/bin/skills/clickzetta-java-sdk/SKILL.md +0 -186
  64. package/bin/skills/clickzetta-java-sdk/references/bulkload.md +0 -163
  65. package/bin/skills/clickzetta-java-sdk/references/realtime.md +0 -212
  66. package/bin/skills/clickzetta-kafka-ingest-pipeline/SKILL.md +0 -639
  67. package/bin/skills/clickzetta-kafka-ingest-pipeline/references/kafka-pipe-syntax.md +0 -324
  68. package/bin/skills/clickzetta-lakehouse-connect/SKILL.md +0 -218
  69. package/bin/skills/clickzetta-lakehouse-connect/evals/evals.json +0 -35
  70. package/bin/skills/clickzetta-lakehouse-connect/references/config-file.md +0 -435
  71. package/bin/skills/clickzetta-lakehouse-connect/references/jdbc.md +0 -478
  72. package/bin/skills/clickzetta-lakehouse-connect/references/python-sdk.md +0 -225
  73. package/bin/skills/clickzetta-lakehouse-connect/references/sqlalchemy.md +0 -468
  74. package/bin/skills/clickzetta-lakehouse-connect/references/zettapark-session.md +0 -445
  75. package/bin/skills/clickzetta-manage-comments/SKILL.md +0 -219
  76. package/bin/skills/clickzetta-metadata-query/SKILL.md +0 -298
  77. package/bin/skills/clickzetta-metadata-query/references/show-desc-reference.md +0 -326
  78. package/bin/skills/clickzetta-monitoring/SKILL.md +0 -199
  79. package/bin/skills/clickzetta-monitoring/references/job-history-analysis.md +0 -97
  80. package/bin/skills/clickzetta-monitoring/references/show-jobs.md +0 -48
  81. package/bin/skills/clickzetta-oss-ingest-pipeline/SKILL.md +0 -427
  82. package/bin/skills/clickzetta-query-optimizer/SKILL.md +0 -156
  83. package/bin/skills/clickzetta-query-optimizer/references/explain.md +0 -56
  84. package/bin/skills/clickzetta-query-optimizer/references/hints-and-sortkey.md +0 -78
  85. package/bin/skills/clickzetta-query-optimizer/references/optimize.md +0 -65
  86. package/bin/skills/clickzetta-query-optimizer/references/result-cache.md +0 -49
  87. package/bin/skills/clickzetta-query-optimizer/references/show-jobs.md +0 -42
  88. package/bin/skills/clickzetta-realtime-sync-pipeline/SKILL.md +0 -197
  89. package/bin/skills/clickzetta-semantic-view/SKILL.md +0 -207
  90. package/bin/skills/clickzetta-semantic-view/references/semantic-view-reference.md +0 -167
  91. package/bin/skills/clickzetta-spark-flink-connector/SKILL.md +0 -92
  92. package/bin/skills/clickzetta-spark-flink-connector/references/flink.md +0 -147
  93. package/bin/skills/clickzetta-spark-flink-connector/references/spark.md +0 -132
  94. package/bin/skills/clickzetta-sql-pipeline-manager/SKILL.md +0 -379
  95. package/bin/skills/clickzetta-sql-pipeline-manager/evals/evals.json +0 -166
  96. package/bin/skills/clickzetta-sql-pipeline-manager/references/dynamic-table.md +0 -185
  97. package/bin/skills/clickzetta-sql-pipeline-manager/references/materialized-view.md +0 -129
  98. package/bin/skills/clickzetta-sql-pipeline-manager/references/pipe.md +0 -222
  99. package/bin/skills/clickzetta-sql-pipeline-manager/references/table-stream.md +0 -125
  100. package/bin/skills/clickzetta-sql-syntax-guide/SKILL.md +0 -172
  101. package/bin/skills/clickzetta-sql-syntax-guide/references/ddl-reference.md +0 -350
  102. package/bin/skills/clickzetta-sql-syntax-guide/references/dml-reference.md +0 -279
  103. package/bin/skills/clickzetta-sql-syntax-guide/references/dql-reference.md +0 -504
  104. package/bin/skills/clickzetta-sql-syntax-guide/references/functions-reference.md +0 -372
  105. package/bin/skills/clickzetta-sql-syntax-guide/references/migration-databricks.md +0 -260
  106. package/bin/skills/clickzetta-sql-syntax-guide/references/migration-snowflake.md +0 -382
  107. package/bin/skills/clickzetta-sql-syntax-guide/references/vs-snowflake.md +0 -346
  108. package/bin/skills/clickzetta-sql-syntax-guide/references/vs-spark.md +0 -229
  109. package/bin/skills/clickzetta-studio-overview/SKILL.md +0 -170
  110. package/bin/skills/clickzetta-studio-overview/references/studio-modules.md +0 -173
  111. package/bin/skills/clickzetta-table-stream-pipeline/SKILL.md +0 -206
  112. package/bin/skills/clickzetta-vcluster-manager/SKILL.md +0 -212
  113. package/bin/skills/clickzetta-vcluster-manager/references/vc-cache.md +0 -54
  114. package/bin/skills/clickzetta-vcluster-manager/references/vcluster-ddl.md +0 -150
  115. package/bin/skills/clickzetta-volume-manager/SKILL.md +0 -292
  116. package/bin/skills/clickzetta-volume-manager/references/volume-ddl.md +0 -199
  117. package/bin/skills/clickzetta-zettapark/SKILL.md +0 -248
  118. 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,206 +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
- 执行 SQL 开启源表的 change_tracking:
17
- ```sql
18
- ALTER TABLE <source_table> SET PROPERTIES ('change_tracking' = 'true');
19
- ```
20
- - 这是强制性前置步骤,不执行则 Stream 无法正确捕获变更
21
- - 验证属性是否生效(两种方法):
22
- ```sql
23
- -- 方法 1:DESC EXTENDED 查看 properties
24
- DESC EXTENDED <source_table>;
25
-
26
- -- 方法 2:查询 information_schema
27
- SELECT table_name, properties FROM information_schema.tables WHERE table_name = '<source_table>';
28
- ```
29
-
30
- ### 步骤 2:创建 Table Stream
31
- 执行 SQL 创建 Stream:
32
- ```sql
33
- CREATE [ OR REPLACE ] TABLE STREAM <stream_name>
34
- ON TABLE <source_table>
35
- [ TIMESTAMP AS OF '<timestamp>' ]
36
- [ COMMENT '<描述>' ]
37
- WITH PROPERTIES (
38
- 'TABLE_STREAM_MODE' = 'STANDARD | APPEND_ONLY',
39
- 'SHOW_INITIAL_ROWS' = 'TRUE | FALSE'
40
- );
41
- ```
42
- 关键参数选择:
43
- - **STANDARD 模式**:捕获 INSERT/UPDATE/DELETE,反映表当前状态(delta 变化) → 适用于数据同步、增量 ETL
44
- - delta 变化指两个事务时间点之间的净变化。例如:先 INSERT 再 DELETE 同一行 → delta 为空;先 INSERT 再 UPDATE → delta 为一条新行(最终状态)
45
- - **APPEND_ONLY 模式**:仅捕获 INSERT,保留所有历史插入记录 → 适用于审计、历史记录保留
46
- - 即使后续 DELETE 了某行,APPEND_ONLY 模式仍保留该行的 INSERT 记录
47
- - **SHOW_INITIAL_ROWS = TRUE**:首次消费返回建 Stream 时表中已有行
48
- - **SHOW_INITIAL_ROWS = FALSE**(默认):首次消费仅返回建 Stream 后的新变更
49
- - 可选:指定起始时间点
50
- ```sql
51
- -- TIMESTAMP AS OF 用于指定 Stream 的起始读取位点
52
- -- 注意:此功能在某些场景下可能不稳定,建议优先使用默认行为(从创建时刻开始)
53
- CREATE TABLE STREAM <stream_name>
54
- ON TABLE <source_table>
55
- TIMESTAMP AS OF '<timestamp>'
56
- WITH PROPERTIES ('TABLE_STREAM_MODE' = 'STANDARD');
57
- ```
58
-
59
- ### 步骤 3:准备目标表
60
- 创建与源表结构兼容的目标表:
61
- - 目标表列定义需包含源表的业务列
62
- - 建议额外添加元数据列(如 sync_version、sync_timestamp)用于追踪
63
-
64
- ### 步骤 4:查询 Stream 数据(预览,不移动 offset)
65
- 执行 SELECT 预览 Stream 中的变更数据:
66
- ```sql
67
- SELECT *, __change_type, __commit_version, __commit_timestamp
68
- FROM <stream_name>;
69
- ```
70
- - 仅 SELECT 不会移动 offset
71
- - 元数据字段:`__change_type`(值:`INSERT` / `UPDATE_BEFORE` / `UPDATE_AFTER` / `DELETE`)、`__commit_version`、`__commit_timestamp`
72
- - **UPDATE 处理要点**:UPDATE 操作产生两条记录:
73
- - `UPDATE_BEFORE`:更新前的旧值(通常在消费时忽略)
74
- - `UPDATE_AFTER`:更新后的新值(用于写入目标表)
75
- - 消费时务必过滤 `__change_type`,避免将 `UPDATE_BEFORE` 旧值误写入目标表
76
-
77
- ### 步骤 5:消费 Stream 数据(移动 offset)
78
- 执行 DML 操作消费数据:
79
-
80
- #### 方式 A:全量消费(INSERT INTO)
81
- ```sql
82
- INSERT INTO <target_table>
83
- SELECT <columns> FROM <stream_name>;
84
- ```
85
-
86
- #### 方式 B:幂等消费(MERGE,推荐)
87
- ```sql
88
- MERGE INTO <target_table> t
89
- USING (SELECT * FROM <stream_name> WHERE __change_type != 'UPDATE_BEFORE') s
90
- ON t.<pk_column> = s.<pk_column>
91
- WHEN MATCHED AND s.__change_type IN ('INSERT', 'UPDATE_AFTER') THEN UPDATE SET t.col1 = s.col1, t.col2 = s.col2
92
- WHEN MATCHED AND s.__change_type = 'DELETE' THEN DELETE
93
- WHEN NOT MATCHED AND s.__change_type = 'INSERT' THEN INSERT (<columns>) VALUES (s.<columns>);
94
- ```
95
- - DML 操作(INSERT/UPDATE/MERGE)会移动 offset
96
- - ⚠️ 即使使用 WHERE 条件过滤,**所有数据的 offset 仍会移动**(不仅是匹配的行)
97
- - 推荐使用 MERGE 实现幂等性,避免重复消费导致数据重复
98
- - 在 USING 子查询中过滤掉 `UPDATE_BEFORE`,避免旧值干扰 MERGE 逻辑
99
- - ⚠️ **MERGE 语法顺序要求**:多个 `WHEN MATCHED` 子句时,**UPDATE 必须在 DELETE 之前**,否则报错(错误信息:`update statement must be before delete statement`)
100
-
101
- ### 步骤 6:验证消费状态
102
- 执行查询确认消费完成:
103
- ```sql
104
- SELECT COUNT(*) FROM <stream_name>;
105
- ```
106
- - 消费成功后 COUNT 应为 0 或仅包含新变更
107
- - 记录最后消费的 `__commit_version` 用于故障恢复
108
-
109
- ## Offset 移动规则
110
-
111
- | 操作 | 是否移动 offset | 说明 |
112
- |------|----------------|------|
113
- | `SELECT * FROM stream` | ❌ 不移动 | 仅预览,可反复查询 |
114
- | `INSERT INTO target SELECT ... FROM stream` | ✅ 移动 | 消费数据 |
115
- | `MERGE INTO target USING stream ...` | ✅ 移动 | 消费数据(推荐) |
116
- | `UPDATE target SET ... FROM stream` | ✅ 移动 | 消费数据 |
117
- | `DELETE FROM target USING stream` | ✅ 移动 | 消费数据 |
118
- | 带 WHERE 的 DML | ✅ 全部移动 | 即使 WHERE 过滤了部分行,所有行的 offset 都会移动 |
119
-
120
- > ⚠️ **关键注意**:offset 移动是全量的。一旦执行 DML 消费 Stream,所有变更记录的 offset 都会前进,无法部分消费。如果 DML 执行失败(如目标表不存在),offset 不会移动。
121
-
122
- ## 模式选择速查
123
-
124
- | 需求 | 推荐模式 |
125
- |------|---------|
126
- | 数据同步(保持目标与源一致) | STANDARD |
127
- | 增量 ETL 流程 | STANDARD |
128
- | 审计所有插入记录 | APPEND_ONLY |
129
- | 历史记录保留 | APPEND_ONLY |
130
-
131
- ## 性能优化要点
132
-
133
- - 只 SELECT 必要列,避免 `SELECT *`
134
- - 定期消费 Stream,避免数据累积
135
- - 高变更率表:更频繁消费;低变更率表:降低频率
136
- - 大型 Stream 可按主键范围拆分并行处理
137
- - 在源表上设置适当的数据保留期
138
-
139
- ## 示例
140
-
141
- ### 示例 1:订单表实时同步
142
- ```sql
143
- -- 1. 开启源表变更跟踪
144
- ALTER TABLE orders SET PROPERTIES ('change_tracking' = 'true');
145
-
146
- -- 2. 创建 Table Stream
147
- CREATE TABLE STREAM orders_stream ON TABLE orders
148
- WITH PROPERTIES ('TABLE_STREAM_MODE' = 'STANDARD', 'SHOW_INITIAL_ROWS' = 'FALSE');
149
-
150
- -- 3. 创建目标表(与源表结构兼容)
151
- CREATE TABLE orders_sync (order_id INT, status STRING, amount DOUBLE);
152
-
153
- -- 4. 预览 Stream 数据(不移动 offset)
154
- SELECT *, __commit_version, __commit_timestamp FROM orders_stream;
155
-
156
- -- 5. 消费 Stream 数据(移动 offset)
157
- MERGE INTO orders_sync t
158
- USING (SELECT * FROM orders_stream WHERE __change_type != 'UPDATE_BEFORE') s
159
- ON t.order_id = s.order_id
160
- WHEN MATCHED AND s.__change_type IN ('INSERT', 'UPDATE_AFTER') THEN UPDATE SET t.status = s.status, t.amount = s.amount
161
- WHEN MATCHED AND s.__change_type = 'DELETE' THEN DELETE
162
- WHEN NOT MATCHED AND s.__change_type = 'INSERT' THEN INSERT (order_id, status, amount) VALUES (s.order_id, s.status, s.amount);
163
-
164
- -- 6. 验证消费完成
165
- SELECT COUNT(*) FROM orders_stream;
166
- ```
167
-
168
- ### 示例 2:用户行为审计(保留全部插入历史)
169
- ```sql
170
- -- 1. 开启源表变更跟踪
171
- ALTER TABLE user_actions SET PROPERTIES ('change_tracking' = 'true');
172
-
173
- -- 2. 创建 Table Stream(APPEND_ONLY 模式)
174
- CREATE TABLE STREAM user_actions_audit_stream ON TABLE user_actions
175
- WITH PROPERTIES ('TABLE_STREAM_MODE' = 'APPEND_ONLY', 'SHOW_INITIAL_ROWS' = 'TRUE');
176
-
177
- -- 3. 预览 Stream 数据
178
- SELECT *, __commit_version, __commit_timestamp FROM user_actions_audit_stream;
179
-
180
- -- 4. 消费 Stream 数据(INSERT INTO 移动 offset)
181
- INSERT INTO user_actions_audit
182
- SELECT *, __commit_version AS audit_version, __commit_timestamp AS audit_time
183
- FROM user_actions_audit_stream;
184
- ```
185
-
186
- ## 故障排除
187
-
188
- Stream 不捕获变更:
189
- 原因:源表未开启 change_tracking
190
- 解决方案:执行 `ALTER TABLE <table> SET PROPERTIES ('change_tracking' = 'true')`,确认 DML 在 Stream 创建后执行
191
-
192
- 无法区分变更类型:
193
- 原因:未在 MERGE/INSERT 中过滤 `__change_type`,导致 `UPDATE_BEFORE` 旧值也被写入目标表
194
- 解决方案:MERGE 时过滤 `__change_type IN ('UPDATE_AFTER', 'DELETE')`,忽略 `UPDATE_BEFORE` 记录
195
-
196
- 消费后 offset 未移动:
197
- 原因:仅使用 SELECT 查询,未执行 DML
198
- 解决方案:必须通过 INSERT INTO / MERGE INTO / UPDATE 等 DML 操作消费数据
199
-
200
- 重复消费导致目标表数据重复:
201
- 原因:使用 INSERT INTO 而非 MERGE,或消费逻辑非幂等
202
- 解决方案:改用 MERGE 语句;记录最后消费的 `__commit_version` 和 `__commit_timestamp` 用于断点恢复
203
-
204
- COMMENT 语法错误:
205
- 原因:使用了 `COMMENT = '...'`(带等号)而非 `COMMENT '...'`
206
- 解决方案:正确语法为 `COMMENT '注释内容'`,不带等号