@clickzetta/cz-cli-darwin-x64 0.3.40 → 0.3.41
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/bin/skills/clickzetta-app-python-sdk/SKILL.md +153 -0
- package/bin/skills/clickzetta-app-python-sdk/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-app-python-sdk/references/bulkload.md +196 -0
- package/bin/skills/clickzetta-app-python-sdk/references/connector.md +143 -0
- package/bin/skills/clickzetta-app-python-sdk/references/realtime.md +122 -0
- package/bin/skills/clickzetta-batch-sync-pipeline/SKILL.md +128 -287
- package/bin/skills/clickzetta-bi-connect/SKILL.md +176 -0
- package/bin/skills/clickzetta-bi-connect/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-bi-connect/references/bi-tools.md +170 -0
- package/bin/skills/clickzetta-cdc-sync-pipeline/SKILL.md +633 -0
- package/bin/skills/clickzetta-cdc-sync-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-data-ingest-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-data-science/SKILL.md +125 -0
- package/bin/skills/clickzetta-data-science/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-data-science/references/bitmap-profile.md +146 -0
- package/bin/skills/clickzetta-data-science/references/data-patterns.md +110 -0
- package/bin/skills/clickzetta-data-science/references/setup.md +160 -0
- package/bin/skills/clickzetta-data-science/references/stats-functions.md +195 -0
- package/bin/skills/clickzetta-data-science/references/write-and-infer.md +122 -0
- package/bin/skills/clickzetta-data-science/references/zettapark-api.md +156 -0
- package/bin/skills/clickzetta-data-sharing/SKILL.md +160 -0
- package/bin/skills/clickzetta-data-sharing/eval_cases.jsonl +3 -0
- package/bin/skills/clickzetta-data-sharing/references/share-ddl.md +134 -0
- package/bin/skills/clickzetta-dw-modeling/SKILL.md +103 -11
- package/bin/skills/clickzetta-dynamic-table/SKILL.md +58 -2
- package/bin/skills/clickzetta-dynamic-table/dynamic-table-alter/SKILL.md +4 -4
- package/bin/skills/clickzetta-external-catalog/SKILL.md +123 -0
- package/bin/skills/clickzetta-external-catalog/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-external-catalog/references/external-catalog-ddl.md +130 -0
- package/bin/skills/clickzetta-file-import-pipeline/SKILL.md +34 -0
- package/bin/skills/clickzetta-java-sdk/SKILL.md +186 -0
- package/bin/skills/clickzetta-java-sdk/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-java-sdk/references/bulkload.md +163 -0
- package/bin/skills/clickzetta-java-sdk/references/realtime.md +212 -0
- package/bin/skills/clickzetta-kafka-ingest-pipeline/SKILL.md +31 -0
- package/bin/skills/clickzetta-metadata/SKILL.md +28 -30
- package/bin/skills/clickzetta-oss-ingest-pipeline/SKILL.md +39 -0
- package/bin/skills/clickzetta-pipeline-review/SKILL.md +377 -0
- package/bin/skills/clickzetta-realtime-sync-pipeline/SKILL.md +323 -0
- package/bin/skills/clickzetta-realtime-sync-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-semantic-view/SKILL.md +207 -0
- package/bin/skills/clickzetta-semantic-view/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-semantic-view/references/semantic-view-reference.md +167 -0
- package/bin/skills/clickzetta-spark-flink-connector/SKILL.md +92 -0
- package/bin/skills/clickzetta-spark-flink-connector/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-spark-flink-connector/references/flink.md +147 -0
- package/bin/skills/clickzetta-spark-flink-connector/references/spark.md +132 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/SKILL.md +115 -9
- package/bin/skills/clickzetta-sql-syntax-guide/SKILL.md +249 -0
- package/bin/skills/clickzetta-sql-syntax-guide/eval_cases.jsonl +3 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/ddl-reference.md +350 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/dml-reference.md +279 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/dql-reference.md +504 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/functions-reference.md +372 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/migration-databricks.md +260 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/migration-snowflake.md +382 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/vs-snowflake.md +346 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/vs-spark.md +229 -0
- package/bin/skills/clickzetta-studio-task-manager/SKILL.md +652 -0
- package/bin/skills/clickzetta-table-lineage/SKILL.md +90 -0
- package/bin/skills/clickzetta-table-lineage/eval_cases.jsonl +1 -0
- package/bin/skills/clickzetta-table-lineage/references/normalize_func.sql +14 -0
- package/bin/skills/clickzetta-table-lineage/references/table_cost.sql +38 -0
- package/bin/skills/clickzetta-table-lineage/references/table_lineage_standalone.html +562 -0
- package/bin/skills/clickzetta-table-lineage/references/table_relation.sql +25 -0
- package/bin/skills/clickzetta-zettapark/SKILL.md +248 -0
- package/bin/skills/clickzetta-zettapark/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-zettapark/references/zettapark-api.md +283 -0
- package/package.json +1 -1
- package/bin/skills/clickzetta-ai-vector-search/SKILL.md +0 -160
- package/bin/skills/clickzetta-ai-vector-search/eval_cases.jsonl +0 -4
- package/bin/skills/clickzetta-ai-vector-search/references/vector-search.md +0 -155
|
@@ -12,375 +12,216 @@ description: |
|
|
|
12
12
|
|
|
13
13
|
# 离线同步(批量同步)Pipeline 工作流
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## 向导:收集必要信息
|
|
16
|
+
|
|
17
|
+
开始创建同步任务前,优先使用交互式问答工具(如 `question`)收集以下信息并弹出选项菜单;若无此类工具,则用文字一次性列出所有问题:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
question({
|
|
21
|
+
questions: [
|
|
22
|
+
{
|
|
23
|
+
question: "数据源类型和名称是什么?",
|
|
24
|
+
options: [
|
|
25
|
+
{ label: "MySQL", description: "如 aliyun_mysql、rds_mysql" },
|
|
26
|
+
{ label: "PostgreSQL", description: "如 pg_prod、aurora_pg" },
|
|
27
|
+
{ label: "SQL Server", description: "如 sqlserver_prod" },
|
|
28
|
+
{ label: "OSS/S3/COS 对象存储", description: "如 oss_bucket、s3_data" }
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: "同步范围是什么?",
|
|
33
|
+
options: [
|
|
34
|
+
{ label: "单表同步", description: "指定一张源表同步到目标表" },
|
|
35
|
+
{ label: "多表镜像", description: "整库或指定多张表批量同步" },
|
|
36
|
+
{ label: "分库分表合并", description: "多张源表合并到一张目标表" }
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
question: "写入模式?",
|
|
41
|
+
options: [
|
|
42
|
+
{ label: "全量覆盖(OVERWRITE)", description: "每次全量覆盖目标表,推荐" },
|
|
43
|
+
{ label: "增量追加(APPEND)", description: "追加新数据,不删除历史" }
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
})
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
收集到信息后,还需确认:目标 schema(如 `ods`)、调度时间(如每天 02:00)。这两项可以在用户回答后直接询问,或从上下文推断。
|
|
51
|
+
|
|
52
|
+
**如果用户已经提供了足够信息,直接进入工作流,不再弹出菜单。**
|
|
16
53
|
|
|
17
|
-
|
|
18
|
-
- 单表离线同步:简单的源表 → 目标表周期性同步
|
|
19
|
-
- 多表离线同步:整库迁移、多表批量同步、分库分表合并
|
|
20
|
-
- 数据时效性要求不高,按天/小时等周期批量更新
|
|
21
|
-
- 需要通过 Studio 调度系统进行周期性自动执行
|
|
22
|
-
- 关键词:离线同步、批量同步、整库迁移、多表同步、定期同步、batch sync
|
|
54
|
+
---
|
|
23
55
|
|
|
24
56
|
## 前置依赖
|
|
25
57
|
|
|
26
58
|
- ClickZetta Lakehouse Studio 账户,具备创建同步任务、目标表的权限
|
|
27
59
|
- 源端数据源已在 Studio 中配置(具备 SELECT 权限)
|
|
28
60
|
- 目标端 Lakehouse 数据源可用(具备 CREATE、INSERT 权限)
|
|
29
|
-
-
|
|
30
|
-
- **cz-cli 路径**:已安装 cz-cli(`pip install cz-cli`),并完成 `cz-cli configure` 配置;cz-cli 内置 Studio MCP 工具,可完全替代 MCP 路径
|
|
31
|
-
- **MCP 路径**:clickzetta-studio-mcp 工具可用(`create_task`、`save_integration_task`、`save_task_configuration`、`publish_task`、`list_data_sources` 等)
|
|
32
|
-
|
|
33
|
-
## 环境探测(执行前必读)
|
|
61
|
+
- 已安装 cz-cli 并完成 profile 配置(`cz-cli profile status` 验证连接)
|
|
34
62
|
|
|
35
|
-
|
|
63
|
+
---
|
|
36
64
|
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
cz-cli --version
|
|
40
|
-
```
|
|
41
|
-
- 若命令存在 → **走 cz-cli 路径**(见本文档末尾"cz-cli 替代路径"章节)
|
|
42
|
-
- 若命令不存在 → 继续检测 MCP
|
|
65
|
+
## 适用场景
|
|
43
66
|
|
|
44
|
-
|
|
67
|
+
- 将外部数据库(MySQL / PostgreSQL / SQL Server 等)的数据定期同步到 Lakehouse
|
|
68
|
+
- 单表离线同步:简单的源表 → 目标表周期性同步
|
|
69
|
+
- 多表离线同步:整库迁移、多表批量同步、分库分表合并
|
|
70
|
+
- 数据时效性要求不高,按天/小时等周期批量更新
|
|
45
71
|
|
|
46
|
-
|
|
47
|
-
- 若工具存在于 tool list → **走 MCP 路径**(本文档默认路径)
|
|
48
|
-
- 若工具不存在 → 停止执行,提示用户:
|
|
49
|
-
> "当前环境既无 cz-cli 也无 MCP 工具,请安装其中之一后重试。
|
|
50
|
-
> cz-cli 安装:`pip install cz-cli`,然后运行 `cz-cli configure`
|
|
51
|
-
> MCP 安装:参考 clickzetta-studio-mcp 配置文档"
|
|
72
|
+
---
|
|
52
73
|
|
|
53
|
-
##
|
|
74
|
+
## 模式选择
|
|
54
75
|
|
|
55
76
|
| 维度 | 单表离线同步 | 多表离线同步 |
|
|
56
77
|
|------|------------|------------|
|
|
57
|
-
| 任务类型 ID | `
|
|
78
|
+
| 任务类型 ID | `1`(DI/INTEGRATION) | `291`(MULTI_DI) |
|
|
58
79
|
| 同步粒度 | 单张源表 → 单张目标表 | 整库 / 多表 → 多张目标表 |
|
|
59
80
|
| 适用场景 | 简单同步、精细控制单表 | 整库迁移、批量同步、分库分表合并 |
|
|
60
|
-
| 字段映射 | 手动拖拽调整 | 自动识别 + 批量配置 |
|
|
61
81
|
| Schema Evolution | 不支持 | 支持(新增字段自动适配) |
|
|
62
|
-
| 自动建表 |
|
|
82
|
+
| 自动建表 | 需手动创建或快速创建 | 目标表不存在时自动创建 |
|
|
63
83
|
| 写入模式 | 由数据源决定 | overwrite / upsert 可选 |
|
|
64
84
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
**来源端**:MySQL、PostgreSQL、SQL Server、Aurora MySQL、Aurora PostgreSQL、PolarDB MySQL、PolarDB PostgreSQL
|
|
68
|
-
|
|
69
|
-
**目标端**:Lakehouse
|
|
70
|
-
|
|
71
|
-
## 工作流
|
|
72
|
-
|
|
73
|
-
### 模式 A:单表离线同步
|
|
74
|
-
|
|
75
|
-
#### 步骤 1:查找可用数据源
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
使用 list_data_sources 查看已配置的数据源列表。
|
|
79
|
-
如需按类型过滤,指定 ds_type 参数(5=MySQL, 7=PostgreSQL, 8=SQL Server)。
|
|
80
|
-
记录源端 datasource_name 和目标端 datasource_name。
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
#### 步骤 2:创建离线同步任务
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
使用 create_task 创建任务:
|
|
87
|
-
- task_type: 10(离线同步)
|
|
88
|
-
- task_name: 自定义任务名称
|
|
89
|
-
- data_folder_id: 目标文件夹 ID(可通过 list_folders 获取)
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
#### 步骤 3:配置同步内容
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
使用 save_integration_task 配置同步:
|
|
96
|
-
- task_id: 步骤 2 返回的任务 ID
|
|
97
|
-
- source_datasource_name: 源端数据源名称
|
|
98
|
-
- source_schema: 源端数据库/Schema
|
|
99
|
-
- source_table: 源端表名
|
|
100
|
-
- source_ds_type: 源端类型(5=MySQL, 7=PostgreSQL, 8=SQL Server 等)
|
|
101
|
-
- sink_datasource_name: 目标 Lakehouse 数据源名称
|
|
102
|
-
- sink_schema: 目标 Schema(默认 public)
|
|
103
|
-
- sink_table: 目标表名(可选,默认与源表同名)
|
|
104
|
-
- sink_ds_type: 1(Lakehouse)
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
> **说明**:系统会自动获取源表和目标表的元数据,生成字段映射。如目标表不存在,会自动创建。
|
|
108
|
-
|
|
109
|
-
#### 步骤 4:配置调度并部署
|
|
110
|
-
|
|
111
|
-
```
|
|
112
|
-
使用 save_task_configuration 配置调度:
|
|
113
|
-
- task_id: 任务 ID
|
|
114
|
-
- cron_express: Cron 表达式(如 '0 0 2 * * ? *' 表示每天凌晨 2 点)
|
|
115
|
-
- schedule_start_time: 调度开始时间(如 '02:00')
|
|
116
|
-
|
|
117
|
-
注意:离线同步任务(task_type=10)需要 Sync VCluster。
|
|
118
|
-
工具会自动检查并分配可用的 Sync VCluster。如无可用 Sync VCluster,需先创建。
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
#### 步骤 5:提交任务
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
使用 publish_task 提交任务到调度系统:
|
|
125
|
-
- task_id: 任务 ID
|
|
126
|
-
- task_version: 当前版本号(通过 get_task_detail 获取)
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
#### 步骤 6:验证与监控
|
|
130
|
-
|
|
131
|
-
```
|
|
132
|
-
使用 get_task_detail 查看任务详情和状态。
|
|
133
|
-
使用 list_task_run 查看任务执行记录。
|
|
134
|
-
如执行失败,使用 list_executions + get_execution_log 查看日志排查问题。
|
|
135
|
-
```
|
|
85
|
+
> **重要**:这两种任务类型均为 UI_ONLY 类型,脚本内容必须在 Studio Web UI 中配置。
|
|
86
|
+
> cz-cli 负责任务创建、调度配置、发布和运维;数据源选择、字段映射等内容配置在 Studio UI 完成。
|
|
136
87
|
|
|
137
88
|
---
|
|
138
89
|
|
|
139
|
-
|
|
90
|
+
## 工作流
|
|
140
91
|
|
|
141
|
-
|
|
92
|
+
> **重要**:离线同步任务的**内容配置**(来源表选择、字段映射、同步规则等)必须在 Studio Web UI 中完成。
|
|
93
|
+
> cz-cli 负责任务创建、调度配置、发布和运维;数据源选择、字段映射等内容配置在 Studio UI 完成。
|
|
142
94
|
|
|
143
|
-
|
|
144
|
-
|------|------|---------|
|
|
145
|
-
| 整库镜像 | 同步源端整个数据库的所有表 | 整库迁移 |
|
|
146
|
-
| 多表镜像 | 选择多张表分别同步,保持表结构独立 | 按需选择部分表 |
|
|
147
|
-
| 多表合并 | 多个源表合并到一张或多张目标表 | 分库分表合并 |
|
|
95
|
+
### 步骤 1:用 cz-cli 创建任务
|
|
148
96
|
|
|
149
|
-
|
|
97
|
+
```bash
|
|
98
|
+
# 单表离线同步(task_type=1,即 DI/INTEGRATION)
|
|
99
|
+
cz-cli task create "sync_orders_daily" --type DI --folder <folder_name>
|
|
150
100
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
- task_type: 291(多表离线同步)
|
|
154
|
-
- task_name: 自定义任务名称
|
|
155
|
-
- data_folder_id: 目标文件夹 ID
|
|
101
|
+
# 多表离线同步(task_type=291,即 MULTI_DI)
|
|
102
|
+
cz-cli task create "sync_ecommerce_db" --type MULTI_DI --folder <folder_name>
|
|
156
103
|
```
|
|
157
104
|
|
|
158
|
-
|
|
105
|
+
命令返回 `task_id` 和 `studio_url`,在 `studio_url` 中完成数据源配置。
|
|
159
106
|
|
|
160
|
-
|
|
161
|
-
> 目前需要在 Studio Web UI 中完成。create_task 返回的 studio_url 可直接打开配置页面。
|
|
107
|
+
### 步骤 2:在 Studio UI 中配置同步内容
|
|
162
108
|
|
|
163
|
-
|
|
109
|
+
打开步骤 1 返回的 `studio_url`,在 Studio 中完成:
|
|
164
110
|
|
|
165
111
|
**来源数据配置**
|
|
166
|
-
-
|
|
167
|
-
-
|
|
112
|
+
- 选择源端数据源类型和连接(支持的数据源类型以 Studio UI 中显示为准,可通过 `cz-cli datasource list` 查看已配置的数据源)
|
|
113
|
+
- 单表:指定 schema 和表名
|
|
114
|
+
- 多表:选择整库 / 勾选多表 / 配置合并规则
|
|
168
115
|
|
|
169
116
|
**目标设置**
|
|
170
117
|
- 选择目标 Lakehouse 数据源和 workspace
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
- 可选:配置分区(分区字段 + 分区值表达式)
|
|
174
|
-
|
|
175
|
-
**同步规则**
|
|
176
|
-
- Schema Evolution:源端删除字段 → 写入 Null;源端新增字段 → 自动适配;源端删除表 → 忽略
|
|
177
|
-
- 分组策略:智能分组(自动)或 静态分组(指定单组表数量,默认 4)
|
|
178
|
-
- 并发控制:单分组源端最大连接数(默认 4)、并发执行分组数(默认 2)
|
|
179
|
-
- 写入模式:非主键表 → overwrite;主键表 → overwrite 或 upsert
|
|
180
|
-
|
|
181
|
-
#### 步骤 3:调试运行
|
|
118
|
+
- 配置目标 schema 和表名
|
|
119
|
+
- 多表模式可配置命名规则(支持 `{SOURCE_DATABASE}`、`{SOURCE_TABLE}` 变量)
|
|
182
120
|
|
|
183
|
-
|
|
184
|
-
|
|
121
|
+
**同步规则(多表模式)**
|
|
122
|
+
- Schema Evolution:源端新增字段自动适配;删除字段写入 Null
|
|
123
|
+
- 写入模式:非主键表 → overwrite;主键表 → overwrite 或 upsert
|
|
185
124
|
|
|
186
|
-
|
|
125
|
+
### 步骤 3:在 Studio UI 中调试运行
|
|
187
126
|
|
|
188
|
-
|
|
189
|
-
使用 save_task_configuration 配置调度:
|
|
190
|
-
- task_id: 任务 ID
|
|
191
|
-
- cron_express: Cron 表达式
|
|
192
|
-
- schedule_start_time: 调度开始时间
|
|
127
|
+
点击「运行」按钮进行调试,验证数据源连接和配置是否正确。
|
|
193
128
|
|
|
194
|
-
|
|
195
|
-
```
|
|
129
|
+
### 步骤 4:用 cz-cli 配置调度和发布
|
|
196
130
|
|
|
197
|
-
|
|
131
|
+
```bash
|
|
132
|
+
# 配置调度(具体参数见 --help)
|
|
133
|
+
cz-cli task save-cron <task_name> --help
|
|
198
134
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
- task_id: 任务 ID
|
|
202
|
-
- task_version: 当前版本号
|
|
135
|
+
# 发布任务
|
|
136
|
+
cz-cli task deploy <task_name> -y
|
|
203
137
|
```
|
|
204
138
|
|
|
205
|
-
|
|
139
|
+
> 离线同步任务(task_type=1 和 291)必须使用 Sync VCluster,不能使用通用型或分析型 VCluster。
|
|
206
140
|
|
|
207
|
-
|
|
208
|
-
多表离线同步任务在「任务运维」→「周期任务」中管理。
|
|
209
|
-
|
|
210
|
-
查看任务详情:get_task_detail
|
|
211
|
-
查看执行记录:list_task_run
|
|
212
|
-
查看执行日志:list_executions + get_execution_log
|
|
141
|
+
### 步骤 5:验证与监控
|
|
213
142
|
|
|
214
|
-
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
218
|
-
-
|
|
143
|
+
```bash
|
|
144
|
+
cz-cli runs list --task <task_name> # 查看运行记录
|
|
145
|
+
cz-cli runs detail <run_id> # 查看运行详情
|
|
146
|
+
cz-cli attempts log <run_id> # 查看执行日志
|
|
147
|
+
cz-cli runs refill <task_name> --help # 补数据(--help 查看参数)
|
|
219
148
|
```
|
|
220
149
|
|
|
221
150
|
---
|
|
222
151
|
|
|
223
152
|
## 任务运维操作
|
|
224
153
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
|
228
|
-
|
|
229
|
-
|
|
|
230
|
-
|
|
|
231
|
-
| 下线(含下游) | 将当前任务及下游任务一并下线(有下游依赖时不允许单独下线) |
|
|
232
|
-
| 补数据 | 对历史周期进行数据补录 |
|
|
233
|
-
| 编辑 | 跳转到开发界面修改配置 |
|
|
154
|
+
| 操作 | cz-cli 命令 | 说明 |
|
|
155
|
+
|------|------------|------|
|
|
156
|
+
| 下线 | `cz-cli task undeploy <task> -y` | 停止任务并从调度系统移除(不可逆) |
|
|
157
|
+
| 补数据 | `cz-cli runs refill <task> --from D --to D -y` | 对历史周期进行数据补录 |
|
|
158
|
+
| 查看依赖 | `cz-cli runs deps <task>` | 查看已发布的上下游依赖 |
|
|
159
|
+
| 查看运行 | `cz-cli runs list --task <task>` | 查看运行实例列表 |
|
|
234
160
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|------|------|
|
|
239
|
-
| 重跑(全部对象) | 重新同步所有表 |
|
|
240
|
-
| 重跑(仅失败对象) | 只重跑同步失败的表 |
|
|
241
|
-
| 置成功/置失败 | 手动设置实例最终状态 |
|
|
242
|
-
| 取消运行 | 强制终止正在运行的实例 |
|
|
243
|
-
| 单表重新同步 | 在同步对象 Tab 中对单张表重新同步 |
|
|
244
|
-
| 单表强制停止 | 终止单张表的同步 |
|
|
161
|
+
多表离线同步任务在 Studio「任务运维」→「周期任务」中管理,可查看:
|
|
162
|
+
- 任务实例 Tab:每张表的读取/写入行数和同步速率
|
|
163
|
+
- 同步对象 Tab:所有源表和目标表的映射关系
|
|
245
164
|
|
|
246
165
|
---
|
|
247
166
|
|
|
248
|
-
##
|
|
167
|
+
## 交付验收 Checklist
|
|
249
168
|
|
|
250
|
-
|
|
169
|
+
同步任务发布运行后,**必须逐项验证**:
|
|
251
170
|
|
|
252
|
-
|
|
171
|
+
```sql
|
|
172
|
+
-- 1. 行数比对:目标表行数与源端一致
|
|
173
|
+
SELECT COUNT(*) FROM <ods_schema>.<table>;
|
|
174
|
+
-- 与源端 MySQL/PG 执行 SELECT COUNT(*) FROM <table> 对比
|
|
253
175
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
### 示例 2:MySQL 整库迁移到 Lakehouse
|
|
176
|
+
-- 2. 关键字段非空率
|
|
177
|
+
SELECT
|
|
178
|
+
COUNT(*) AS total,
|
|
179
|
+
COUNT(key_field) AS non_null,
|
|
180
|
+
ROUND(COUNT(key_field) * 100.0 / COUNT(*), 2) AS non_null_pct
|
|
181
|
+
FROM <ods_schema>.<table>;
|
|
182
|
+
```
|
|
262
183
|
|
|
263
|
-
|
|
184
|
+
**验收标准:**
|
|
185
|
+
- [ ] 目标表行数与源端一致
|
|
186
|
+
- [ ] 关键字段非空率符合预期
|
|
187
|
+
- [ ] 同步任务最近运行状态为 SUCCESS
|
|
188
|
+
- [ ] 字段类型映射正确(重点检查 BIT/ENUM/TEXT 等异构类型)
|
|
189
|
+
- [ ] 调度 Cron 配置正确,下次执行时间符合预期
|
|
264
190
|
|
|
265
|
-
|
|
266
|
-
1. `create_task(task_type=291, task_name="sync_ecommerce_db")` → 获取 studio_url
|
|
267
|
-
2. 在 Studio UI 中:选择整库镜像 → 选择 ecommerce 数据库 → 配置目标 workspace → 写入模式选 upsert(主键表)
|
|
268
|
-
3. 点击「运行」调试验证
|
|
269
|
-
4. `save_task_configuration(cron_express="0 0 1 * * ? *")` 配置每日凌晨 1 点调度
|
|
270
|
-
5. `publish_task(...)` 提交
|
|
191
|
+
---
|
|
271
192
|
|
|
272
193
|
## 故障排除
|
|
273
194
|
|
|
274
195
|
| 问题 | 排查方向 |
|
|
275
196
|
|------|---------|
|
|
276
|
-
| 任务创建失败 |
|
|
197
|
+
| 任务创建失败 | 确认账号有创建任务权限;检查文件夹 ID 是否存在 |
|
|
277
198
|
| 源端连接失败 | 检查数据源配置中的连接信息、网络可达性、账号权限 |
|
|
278
199
|
| 字段映射失败 | 检查源表和目标表的字段类型兼容性 |
|
|
279
200
|
| 同步速度慢 | 调整并发数(最大 10)和同步速率;检查源端数据库负载 |
|
|
280
|
-
| Schema Evolution 失败 | 不支持修改主键字段;字段类型仅支持同类型扩展(int8→int16→int32→int64
|
|
201
|
+
| Schema Evolution 失败 | 不支持修改主键字段;字段类型仅支持同类型扩展(int8→int16→int32→int64) |
|
|
281
202
|
| 多表同步部分表失败 | 在实例详情的「同步对象」Tab 查看各表状态;可对失败表单独重跑 |
|
|
282
203
|
| upsert 模式数据不一致 | 确认目标表有正确的主键定义;检查源端数据是否有主键冲突 |
|
|
204
|
+
| VCluster 类型错误 | 离线同步必须使用 Sync VCluster,通过 `SHOW VCLUSTERS` 确认类型 |
|
|
283
205
|
|
|
284
|
-
|
|
206
|
+
---
|
|
285
207
|
|
|
286
|
-
|
|
208
|
+
## 注意事项
|
|
287
209
|
|
|
288
|
-
|
|
210
|
+
**权限要求**
|
|
211
|
+
- 源端:数据源配置的账号需具备 SELECT 权限
|
|
289
212
|
- 目标端:任务负责人需具备 CREATE 和 INSERT 权限
|
|
290
213
|
|
|
291
|
-
|
|
292
|
-
|
|
214
|
+
**性能考虑**
|
|
293
215
|
- 合理配置并发度,避免对源端数据库造成过大压力
|
|
294
216
|
- 首次执行需初始化所有同步对象,可能耗时较长
|
|
295
|
-
- 单个多表同步任务的表数量控制在合理范围,过多表影响执行效率
|
|
296
217
|
- 选择源端数据库压力较小的时间窗口执行调度
|
|
297
218
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
- overwrite 模式:每次执行完全刷新目标表数据
|
|
301
|
-
- upsert 模式:基于主键进行增量更新
|
|
302
|
-
- 两次同步间隔期间的数据变化会在下次同步时体现
|
|
303
|
-
|
|
304
|
-
### Schema Evolution 限制(多表离线同步)
|
|
305
|
-
|
|
219
|
+
**Schema Evolution 限制(多表离线同步)**
|
|
306
220
|
- 不支持修改主键字段(Lakehouse 主键表限制)
|
|
307
221
|
- 字段类型修改仅支持同类型扩展(int8 → int16 → int32 → int64)
|
|
308
222
|
- 不支持跨类型转换(如 int → double)
|
|
309
|
-
- 建议在源端 Schema 相对稳定时启用
|
|
310
|
-
|
|
311
|
-
### Sync VCluster 要求
|
|
312
|
-
|
|
313
|
-
- 离线同步任务(task_type=10 和 291)必须使用 Sync VCluster
|
|
314
|
-
- 创建/调度任务前需确认有可用的 Sync VCluster
|
|
315
|
-
- 可通过 `LH_show_object_list`(object_type='VCLUSTERS')查看,筛选 vcluster_type 包含 SYNC 的集群
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
## cz-cli 替代路径
|
|
320
|
-
|
|
321
|
-
> 仅在 cz-cli 可用且 MCP 不可用时使用本节。步骤编号与上方 MCP 路径对应。
|
|
322
|
-
> cz-cli 内置完整的 Studio MCP 工具,通过 `cz-cli agent run` 可完成所有 Studio 任务操作。
|
|
323
223
|
|
|
324
|
-
|
|
224
|
+
**支持的数据源**
|
|
225
|
+
- 来源端:关系型数据库(MySQL、PostgreSQL、SQL Server 等)及其云变体(Aurora、PolarDB 等),具体支持列表以 Studio UI 中显示为准,可通过 `cz-cli datasource list` 查看已配置的数据源
|
|
226
|
+
- 目标端:Lakehouse
|
|
325
227
|
|
|
326
|
-
```bash
|
|
327
|
-
# 步骤 1-5 合并:让 agent 完成完整的单表离线同步任务创建
|
|
328
|
-
cz-cli agent run "创建离线同步任务,将 MySQL 数据源 <source_ds_name> 中 <schema>.<table> 表同步到 Lakehouse public schema,任务名 sync_<table>,每天凌晨 2 点执行,任务放在默认文件夹下,创建完成后发布" \
|
|
329
|
-
--format a2a --dangerously-skip-permissions
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
对于需要精细控制的场景,可拆分步骤:
|
|
333
|
-
|
|
334
|
-
```bash
|
|
335
|
-
# 步骤 1:查找数据源
|
|
336
|
-
cz-cli agent run "列出所有已配置的数据源,包括 MySQL 类型(ds_type=5)的" \
|
|
337
|
-
--format a2a --dangerously-skip-permissions
|
|
338
|
-
|
|
339
|
-
# 步骤 2:创建任务
|
|
340
|
-
cz-cli agent run "创建离线同步任务(task_type=10),任务名 sync_<table>,放在默认文件夹下" \
|
|
341
|
-
--format a2a --dangerously-skip-permissions
|
|
342
|
-
|
|
343
|
-
# 步骤 3:配置同步内容
|
|
344
|
-
cz-cli agent run "配置刚创建的离线同步任务:源端数据源 <source_ds_name>,schema <db>,表 <table>,目标 Lakehouse public.<table>" \
|
|
345
|
-
--format a2a --dangerously-skip-permissions
|
|
346
|
-
|
|
347
|
-
# 步骤 4:配置调度并发布
|
|
348
|
-
cz-cli agent run "给任务 sync_<table> 配置每天凌晨 2 点执行的调度(cron: 0 0 2 * * ? *),然后发布任务" \
|
|
349
|
-
--format a2a --dangerously-skip-permissions
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
---
|
|
353
|
-
|
|
354
|
-
### 模式 B:多表离线同步(cz-cli 版)
|
|
355
|
-
|
|
356
|
-
> 多表离线同步(task_type=291)的详细配置需要在 Studio UI 中完成。cz-cli agent 可完成任务创建和调度配置,详细映射配置需通过 studio_url 在 UI 中操作。
|
|
357
|
-
|
|
358
|
-
```bash
|
|
359
|
-
# 步骤 1:创建多表离线同步任务
|
|
360
|
-
cz-cli agent run "创建多表离线同步任务(task_type=291),任务名 sync_<database>_db,放在默认文件夹下,返回 studio_url" \
|
|
361
|
-
--format a2a --dangerously-skip-permissions
|
|
362
|
-
|
|
363
|
-
# 步骤 4(UI 配置完成后):配置调度
|
|
364
|
-
cz-cli agent run "给任务 sync_<database>_db 配置每天凌晨 1 点执行的调度(cron: 0 0 1 * * ? *)" \
|
|
365
|
-
--format a2a --dangerously-skip-permissions
|
|
366
|
-
|
|
367
|
-
# 步骤 5:发布任务
|
|
368
|
-
cz-cli agent run "发布任务 sync_<database>_db" \
|
|
369
|
-
--format a2a --dangerously-skip-permissions
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
> **注意**:多表离线同步的来源数据选择、目标设置、字段映射等详细配置需要在 Studio UI 中完成(通过 studio_url 打开)。
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
|
-
### 任务运维(cz-cli 版)
|
|
377
|
-
|
|
378
|
-
```bash
|
|
379
|
-
# 查看任务状态
|
|
380
|
-
cz-cli agent run "查看离线同步任务 sync_<table> 的详情和最近执行记录" \
|
|
381
|
-
--format a2a --dangerously-skip-permissions
|
|
382
|
-
|
|
383
|
-
# 查看执行日志(失败时)
|
|
384
|
-
cz-cli agent run "查看任务 sync_<table> 最近一次失败的执行日志,找出失败原因" \
|
|
385
|
-
--format a2a --dangerously-skip-permissions
|
|
386
|
-
```
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clickzetta-bi-connect
|
|
3
|
+
description: |
|
|
4
|
+
将 BI 工具和数据库客户端连接到 ClickZetta Lakehouse。覆盖 Apache Superset、
|
|
5
|
+
Tableau、Metabase、DBeaver、DataGrip、帆软 FineBI 等主流工具的完整连接配置,
|
|
6
|
+
包括 JDBC 连接字符串格式、SQLAlchemy URL 格式、驱动安装步骤。
|
|
7
|
+
当用户说"连接 Superset"、"Tableau 连接 Lakehouse"、"Metabase"、"DBeaver"、
|
|
8
|
+
"DataGrip"、"BI 工具"、"JDBC 连接"、"SQLAlchemy 连接"、"帆软"、"FineBI"、
|
|
9
|
+
"数据库客户端"、"可视化工具连接"、"BI 报表"、"PowerBI"、"Navicat"、
|
|
10
|
+
"MySQL 协议连接"时触发。
|
|
11
|
+
Keywords: BI, Superset, Tableau, Metabase, DBeaver, DataGrip, FineBI, JDBC, connection
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# ClickZetta BI 工具连接
|
|
15
|
+
|
|
16
|
+
阅读 [references/bi-tools.md](references/bi-tools.md) 了解各工具详细配置。
|
|
17
|
+
|
|
18
|
+
## 连接方式速查
|
|
19
|
+
|
|
20
|
+
| 工具 | 连接方式 |
|
|
21
|
+
|---|---|
|
|
22
|
+
| Apache Superset | SQLAlchemy URL |
|
|
23
|
+
| Tableau | JDBC + .taco 插件 |
|
|
24
|
+
| Metabase | 专用 .jar 驱动 |
|
|
25
|
+
| DBeaver / DataGrip | JDBC |
|
|
26
|
+
| 帆软 FineBI | JDBC 或 MySQL 协议 |
|
|
27
|
+
| PowerBI | MySQL 协议 |
|
|
28
|
+
| Navicat | MySQL 协议 |
|
|
29
|
+
| Python / ORM | SQLAlchemy |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## JDBC 连接字符串
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
jdbc:clickzetta://<instance>.<region_id>.api.clickzetta.com/<workspace>?username=<user>&password=<pwd>&schema=<schema>&virtualCluster=<vc_name>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**示例:**
|
|
40
|
+
```
|
|
41
|
+
jdbc:clickzetta://f8866243.cn-shanghai-alicloud.api.clickzetta.com/quick_start?username=alice&password=xxxx&schema=public&virtualCluster=default_ap
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- 驱动类:`com.clickzetta.client.jdbc.ClickZettaDriver`
|
|
45
|
+
- 驱动下载:Maven `com.clickzetta:clickzetta-java` 或 [sonatype](https://central.sonatype.com/artifact/com.clickzetta/clickzetta-java/versions)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## SQLAlchemy URL(Superset / Python ORM)
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
clickzetta://<username>:<password>@<instance>.<region_id>.api.clickzetta.com/<workspace>?schema=<schema>&vcluster=<vc_name>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
安装:
|
|
56
|
+
```bash
|
|
57
|
+
pip uninstall -y clickzetta-sqlalchemy clickzetta-connector
|
|
58
|
+
pip install clickzetta-connector -U
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Apache Superset
|
|
64
|
+
|
|
65
|
+
**Docker 快速启动:**
|
|
66
|
+
```bash
|
|
67
|
+
docker pull clickzetta/superset:2.1.0-1
|
|
68
|
+
docker run -p 8088:8088 clickzetta/superset:2.1.0-1
|
|
69
|
+
# 访问 http://localhost:8088,账号 admin/clickzetta
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**配置数据库连接:**
|
|
73
|
+
1. Settings → Database Connections → + Database → 选择 **Other**
|
|
74
|
+
2. 填写 SQLAlchemy URI:
|
|
75
|
+
```
|
|
76
|
+
clickzetta://username:password@instance.cn-shanghai-alicloud.api.clickzetta.com/workspace?vcluster=default_ap
|
|
77
|
+
```
|
|
78
|
+
3. TESTING CONNECTION → CONNECT
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Tableau
|
|
83
|
+
|
|
84
|
+
1. 将 JDBC JAR 放入 Tableau Drivers 目录
|
|
85
|
+
2. 将 `.taco` 插件放入 Connectors 目录
|
|
86
|
+
3. 启动时加 `-DDisableVerifyConnectorPluginSignature=true`
|
|
87
|
+
4. 连接:到服务器 → 更多 → **Lakehouse x 云器科技**
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Metabase
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
docker run -d -p 3000:3000 --name metabase metabase/metabase:v0.54.6
|
|
95
|
+
docker cp clickzetta.metabase-driver.jar metabase:/plugins/
|
|
96
|
+
docker restart metabase
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
访问 `http://localhost:3000` → Admin Settings → Databases → Add a database → 选择 ClickZetta
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## DBeaver
|
|
104
|
+
|
|
105
|
+
1. 驱动管理器 → 新建驱动
|
|
106
|
+
2. 类名:`com.clickzetta.client.jdbc.ClickZettaDriver`
|
|
107
|
+
3. 添加 JDBC JAR 包
|
|
108
|
+
4. 新建连接 → 粘贴 JDBC 连接字符串
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## MySQL 协议连接(PowerBI / Navicat / 帆软)
|
|
113
|
+
|
|
114
|
+
Lakehouse 支持通过 MySQL 协议连接,适用于不支持自定义 JDBC 驱动的工具。
|
|
115
|
+
|
|
116
|
+
**前置准备:**
|
|
117
|
+
1. 在管理中心为用户重置 MySQL 协议专用密码
|
|
118
|
+
2. 为用户设置默认计算集群(`ALTER USER username SET DEFAULT_VCLUSTER = default_ap`)
|
|
119
|
+
|
|
120
|
+
**用户名格式:** `<instance_name>.<workspace_name>.<username>`
|
|
121
|
+
|
|
122
|
+
**连接参数:**
|
|
123
|
+
- 主机:`<instance>.<region_id>.mysql.clickzetta.com`
|
|
124
|
+
- 端口:`3306`
|
|
125
|
+
- 用户名:`instance.workspace.username`(三段式拼接)
|
|
126
|
+
- 密码:MySQL 协议专用密码(非 Lakehouse 登录密码)
|
|
127
|
+
|
|
128
|
+
### PowerBI
|
|
129
|
+
|
|
130
|
+
1. 获取数据 → MySQL 数据库
|
|
131
|
+
2. 服务器:`instance.cn-shanghai-alicloud.mysql.clickzetta.com`
|
|
132
|
+
3. 用户名:`instance.workspace.username`
|
|
133
|
+
4. 密码:MySQL 协议专用密码
|
|
134
|
+
5. 数据连接模式选择 DirectQuery
|
|
135
|
+
|
|
136
|
+
### Navicat
|
|
137
|
+
|
|
138
|
+
1. 新建连接 → MySQL
|
|
139
|
+
2. 主机:`instance.cn-shanghai-alicloud.mysql.clickzetta.com`
|
|
140
|
+
3. 端口:`3306`
|
|
141
|
+
4. 用户名:`instance.workspace.username`
|
|
142
|
+
5. 密码:MySQL 协议专用密码
|
|
143
|
+
|
|
144
|
+
### 帆软 FineBI(MySQL 协议方式)
|
|
145
|
+
|
|
146
|
+
1. 管理系统 → 数据连接 → 新建数据连接 → MySQL
|
|
147
|
+
2. URL:`jdbc:mysql://instance.cn-shanghai-alicloud.mysql.clickzetta.com:3306/workspace`
|
|
148
|
+
3. 用户名:`instance.workspace.username`
|
|
149
|
+
4. 密码:MySQL 协议专用密码
|
|
150
|
+
|
|
151
|
+
> ⚠️ MySQL 协议连接有部分 SQL 语法限制,详见 [使用MySQL协议连接](https://www.yunqi.tech/documents/use-mysql-client)
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 常用地域代码
|
|
156
|
+
|
|
157
|
+
| 地域 | region_id |
|
|
158
|
+
|---|---|
|
|
159
|
+
| 阿里云上海 | `cn-shanghai-alicloud` |
|
|
160
|
+
| 腾讯云上海 | `ap-shanghai-tencentcloud` |
|
|
161
|
+
| 腾讯云北京 | `ap-beijing-tencentcloud` |
|
|
162
|
+
| AWS 新加坡 | `ap-southeast-1-aws` |
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 常见问题
|
|
167
|
+
|
|
168
|
+
| 问题 | 解决方案 |
|
|
169
|
+
|---|---|
|
|
170
|
+
| Superset 连接失败 | 确认已安装 `clickzetta-connector`,URL 格式正确 |
|
|
171
|
+
| Tableau 找不到 Lakehouse 连接器 | 确认 .taco 文件在正确目录,且启动时禁用签名校验 |
|
|
172
|
+
| DBeaver 驱动加载失败 | 确认 JAR 包版本与 Lakehouse 版本匹配 |
|
|
173
|
+
| 连接超时 | 检查网络,确认 instance/region_id 正确 |
|
|
174
|
+
| 无权限查询 | 确认用户已被 `CREATE USER` 添加到工作空间,且有 `USE VCLUSTER` 权限 |
|
|
175
|
+
| MySQL 协议连接失败 | 确认用户名为三段式格式(instance.workspace.username),密码为 MySQL 协议专用密码 |
|
|
176
|
+
| PowerBI DirectQuery 报错 | 确认已设置用户默认计算集群(`ALTER USER ... SET DEFAULT_VCLUSTER`) |
|