@clickzetta/cz-cli-darwin-x64 0.3.39 → 0.3.40

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 CHANGED
Binary file
@@ -0,0 +1,237 @@
1
+ ---
2
+ name: clickzetta-data-ingest-pipeline
3
+ description: |
4
+ ClickZetta Lakehouse 数据导入总览与路由。根据用户的数据源类型、实时性要求、数据量等条件,
5
+ 推荐最合适的数据导入方式,并引导到对应的专项 Skill 或直接执行简单导入操作。
6
+ 当用户说"导入数据到 Lakehouse"、"数据入仓"、"数据入湖"、"怎么把数据导进来"、
7
+ "数据采集"、"数据加载"、"ingest data"、"load data"、"数据导入方案选择"时触发。
8
+ Keywords: data ingestion, import, routing, pipeline selection, data source
9
+ ---
10
+
11
+ # Lakehouse 数据导入总览与路由
12
+
13
+ 根据用户的数据源、实时性需求、数据规模等条件,推荐最合适的数据导入方式,
14
+ 并路由到对应的专项 Pipeline Skill 或直接执行简单导入操作。
15
+
16
+ ## 适用场景
17
+
18
+ - 用户想把数据导入 ClickZetta Lakehouse,但不确定用哪种方式
19
+ - 用户描述了数据源(Kafka、MySQL、OSS、文件等),需要推荐导入方案
20
+ - 用户需要了解各种导入方式的适用场景和差异
21
+ - 关键词:数据导入、数据入仓、数据入湖、数据采集、数据加载、pipeline 选择
22
+
23
+ ## 前置依赖
24
+
25
+ - ClickZetta Lakehouse 账户,具备创建工作空间、Schema、表、PIPE、任务等权限
26
+ - **执行环境**:已安装并配置 cz-cli
27
+
28
+ ## 执行环境
29
+
30
+ 所有操作通过 `cz-cli` 执行:
31
+
32
+ ```bash
33
+ cz-cli --version
34
+ ```
35
+
36
+ 需要 cz-cli,请参考官方文档安装并完成配置后重试。
37
+
38
+ ## 数据导入方式决策树
39
+
40
+ ### 步骤 1:确认数据源类型和需求
41
+
42
+ 向用户收集以下信息:
43
+
44
+ 1. **数据源类型**:Kafka / 对象存储(OSS/S3/COS) / 关系型数据库(MySQL/PostgreSQL/SQL Server) / 本地文件 / URL/Web 文件 / Java SDK / ZettaPark
45
+ 2. **实时性要求**:实时(秒级延迟)/ 准实时(分钟级)/ 离线批量(小时/天级)
46
+ 3. **同步范围**:单表 / 多表 / 整库
47
+ 4. **是否需要持续同步**:一次性导入 / 持续增量同步
48
+ 5. **是否需要 CDC(变更数据捕获)**:是 / 否
49
+
50
+ ### 步骤 2:根据决策矩阵推荐方案
51
+
52
+ | 数据源 | 实时性 | 同步范围 | 推荐方式 | 对应 Skill |
53
+ |--------|--------|---------|---------|-----------|
54
+ | Kafka | 实时/准实时 | 单 topic | Kafka PIPE 持续导入(SQL) | `clickzetta-kafka-ingest-pipeline` |
55
+ | Kafka | 实时 | 多 topic | Studio 实时同步 | `clickzetta-realtime-sync-pipeline` |
56
+ | 对象存储 (OSS/S3/COS) | 准实时/批量 | 文件持续到达 | PIPE 持续导入 | `clickzetta-oss-ingest-pipeline` |
57
+ | 对象存储 | 一次性 | 批量文件 | COPY INTO 命令 | `clickzetta-file-import-pipeline`(COPY INTO 部分) |
58
+ | MySQL/PostgreSQL/SQL Server | 实时 CDC | 单表 | Studio 实时同步 | `clickzetta-realtime-sync-pipeline` |
59
+ | MySQL/PostgreSQL/SQL Server | 实时 CDC | 多表/整库 | Studio 多表实时同步 | `clickzetta-cdc-sync-pipeline` |
60
+ | MySQL/PostgreSQL/SQL Server | 离线批量 | 单表 | Studio 离线同步 | `clickzetta-batch-sync-pipeline` |
61
+ | MySQL/PostgreSQL/SQL Server | 离线批量 | 多表 | Studio 多表离线同步 | `clickzetta-batch-sync-pipeline` |
62
+ | 本地文件 / URL | 一次性 | 单文件/多文件 | URL 下载 + COPY INTO | `clickzetta-file-import-pipeline` |
63
+ | 流式增量计算 | 准实时 | 表变更驱动 | Dynamic Table + Stream | `clickzetta-incremental-compute-pipeline` |
64
+ | Java 应用 | 实时/批量 | 程序写入 | Java SDK | (见下方 SDK 导入指引) |
65
+ | Python/ZettaPark | 批量 | DataFrame | ZettaPark save_as_table | (见下方 SDK 导入指引) |
66
+
67
+ ### 步骤 3:路由到专项 Skill 或直接执行
68
+
69
+ 根据推荐方案,执行以下路由逻辑:
70
+
71
+ **有对应专项 Skill 的场景** → 告知用户推荐方案,引导使用对应 Skill:
72
+ - `clickzetta-kafka-ingest-pipeline`:Kafka PIPE 管道搭建
73
+ - `clickzetta-oss-ingest-pipeline`:对象存储 PIPE 管道搭建
74
+ - `clickzetta-batch-sync-pipeline`:Studio 离线同步任务
75
+ - `clickzetta-realtime-sync-pipeline`:Studio 实时同步任务
76
+ - `clickzetta-cdc-sync-pipeline`:Studio 多表实时同步(CDC)
77
+ - `clickzetta-incremental-compute-pipeline`:Dynamic Table + Stream 增量计算管道
78
+ - `clickzetta-file-import-pipeline`:URL/文件下载导入
79
+ - `clickzetta-table-stream-pipeline`:Table Stream 变更数据捕获
80
+
81
+ **无专项 Skill 的简单场景** → 直接执行:
82
+
83
+ #### SQL INSERT 导入(小数据量)
84
+ ```sql
85
+ INSERT INTO schema_name.table_name (col1, col2, col3)
86
+ VALUES ('val1', 'val2', 'val3');
87
+ ```
88
+
89
+ #### COPY INTO 快速导入(从 Volume)
90
+ ```sql
91
+ -- 1. 确认 Volume 中有文件
92
+ SHOW VOLUME DIRECTORY volume_name;
93
+
94
+ -- 2. 执行 COPY INTO
95
+ COPY INTO schema_name.table_name
96
+ FROM VOLUME volume_name
97
+ USING CSV
98
+ OPTIONS('header' = 'true');
99
+ ```
100
+
101
+ #### Java SDK 导入指引
102
+ 提供 Java SDK 的关键配置信息:
103
+ - Maven 依赖坐标
104
+ - 连接配置(endpoint、workspace、schema、vcluster)
105
+ - 批量写入 API:`BulkloadWriter`
106
+ - 实时写入 API:`RealtimeWriter`
107
+ - 建议用户参考官方文档:`comprehensive_guide_to_ingesting_javasdk_buckload_realtime`
108
+
109
+ #### ZettaPark (Python) 导入指引
110
+ - `INSERT` 方式:`session.sql("INSERT INTO ...")`
111
+ - `save_as_table` 方式:`df.write.save_as_table("table_name")`
112
+ - 建议用户参考官方文档:`comprehensive_guide_to_ingesting_zettapark_save_as_table`
113
+
114
+ ## 异构数据源类型映射(ODS 层建表必读)
115
+
116
+ 从关系型数据库(MySQL/PostgreSQL 等)同步数据时,ODS 层建表的字段类型选择直接影响同步成功率。
117
+
118
+ **核心原则:ODS 层使用宽泛类型,DWD 层再做精确转换。**
119
+
120
+ ### MySQL → Lakehouse 类型映射
121
+
122
+ | MySQL 类型 | ❌ ODS 层不要用 | ✅ ODS 层用 | DWD 层转换 |
123
+ |---|---|---|---|
124
+ | `BIT(1)` | `BOOLEAN` | `TINYINT` | `CAST(col AS BOOLEAN)` |
125
+ | `TINYINT(1)` | `BOOLEAN` | `TINYINT` | `CAST(col AS BOOLEAN)` |
126
+ | `DATETIME` | `DATETIME` | `TIMESTAMP` | 直接用 |
127
+ | `ENUM('a','b')` | `ENUM` | `STRING` | 直接用 |
128
+ | `TEXT` / `LONGTEXT` / `MEDIUMTEXT` | `TEXT` | `STRING` | 直接用 |
129
+ | `DECIMAL(p,s)` | `FLOAT` / `DOUBLE` | `DECIMAL(p,s)` | 直接用 |
130
+ | `JSON` | `JSON` | `STRING` | `parse_json(col)['field']` |
131
+ | `SET('a','b')` | `SET` | `STRING` | 直接用 |
132
+
133
+ > ⚠️ **最常见踩坑**:`BIT(1)` 映射为 `BOOLEAN` 会导致同步任务失败。ODS 层改为 `TINYINT`,同步成功后在 DWD 层用 `CAST(col AS BOOLEAN)` 转换。
134
+
135
+ ### PostgreSQL → Lakehouse 类型映射
136
+
137
+ | PostgreSQL 类型 | ❌ ODS 层不要用 | ✅ ODS 层用 |
138
+ |---|---|---|
139
+ | `BOOLEAN` | `BOOLEAN` | `TINYINT` |
140
+ | `SERIAL` / `BIGSERIAL` | `SERIAL` | `BIGINT` |
141
+ | `JSONB` / `JSON` | `JSON` | `STRING` |
142
+ | `ARRAY` | `ARRAY` | `STRING`(JSON 序列化) |
143
+ | `UUID` | `UUID` | `STRING` |
144
+ | `NUMERIC(p,s)` | `FLOAT` | `DECIMAL(p,s)` |
145
+
146
+ ## 数据入仓 vs 数据入湖| 维度 | 数据入仓 | 数据入湖 |
147
+ |------|---------|---------|
148
+ | 目标 | Lakehouse 托管表 | 用户 Volume(对象存储) |
149
+ | 格式 | 自动转为内部列式格式 | 保持原始文件格式 |
150
+ | 查询性能 | 高(列式存储 + 索引) | 较低(需扫描原始文件) |
151
+ | 适用场景 | 分析查询、BI 报表、数据仓库 | 数据暂存、原始数据归档、跨系统共享 |
152
+ | 常用方式 | Studio 同步、PIPE、COPY INTO、SDK | PUT 文件、Python 脚本上传 |
153
+
154
+ ## 示例
155
+
156
+ ### 示例 1:用户不确定导入方式
157
+
158
+ 用户说:"我有一个 MySQL 数据库,想把里面的订单表实时同步到 Lakehouse"
159
+
160
+ 路由逻辑:
161
+ 1. 数据源:MySQL(关系型数据库)
162
+ 2. 实时性:实时
163
+ 3. 同步范围:单表
164
+ 4. 需要 CDC:是(实时同步意味着需要捕获变更)
165
+ → 推荐:Studio 实时同步
166
+ → 路由到 `clickzetta-realtime-sync-pipeline` Skill
167
+
168
+ ### 示例 2:多种数据源混合场景
169
+
170
+ 用户说:"我们有 Kafka 的用户行为日志,还有 MySQL 的业务数据,都要导入 Lakehouse"
171
+
172
+ 路由逻辑:
173
+ 1. Kafka 用户行为日志 → `clickzetta-kafka-ingest-pipeline`(PIPE 持续导入)
174
+ 2. MySQL 业务数据 → 确认实时性需求:
175
+ - 实时 → `clickzetta-realtime-sync-pipeline` 或 `clickzetta-cdc-sync-pipeline`
176
+ - 离线 → `clickzetta-batch-sync-pipeline`
177
+ → 分别引导到对应 Skill
178
+
179
+ ### 示例 3:简单的一次性文件导入
180
+
181
+ 用户说:"我有一个 CSV 文件要导入"
182
+
183
+ 路由逻辑:
184
+ 1. 数据源:本地文件
185
+ 2. 一次性导入
186
+ → 路由到 `clickzetta-file-import-pipeline` Skill(支持文件上传 + COPY INTO)
187
+
188
+ ## 错误处理
189
+
190
+ | 场景 | 处理方式 |
191
+ |------|---------|
192
+ | 用户无法确定数据源类型 | 询问数据当前存储位置(哪个系统/服务),帮助判断 |
193
+ | 用户需求跨多种导入方式 | 拆分为多个独立的导入任务,分别路由到对应 Skill |
194
+ | 推荐的 Skill 尚未创建 | 提供该导入方式的基本步骤和关键 SQL/API,引导用户参考官方文档 |
195
+ | 用户的云环境不支持某种连接 | 执行 `cz-cli sql "SHOW CONNECTIONS" --sync` 检查可用连接类型,推荐替代方案 |
196
+ | 数据量极大(TB 级) | 建议分批导入,优先使用 PIPE 或 Studio 同步任务(支持断点续传) |
197
+
198
+ ## 注意事项
199
+
200
+ - 本 Skill 是路由入口,不直接执行复杂的 pipeline 搭建,而是引导到专项 Skill
201
+ - 对于简单场景(SQL INSERT、单次 COPY INTO),可以直接在本 Skill 中完成
202
+ - 推荐方案时需考虑用户的云环境(阿里云/腾讯云/AWS),不同环境支持的连接类型可能不同
203
+ - 执行 `cz-cli sql "SHOW VCLUSTERS" --sync` 确认可用的虚拟集群,同步任务需要 SYNC 类型的 VCluster
204
+ - 数据入仓是最常见的场景,数据入湖主要用于原始数据暂存或跨系统共享
205
+
206
+ ---
207
+
208
+ ## cz-cli 替代路径
209
+
210
+ > 仅在 cz-cli 可用且 MCP 不可用时使用本节。
211
+ > 本 Skill 是路由入口,cz-cli 路径的核心逻辑在各专项 Skill 的"cz-cli 替代路径"章节中。
212
+
213
+ ### 路由说明
214
+
215
+ 当 MCP 不可用时,各专项 Skill 均已提供 cz-cli 替代路径:
216
+
217
+ | 数据源 | 推荐方式 | 对应 Skill 的 cz-cli 路径 |
218
+ |--------|---------|--------------------------|
219
+ | Kafka | PIPE 持续导入 | `clickzetta-kafka-ingest-pipeline` → cz-cli 替代路径 |
220
+ | 对象存储 (OSS/S3/COS) | PIPE 持续导入 | `clickzetta-oss-ingest-pipeline` → cz-cli 替代路径 |
221
+ | MySQL/PostgreSQL/SQL Server(实时单表) | Studio 实时同步 | `clickzetta-realtime-sync-pipeline` → cz-cli 替代路径 |
222
+ | MySQL/PostgreSQL/SQL Server(实时多表/整库) | Studio 多表实时同步 | `clickzetta-cdc-sync-pipeline` → cz-cli 替代路径 |
223
+ | MySQL/PostgreSQL/SQL Server(离线批量) | Studio 离线同步 | `clickzetta-batch-sync-pipeline` → cz-cli 替代路径 |
224
+
225
+ ### 简单场景直接执行(cz-cli 版)
226
+
227
+ 对于无需专项 Skill 的简单场景,可直接用 cz-cli agent 完成:
228
+
229
+ ```bash
230
+ # SQL INSERT 导入(小数据量)
231
+ cz-cli agent run "向表 <schema_name>.<table_name> 插入数据:<col1>=<val1>, <col2>=<val2>" \
232
+ --format a2a --dangerously-skip-permissions
233
+
234
+ # COPY INTO 快速导入(从 Volume)
235
+ cz-cli agent run "从 Volume <volume_name> 以 CSV 格式(有 header)将数据导入表 <schema_name>.<table_name>" \
236
+ --format a2a --dangerously-skip-permissions
237
+ ```
@@ -39,29 +39,18 @@ description: |
39
39
  - Kafka 集群网络可达(确认 bootstrap 地址和端口)
40
40
  - 已知 Kafka Topic 名称和消息格式
41
41
  - 认证信息(如需要):SASL 用户名/密码
42
- - **执行环境(满足其一即可,优先使用 cz-cli)**:
43
- - **cz-cli 路径**:已安装 cz-cli(`pip install cz-cli`),并完成 `cz-cli configure` 配置
44
- - **MCP 路径**:clickzetta-mcp-server 工具可用(`LH_execute_query`、`LH_show_object_list` 等)
42
+ - **执行环境**:已安装并配置 cz-cli
45
43
 
46
- ## 环境探测(执行前必读)
44
+ ## 执行环境
47
45
 
48
- 在开始任何操作前,先判断当前执行环境:
46
+ 所有 SQL 通过 `cz-cli sql` 执行:
49
47
 
50
- **第一步:检测 cz-cli 是否可用**
51
48
  ```bash
52
- cz-cli --version
49
+ cz-cli --version # 确认 cz-cli 可用
50
+ cz-cli sql "SELECT 1" --sync # 验证连接
53
51
  ```
54
- - 若命令存在 → **走 cz-cli 路径**(见本文档末尾"cz-cli 替代路径"章节)
55
- - 若命令不存在 → 继续检测 MCP
56
52
 
57
- **第二步:检测 MCP 是否可用(仅在 cz-cli 不可用时)**
58
-
59
- 尝试调用 `LH_execute_query` 工具执行一条简单 SQL(如 `SELECT 1`)。
60
- - 若工具存在于 tool list → **走 MCP 路径**(本文档默认路径)
61
- - 若工具不存在 → 停止执行,提示用户:
62
- > "当前环境既无 cz-cli 也无 MCP 工具,请安装其中之一后重试。
63
- > cz-cli 安装:`pip install cz-cli`,然后运行 `cz-cli configure`
64
- > MCP 安装:参考 clickzetta-mcp-server 配置文档"
53
+ 需要 cz-cli,请参考官方文档安装并完成配置后重试。
65
54
 
66
55
  ## ⚠️ 关键注意事项
67
56
 
@@ -663,10 +652,8 @@ COPY INTO ods.secure_events FROM (
663
652
 
664
653
  ---
665
654
 
666
- ## cz-cli 替代路径
655
+ ## cz-cli 执行路径
667
656
 
668
- > 仅在 cz-cli 可用且 MCP 不可用时使用本节。步骤编号与上方 MCP 路径对应。
669
- > 所有操作通过 `cz-cli agent run` 委托给内置 agent 完成,agent 内置完整的 MCP 工具访问能力。
670
657
 
671
658
  ### 路径一:READ_KAFKA Pipe(cz-cli 版)
672
659
 
@@ -35,6 +35,27 @@ description: |
35
35
 
36
36
  # ClickZetta 元数据查询指南
37
37
 
38
+ ## 执行方式
39
+
40
+ 所有 SQL 通过 `cz-cli sql` 执行,无需 MCP 工具。
41
+
42
+ **执行示例:**
43
+
44
+ ```bash
45
+ # 执行 SHOW/DESC 查询
46
+ cz-cli sql "SHOW TABLES" --sync -o table
47
+
48
+ # 执行 information_schema 查询
49
+ cz-cli sql "SELECT * FROM information_schema.tables LIMIT 10" --sync -o table
50
+
51
+ # 执行 load_history 查询
52
+ cz-cli sql "SELECT * FROM load_history('my_schema.my_table') LIMIT 20" --sync -o table
53
+ ```
54
+
55
+ 注意:`--sync` 等待结果返回;`-o table` 输出为表格格式便于阅读。
56
+
57
+ ---
58
+
38
59
  ## 选择查询方式
39
60
 
40
61
  | 场景 | 推荐方式 | 原因 |
@@ -138,7 +159,7 @@ SHOW VCLUSTERS WHERE state = 'RUNNING';
138
159
 
139
160
  -- 作业(最近 7 天,最多 10000 条,不支持 ORDER BY)
140
161
  SHOW JOBS LIMIT 20;
141
- SHOW JOBS IN VCLUSTER default_ap LIMIT 20;
162
+ SHOW JOBS IN VCLUSTER default LIMIT 20;
142
163
 
143
164
  -- 动态表刷新历史(最近 7 天)
144
165
  SHOW DYNAMIC TABLE REFRESH HISTORY LIMIT 20;
@@ -169,7 +190,7 @@ SHOW SHARES;
169
190
  DESC my_table;
170
191
  DESC EXTENDED my_table; -- 含 last_modified_time/properties/statistics
171
192
  DESC SCHEMA my_schema;
172
- DESC VCLUSTER default_ap;
193
+ DESC VCLUSTER default;
173
194
  DESC VOLUME my_volume;
174
195
  DESC CONNECTION my_oss_conn;
175
196
  DESC FUNCTION my_schema.my_function; -- 仅支持外部函数
@@ -13,6 +13,22 @@ description: |
13
13
  Keywords: monitoring, job status, performance, resource usage, SHOW JOBS, slow query
14
14
  ---
15
15
 
16
+ ## 执行方式
17
+
18
+ 所有 SQL 通过 `cz-cli sql` 执行,无需 MCP 工具:
19
+
20
+ ```bash
21
+ # 执行查询
22
+ cz-cli sql "SHOW JOBS LIMIT 20" --sync -o table
23
+
24
+ # 执行 information_schema 查询
25
+ cz-cli sql "SELECT * FROM information_schema.job_history WHERE pt_date >= CAST(CURRENT_DATE - INTERVAL 1 DAY AS DATE) LIMIT 10" --sync -o table
26
+ ```
27
+
28
+ 注意:`--sync` 等待结果返回;`-o table` 输出为表格格式便于阅读。
29
+
30
+ ---
31
+
16
32
  # ClickZetta 作业监控与分析
17
33
 
18
34
  阅读 [references/show-jobs.md](references/show-jobs.md) 了解 SHOW JOBS 语法。
@@ -27,7 +43,7 @@ description: |
27
43
  SHOW JOBS;
28
44
 
29
45
  -- 查看指定集群的作业
30
- SHOW JOBS IN VCLUSTER default_ap;
46
+ SHOW JOBS IN VCLUSTER default;
31
47
 
32
48
  -- 查看执行时间超过2分钟的慢查询
33
49
  SHOW JOBS WHERE execution_time > INTERVAL 2 MINUTE;
@@ -36,7 +52,7 @@ SHOW JOBS WHERE execution_time > INTERVAL 2 MINUTE;
36
52
  SHOW JOBS WHERE status = 'FAILED';
37
53
 
38
54
  -- 限制返回数量
39
- SHOW JOBS IN VCLUSTER default_ap LIMIT 50;
55
+ SHOW JOBS IN VCLUSTER default LIMIT 50;
40
56
  ```
41
57
 
42
58
  ---
@@ -24,10 +24,10 @@ SHOW JOBS [IN VCLUSTER vc_name] [LIKE 'pattern'] [WHERE <expr>] [LIMIT num];
24
24
  SHOW JOBS;
25
25
 
26
26
  -- 查看指定集群的作业
27
- SHOW JOBS IN VCLUSTER default_ap;
27
+ SHOW JOBS IN VCLUSTER default;
28
28
 
29
29
  -- 查看执行时间超过2分钟的作业
30
- SHOW JOBS IN VCLUSTER default_ap WHERE execution_time > INTERVAL 2 MINUTE;
30
+ SHOW JOBS IN VCLUSTER default WHERE execution_time > INTERVAL 2 MINUTE;
31
31
 
32
32
  -- 限制返回100条
33
33
  SHOW JOBS LIMIT 100;
@@ -26,29 +26,18 @@ description: |
26
26
 
27
27
  - ClickZetta Lakehouse 账户,具备创建 PIPE、表、存储连接、Volume 等权限
28
28
  - 对象存储桶可达(Endpoint、AccessKey 或 Role ARN)
29
- - **执行环境(满足其一即可,优先使用 cz-cli)**:
30
- - **cz-cli 路径**:已安装 cz-cli(`pip install cz-cli`),并完成 `cz-cli configure` 配置
31
- - **MCP 路径**:clickzetta-mcp-server 工具可用(`LH_execute_query`、`LH_show_object_list` 等)
29
+ - **执行环境**:已安装并配置 cz-cli
32
30
 
33
- ## 环境探测(执行前必读)
31
+ ## 执行环境
34
32
 
35
- 在开始任何操作前,先判断当前执行环境:
33
+ 所有 SQL 通过 `cz-cli sql` 执行:
36
34
 
37
- **第一步:检测 cz-cli 是否可用**
38
35
  ```bash
39
- cz-cli --version
36
+ cz-cli --version # 确认 cz-cli 可用
37
+ cz-cli sql "SELECT 1" --sync # 验证连接
40
38
  ```
41
- - 若命令存在 → **走 cz-cli 路径**(见本文档末尾"cz-cli 替代路径"章节)
42
- - 若命令不存在 → 继续检测 MCP
43
39
 
44
- **第二步:检测 MCP 是否可用(仅在 cz-cli 不可用时)**
45
-
46
- 尝试调用 `LH_execute_query` 工具执行一条简单 SQL(如 `SELECT 1`)。
47
- - 若工具存在于 tool list → **走 MCP 路径**(本文档默认路径)
48
- - 若工具不存在 → 停止执行,提示用户:
49
- > "当前环境既无 cz-cli 也无 MCP 工具,请安装其中之一后重试。
50
- > cz-cli 安装:`pip install cz-cli`,然后运行 `cz-cli configure`
51
- > MCP 安装:参考 clickzetta-mcp-server 配置文档"
40
+ 需要 cz-cli,请参考官方文档安装并完成配置后重试。
52
41
 
53
42
  ## 核心概念
54
43
 
@@ -82,7 +71,7 @@ cz-cli --version
82
71
  #### 步骤 1:创建存储连接(Storage Connection)
83
72
 
84
73
  ```sql
85
- -- 使用 LH_execute_query 执行
74
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
86
75
  -- 密钥方式(LIST_PURGE 模式支持)
87
76
  CREATE STORAGE CONNECTION IF NOT EXISTS my_oss_connection
88
77
  TYPE OSS
@@ -102,7 +91,7 @@ CREATE STORAGE CONNECTION IF NOT EXISTS my_oss_connection
102
91
  #### 步骤 2:创建外部 Volume
103
92
 
104
93
  ```sql
105
- -- 使用 LH_execute_query 执行
94
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
106
95
  CREATE EXTERNAL VOLUME IF NOT EXISTS pipe_volume
107
96
  LOCATION 'oss://my-bucket/data-path/'
108
97
  USING CONNECTION my_oss_connection
@@ -121,7 +110,7 @@ CREATE EXTERNAL VOLUME IF NOT EXISTS pipe_volume
121
110
  在创建 PIPE 之前,先用 COPY INTO 验证数据能正常加载:
122
111
 
123
112
  ```sql
124
- -- 使用 LH_execute_query 执行
113
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
125
114
  COPY INTO my_schema.target_table
126
115
  FROM VOLUME pipe_volume
127
116
  USING CSV OPTIONS ('header' = 'true', 'delimiter' = ',') PURGE=true;
@@ -134,7 +123,7 @@ USING CSV OPTIONS ('header' = 'true', 'delimiter' = ',') PURGE=true;
134
123
  #### 步骤 4:创建 PIPE(LIST_PURGE 模式)
135
124
 
136
125
  ```sql
137
- -- 使用 LH_execute_query 执行
126
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
138
127
  CREATE PIPE IF NOT EXISTS my_oss_pipe
139
128
  INGEST_MODE = 'LIST_PURGE'
140
129
  VIRTUAL_CLUSTER = 'my_vc'
@@ -168,7 +157,7 @@ USING CSV OPTIONS ('header' = 'true') PURGE=true;
168
157
  #### 步骤 5:验证 PIPE 状态
169
158
 
170
159
  ```sql
171
- -- 使用 LH_execute_query 执行
160
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
172
161
  DESC PIPE EXTENDED my_oss_pipe;
173
162
  ```
174
163
 
@@ -190,7 +179,7 @@ DESC PIPE EXTENDED my_oss_pipe;
190
179
  #### 步骤 1:创建存储连接(Role ARN 方式)
191
180
 
192
181
  ```sql
193
- -- 使用 LH_execute_query 执行
182
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
194
183
  CREATE STORAGE CONNECTION IF NOT EXISTS my_oss_role_connection
195
184
  TYPE OSS
196
185
  ENDPOINT = 'oss-cn-hangzhou.aliyuncs.com'
@@ -201,7 +190,7 @@ CREATE STORAGE CONNECTION IF NOT EXISTS my_oss_role_connection
201
190
  #### 步骤 2:创建外部 Volume
202
191
 
203
192
  ```sql
204
- -- 使用 LH_execute_query 执行
193
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
205
194
  CREATE EXTERNAL VOLUME IF NOT EXISTS pipe_event_volume
206
195
  LOCATION 'oss://my-bucket/data-path/'
207
196
  USING CONNECTION my_oss_role_connection
@@ -212,7 +201,7 @@ CREATE EXTERNAL VOLUME IF NOT EXISTS pipe_event_volume
212
201
  #### 步骤 3:创建 PIPE(EVENT_NOTIFICATION 模式)
213
202
 
214
203
  ```sql
215
- -- 使用 LH_execute_query 执行
204
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
216
205
  CREATE PIPE IF NOT EXISTS my_oss_event_pipe
217
206
  INGEST_MODE = 'EVENT_NOTIFICATION'
218
207
  VIRTUAL_CLUSTER = 'my_vc'
@@ -245,7 +234,7 @@ USING CSV;
245
234
  #### 步骤 1:创建目标表
246
235
 
247
236
  ```sql
248
- -- 使用 LH_execute_query 执行
237
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
249
238
  CREATE TABLE IF NOT EXISTS my_schema.target_table (
250
239
  id STRING,
251
240
  name STRING,
@@ -257,7 +246,7 @@ CREATE TABLE IF NOT EXISTS my_schema.target_table (
257
246
  #### 步骤 2:创建存储连接(access_id/access_key 语法)
258
247
 
259
248
  ```sql
260
- -- 使用 LH_execute_query 执行
249
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
261
250
  CREATE STORAGE CONNECTION IF NOT EXISTS my_batch_conn
262
251
  TYPE OSS
263
252
  ENDPOINT = 'oss-cn-shanghai-internal.aliyuncs.com'
@@ -273,7 +262,7 @@ CREATE STORAGE CONNECTION IF NOT EXISTS my_batch_conn
273
262
  #### 步骤 3:创建外部 Volume(启用目录自动刷新)
274
263
 
275
264
  ```sql
276
- -- 使用 LH_execute_query 执行
265
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
277
266
  CREATE EXTERNAL VOLUME IF NOT EXISTS my_batch_volume
278
267
  LOCATION 'oss://my-bucket/data-path/'
279
268
  USING CONNECTION my_batch_conn
@@ -293,7 +282,7 @@ CREATE EXTERNAL VOLUME IF NOT EXISTS my_batch_volume
293
282
  #### 步骤 4a:INSERT INTO 从 Volume 导入(支持过滤转换)
294
283
 
295
284
  ```sql
296
- -- 使用 LH_execute_query 执行
285
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
297
286
  INSERT INTO my_schema.target_table
298
287
  SELECT * FROM VOLUME my_batch_volume (
299
288
  id STRING,
@@ -315,7 +304,7 @@ WHERE amount > 0;
315
304
  #### 步骤 4b:COPY INTO 从 Volume 导入(简洁语法)
316
305
 
317
306
  ```sql
318
- -- 使用 LH_execute_query 执行
307
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
319
308
  COPY INTO my_schema.target_table
320
309
  FROM VOLUME my_batch_volume (
321
310
  id STRING,
@@ -334,7 +323,7 @@ FROM VOLUME my_batch_volume (
334
323
  #### 步骤 5:验证导入结果
335
324
 
336
325
  ```sql
337
- -- 使用 LH_execute_query 执行
326
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
338
327
  SELECT COUNT(*) AS total_rows FROM my_schema.target_table;
339
328
  SELECT * FROM my_schema.target_table LIMIT 10;
340
329
  ```
@@ -346,7 +335,7 @@ SELECT * FROM my_schema.target_table LIMIT 10;
346
335
  ### 查看 PIPE 详细状态
347
336
 
348
337
  ```sql
349
- -- 使用 LH_execute_query 执行
338
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
350
339
  DESC PIPE EXTENDED my_oss_pipe;
351
340
  ```
352
341
 
@@ -359,7 +348,7 @@ DESC PIPE EXTENDED my_oss_pipe;
359
348
  ### 查看加载历史
360
349
 
361
350
  ```sql
362
- -- 使用 LH_execute_query 执行
351
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
363
352
  SELECT * FROM load_history('my_schema.target_table')
364
353
  ORDER BY last_load_time DESC
365
354
  LIMIT 20;
@@ -372,7 +361,7 @@ LIMIT 20;
372
361
  PIPE 执行的作业会自动打上 `query_tag`,格式为:`pipe.<workspace_name>.<schema_name>.<pipe_name>`
373
362
 
374
363
  ```sql
375
- -- 使用 LH_execute_query 执行
364
+ -- 通过 cz-cli sql "<SQL>" --sync 执行
376
365
  -- 在 JOBS 列表中过滤 PIPE 相关作业
377
366
  SHOW JOBS WHERE query_tag = 'pipe.my_workspace.my_schema.my_oss_pipe';
378
367
  ```
@@ -450,10 +439,7 @@ DROP PIPE IF EXISTS my_oss_pipe;
450
439
 
451
440
  ---
452
441
 
453
- ## cz-cli 替代路径
454
-
455
- > 仅在 cz-cli 可用且 MCP 不可用时使用本节。步骤编号与上方 MCP 路径对应。
456
- > 所有操作通过 `cz-cli agent run` 委托给内置 agent 完成,agent 内置完整的 MCP 工具访问能力。
442
+ ## cz-cli 执行路径
457
443
 
458
444
  ### 模式 A:LIST_PURGE 扫描模式(cz-cli 版)
459
445
 
@@ -32,14 +32,14 @@ cz-cli workspace current Show current workspace
32
32
 
33
33
  cz-cli task list List Studio tasks
34
34
  cz-cli task create <name> --type <TYPE> Create task (SQL/PYTHON/SHELL/SPARK/FLOW)
35
- cz-cli task content <task> Get task script and config
36
- cz-cli task save-content <task> --file <f> Save task script
35
+ cz-cli task content <task> Get task script, config and params (draft)
36
+ cz-cli task save-content <task> --file <f> Save task script; use --params '{"key":"val","dt":"bizdate","yd":"$[yyyy-MM-dd,-1d]"}' to set params (system params like bizdate/sys_plan_day/sys_biz_datetime etc. auto-detected)
37
37
  cz-cli task save-config <task> Save task non-cron config, like retry, dependency
38
38
  cz-cli task save-cron <task> Save task schedule config
39
39
  cz-cli task deps <task> Show task dependencies (draft)
40
40
  cz-cli task deploy <task> Publish/deploy a task (alias: online)
41
41
  cz-cli task undeploy <task> Undeploy a task, irreversible (alias: offline)
42
- cz-cli task execute <task> Execute ad-hoc
42
+ cz-cli task execute <task> Execute ad-hoc; auto-uses saved manual params as defaults (--param KEY=VAL overrides); warns if unresolved ${placeholders} remain (SQL will fail, Python/Shell silently keeps literal string)
43
43
  cz-cli task delete <task> Delete draft/offline task
44
44
  cz-cli task flow dag <task> Get flow DAG
45
45
  cz-cli task flow create-node <task> Add node to flow
@@ -58,7 +58,7 @@ cz-cli runs wait <id> Poll until complete
58
58
  cz-cli runs logs <id> Get execution log
59
59
  cz-cli runs deps <task> Published dependencies
60
60
  cz-cli runs stop <id> Stop a running instance
61
- cz-cli runs refill <task> Backfill date range
61
+ cz-cli runs refill <task> --from D --to D Backfill date range. D accepts YYYY-MM-DD (day boundary) or YYYY-MM-DDTHH:MM:SS (exact datetime for hourly/minutely tasks)
62
62
  cz-cli runs rerun <id> Rerun failed instance
63
63
  cz-cli runs stats Run statistics summary
64
64
 
@@ -100,6 +100,7 @@ cz-cli datasource sample <name_or_id> <catalog> <object>
100
100
  6. **State-changing operations** (deploy/undeploy/execute/delete/refill): confirm intent with user first.
101
101
  7. **Multi-environment**: use `--profile <name>` to target a specific environment.
102
102
  8. **On `NO_PROFILE` error**: guide user to run `cz-cli setup`.
103
+ 9. **补数/回填/重跑历史数据 → `runs refill`**: when user says "补数", "回填", "重跑历史", "backfill", "re-run historical data", use `cz-cli runs refill <task> --from YYYY-MM-DD --to YYYY-MM-DD`. This is under `runs`, NOT `task`.
103
104
 
104
105
  ## Companion Skills
105
106
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickzetta/cz-cli-darwin-x64",
3
- "version": "0.3.39",
3
+ "version": "0.3.40",
4
4
  "description": "cz-cli binary for macOS x64 (Intel)",
5
5
  "os": ["darwin"],
6
6
  "cpu": ["x64"],