@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,65 +0,0 @@
|
|
|
1
|
-
# OPTIMIZE 命令参考
|
|
2
|
-
|
|
3
|
-
> 来源:https://www.yunqi.tech/documents/OPTIMIZE 和 https://www.yunqi.tech/documents/small_file_optimization
|
|
4
|
-
|
|
5
|
-
## 语法
|
|
6
|
-
|
|
7
|
-
```sql
|
|
8
|
-
OPTIMIZE table_name
|
|
9
|
-
[WHERE predicate]
|
|
10
|
-
[OPTIONS('key' = 'value')]
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## 参数说明
|
|
14
|
-
|
|
15
|
-
- `table_name`:格式为 `[schema_name.]table_name`
|
|
16
|
-
- `WHERE predicate`:(可选)分区过滤条件,必须包含完整分区列匹配
|
|
17
|
-
- 格式:`partition_column = 'value'` 或 `dt='2023-01-01' AND region='us'`
|
|
18
|
-
- `OPTIONS`:(可选)控制执行模式
|
|
19
|
-
|
|
20
|
-
## 执行模式
|
|
21
|
-
|
|
22
|
-
### 异步模式(默认)
|
|
23
|
-
|
|
24
|
-
立即返回 Job ID,后台执行,不阻塞当前连接。
|
|
25
|
-
|
|
26
|
-
```sql
|
|
27
|
-
-- 默认异步
|
|
28
|
-
OPTIMIZE my_schema.orders;
|
|
29
|
-
|
|
30
|
-
-- 显式指定异步
|
|
31
|
-
OPTIMIZE my_schema.orders OPTIONS('cz.sql.optimize.table.async' = 'true');
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### 同步模式
|
|
35
|
-
|
|
36
|
-
阻塞直到完成,适合开发测试和小表优化。
|
|
37
|
-
|
|
38
|
-
```sql
|
|
39
|
-
OPTIMIZE my_schema.orders OPTIONS('cz.sql.optimize.table.async' = 'false');
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## 核心功能
|
|
43
|
-
|
|
44
|
-
- **小文件合并**:将多个小文件整合为大文件,减少文件元数据开销
|
|
45
|
-
- **删除标记清理**:清理 UPDATE/DELETE 产生的删除标记,回收存储空间
|
|
46
|
-
- **数据重组**:重新整理数据布局,提升查询性能
|
|
47
|
-
|
|
48
|
-
## 注意事项
|
|
49
|
-
|
|
50
|
-
- **只能在通用型计算集群(GENERAL PURPOSE VIRTUAL CLUSTER)运行**,分析型集群不生效
|
|
51
|
-
- 后台默认会不定时自动执行文件合并,手动 OPTIMIZE 用于精细控制
|
|
52
|
-
|
|
53
|
-
## DML 写入时自动触发小文件合并
|
|
54
|
-
|
|
55
|
-
```sql
|
|
56
|
-
-- 在 DML 执行时同时触发小文件合并
|
|
57
|
-
SET cz.sql.compaction.after.commit = true;
|
|
58
|
-
INSERT INTO my_table VALUES (...);
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## 查看分区文件数量
|
|
62
|
-
|
|
63
|
-
```sql
|
|
64
|
-
SHOW PARTITIONS EXTENDED table_name;
|
|
65
|
-
```
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# Result Cache(查询结果缓存)参考
|
|
2
|
-
|
|
3
|
-
> 来源:https://www.yunqi.tech/documents/result_cache
|
|
4
|
-
|
|
5
|
-
## 概述
|
|
6
|
-
|
|
7
|
-
ClickZetta Lakehouse 提供三种缓存:
|
|
8
|
-
1. **查询结果缓存(Result Cache)** — 本文档
|
|
9
|
-
2. 元数据缓存(Metadata Cache)— 工作空间内共享
|
|
10
|
-
3. 虚拟集群本地缓存(Local Disk Cache)— 仅限指定集群
|
|
11
|
-
|
|
12
|
-
## 启用 / 禁用
|
|
13
|
-
|
|
14
|
-
```sql
|
|
15
|
-
-- 开启结果缓存(SESSION 级别)
|
|
16
|
-
SET cz.sql.enable.shortcut.result.cache = true;
|
|
17
|
-
|
|
18
|
-
-- 关闭结果缓存
|
|
19
|
-
SET cz.sql.enable.shortcut.result.cache = false;
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
> 注意:当前默认未开启,需手动启用。
|
|
23
|
-
|
|
24
|
-
## 缓存复用条件(同时满足才能命中)
|
|
25
|
-
|
|
26
|
-
1. 查询中使用的表数据未发生变更
|
|
27
|
-
2. 查询中不包含视图引用
|
|
28
|
-
3. 新 SQL 与之前执行的 SQL 语法精确匹配
|
|
29
|
-
4. 查询中不包含非确定性函数(如 `CURRENT_TIMESTAMP()`)或 UDF
|
|
30
|
-
5. 之前的 Result Cache 未过期
|
|
31
|
-
|
|
32
|
-
## 过期周期
|
|
33
|
-
|
|
34
|
-
- 默认保留 **24 小时**
|
|
35
|
-
- 24 小时内有查询复用,则额外延长 24 小时
|
|
36
|
-
- 超过 24 小时无复用则清除
|
|
37
|
-
|
|
38
|
-
## 约束与限制
|
|
39
|
-
|
|
40
|
-
| 项目 | 限制 |
|
|
41
|
-
|---|---|
|
|
42
|
-
| 缓存保留周期 | 24 小时 |
|
|
43
|
-
| 单工作空间最大缓存作业数 | 10 万 |
|
|
44
|
-
| 缓存大小 | 无限制(≤10MB 存内存,>10MB 持久化到对象存储) |
|
|
45
|
-
| 不支持 | 含非确定性函数、UDF 的查询 |
|
|
46
|
-
|
|
47
|
-
## 验证是否命中缓存
|
|
48
|
-
|
|
49
|
-
第二次执行相同查询后,在 Job Profile 的执行计划图中查看是否出现 `JOB RESULT REUSE` 标记。命中缓存的查询通常在 15ms 内返回。
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# SHOW JOBS 参考
|
|
2
|
-
|
|
3
|
-
> 来源:https://www.yunqi.tech/documents/show-jobs
|
|
4
|
-
|
|
5
|
-
## 语法
|
|
6
|
-
|
|
7
|
-
```sql
|
|
8
|
-
SHOW JOBS [IN VCLUSTER vc_name] [LIKE 'pattern'] [WHERE <expr>] [LIMIT num];
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## 参数说明
|
|
12
|
-
|
|
13
|
-
- `IN VCLUSTER vc_name`:(可选)筛选指定计算集群下的作业
|
|
14
|
-
- `WHERE <expr>`:(可选)按字段过滤,支持 SHOW JOBS 返回的所有字段
|
|
15
|
-
- `LIMIT num`:(可选)限制返回数量,范围 1-10000
|
|
16
|
-
- `LIKE 'pattern'`:(可选)按 job_id 模式匹配,支持 `%` 和 `_`
|
|
17
|
-
|
|
18
|
-
默认显示最近 7 天内提交的任务,最多 10000 条。
|
|
19
|
-
|
|
20
|
-
## 示例
|
|
21
|
-
|
|
22
|
-
```sql
|
|
23
|
-
-- 查看执行时间超过 2 分钟的作业
|
|
24
|
-
SHOW JOBS IN VCLUSTER default_ap WHERE execution_time > interval 2 minute;
|
|
25
|
-
|
|
26
|
-
-- 查看指定集群的所有作业
|
|
27
|
-
SHOW JOBS IN VCLUSTER default_ap;
|
|
28
|
-
|
|
29
|
-
-- 限制返回 100 条
|
|
30
|
-
SHOW JOBS LIMIT 100;
|
|
31
|
-
|
|
32
|
-
-- 查看指定集群最近 50 条
|
|
33
|
-
SHOW JOBS IN VCLUSTER default_ap LIMIT 50;
|
|
34
|
-
|
|
35
|
-
-- 按 job_id 模式匹配
|
|
36
|
-
SHOW JOBS LIKE 'job_2024%';
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## 注意事项
|
|
40
|
-
|
|
41
|
-
- 只能查看最近 7 天内的作业记录
|
|
42
|
-
- 未指定 VCLUSTER 时显示所有集群的作业
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: clickzetta-realtime-sync-pipeline
|
|
3
|
-
description: |
|
|
4
|
-
创建和管理 ClickZetta Lakehouse 实时同步任务(单表),将外部数据源的数据实时同步到 Lakehouse。
|
|
5
|
-
支持 Kafka、MySQL、PostgreSQL 等数据源作为来源端,Lakehouse 作为目标端。
|
|
6
|
-
实时同步任务为持续运行的流式任务,无需配置调度策略,提交后即持续运行。
|
|
7
|
-
当用户说"Studio 实时同步"、"realtime sync"、"单表 CDC 同步"、"实时数据同步"、"Kafka 实时同步到 Lakehouse"、
|
|
8
|
-
"MySQL 单表实时同步"、"单表实时同步"、"实时数据迁移"时触发。
|
|
9
|
-
包含实时同步任务创建、数据源配置、字段映射(含 JSONPath 计算列)、部署运维等
|
|
10
|
-
ClickZetta Studio 特有逻辑。
|
|
11
|
-
Keywords: real-time sync, single table, Kafka source, MySQL source, streaming
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# 实时同步(单表)Pipeline 工作流
|
|
15
|
-
|
|
16
|
-
## 适用场景
|
|
17
|
-
|
|
18
|
-
- 将外部数据源的数据实时同步到 Lakehouse(低延迟、持续运行)
|
|
19
|
-
- Kafka Topic → Lakehouse 表(支持 JSON 消息解析)
|
|
20
|
-
- MySQL / PostgreSQL / SQL Server 等数据库 → Lakehouse 表(CDC 变更捕获)
|
|
21
|
-
- 数据时效性要求高,需要秒级或分钟级延迟
|
|
22
|
-
- 单张源表/Topic 到单张目标表的实时同步
|
|
23
|
-
- 关键词:实时同步、CDC、流式同步、realtime sync、Kafka 实时同步
|
|
24
|
-
|
|
25
|
-
## 与其他同步方式的区别
|
|
26
|
-
|
|
27
|
-
| 维度 | 实时同步(本 Skill) | 离线同步 | 多表实时同步 |
|
|
28
|
-
|------|---------------------|---------|------------|
|
|
29
|
-
| 任务类型 ID | `28`(实时同步) | `10` / `291` | `281` |
|
|
30
|
-
| 同步粒度 | 单表/单 Topic | 单表/多表 | 整库/多表 |
|
|
31
|
-
| 运行模式 | 持续运行(流式) | 周期调度(批量) | 持续运行(流式) |
|
|
32
|
-
| 调度策略 | 无需配置,提交即运行 | 需配置 Cron 表达式 | 无需配置,提交即运行 |
|
|
33
|
-
| 延迟 | 秒级~分钟级 | 取决于调度周期 | 秒级~分钟级 |
|
|
34
|
-
| 适用 Skill | `clickzetta-realtime-sync-pipeline` | `clickzetta-batch-sync-pipeline` | `clickzetta-cdc-sync-pipeline` |
|
|
35
|
-
|
|
36
|
-
## 前置依赖
|
|
37
|
-
|
|
38
|
-
- ClickZetta Lakehouse Studio 账户,具备创建同步任务、目标表的权限
|
|
39
|
-
- 源端数据源已在 Studio 中配置(Kafka / MySQL / PostgreSQL / SQL Server 等)
|
|
40
|
-
- 目标端 Lakehouse 数据源可用
|
|
41
|
-
- Sync VCluster 可用(实时同步任务 task_type=28 需要 Sync VCluster)
|
|
42
|
-
- clickzetta-studio-mcp 工具可用(`create_task`、`save_integration_task`、`publish_task`、`list_data_sources`、`LH_show_object_list` 等)
|
|
43
|
-
|
|
44
|
-
## 工作流
|
|
45
|
-
|
|
46
|
-
### 步骤 1:确认 Sync VCluster 可用
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
使用 LH_show_object_list(object_type='VCLUSTERS')查看可用虚拟集群。
|
|
50
|
-
筛选 vcluster_type 包含 SYNC 的集群。
|
|
51
|
-
如无可用 Sync VCluster,需先创建后再继续。
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### 步骤 2:查找可用数据源
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
使用 list_data_sources 查看已配置的数据源列表。
|
|
58
|
-
按类型过滤:
|
|
59
|
-
- Kafka: ds_type=2
|
|
60
|
-
- MySQL: ds_type=5
|
|
61
|
-
- PostgreSQL: ds_type=7
|
|
62
|
-
- SQL Server: ds_type=8
|
|
63
|
-
记录源端 datasource_name 和目标端 Lakehouse datasource_name。
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### 步骤 3:探查源端数据结构(可选)
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
使用 list_namespaces 查看源端数据源的命名空间(数据库/Schema)。
|
|
70
|
-
使用 list_metadata_objects 查看命名空间下的表/Topic 列表。
|
|
71
|
-
使用 get_metadata_detail 查看具体表/Topic 的字段结构。
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### 步骤 4:创建实时同步任务
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
使用 create_task 创建任务:
|
|
78
|
-
- task_type: 28(实时同步)
|
|
79
|
-
- task_name: 自定义任务名称(建议包含源和目标信息,如 "rt_sync_kafka_orders")
|
|
80
|
-
- data_folder_id: 目标文件夹 ID(可通过 list_folders 获取)
|
|
81
|
-
|
|
82
|
-
记录返回的 task_id 和 studio_url。
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### 步骤 5:配置同步内容
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
使用 save_integration_task 配置同步:
|
|
89
|
-
- task_id: 步骤 4 返回的任务 ID
|
|
90
|
-
- source_datasource_name: 源端数据源名称
|
|
91
|
-
- source_schema: 源端数据库/Schema(Kafka 场景为 Topic 所在命名空间)
|
|
92
|
-
- source_table: 源端表名或 Kafka Topic 名称
|
|
93
|
-
- source_ds_type: 源端类型(2=Kafka, 5=MySQL, 7=PostgreSQL, 8=SQL Server)
|
|
94
|
-
- sink_datasource_name: 目标 Lakehouse 数据源名称
|
|
95
|
-
- sink_schema: 目标 Schema(默认 public)
|
|
96
|
-
- sink_table: 目标表名(可选,默认与源表同名)
|
|
97
|
-
- sink_ds_type: 1(Lakehouse)
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
> **说明**:系统会自动获取源端和目标端的元数据,生成字段映射。如目标表不存在,会自动创建。
|
|
101
|
-
|
|
102
|
-
### 步骤 6:Kafka JSON 消息解析(Kafka 数据源专用)
|
|
103
|
-
|
|
104
|
-
如果 Kafka Topic 的消息格式为 JSON,可在 Studio UI 中通过新增计算列解析嵌套字段:
|
|
105
|
-
|
|
106
|
-
- 使用 JSONPath 规则解析 value 字段中的内容
|
|
107
|
-
- 示例:`$.id` 提取顶层 id 字段,`$.data.code` 提取嵌套字段
|
|
108
|
-
- 默认使用 Kafka Topic 内置字段(key、value、timestamp、partition、offset)进行映射
|
|
109
|
-
- 计算列配置需在 Studio UI 中完成(通过 studio_url 打开)
|
|
110
|
-
|
|
111
|
-
### 步骤 7:提交部署
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
实时同步任务不需要配置调度策略(无需调用 save_task_configuration)。
|
|
115
|
-
直接使用 publish_task 提交任务:
|
|
116
|
-
- task_id: 任务 ID
|
|
117
|
-
- task_version: 当前版本号(通过 get_task_detail 获取)
|
|
118
|
-
|
|
119
|
-
提交后任务即开始持续运行。
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
> **重要**:实时同步任务不支持开发状态下的测试运行,提交即为正式部署。
|
|
123
|
-
|
|
124
|
-
### 步骤 8:运维监控
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
提交后在运维中心管理实时同步任务:
|
|
128
|
-
|
|
129
|
-
查看任务状态:get_task_detail
|
|
130
|
-
查看运行记录:list_task_run(注意实时任务为持续运行,不同于离线任务的周期实例)
|
|
131
|
-
|
|
132
|
-
Studio UI 中可进行:
|
|
133
|
-
- 启动/停止任务
|
|
134
|
-
- 查看同步延迟和吞吐量
|
|
135
|
-
- 查看错误日志
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## 支持的数据源
|
|
141
|
-
|
|
142
|
-
### 来源端
|
|
143
|
-
|
|
144
|
-
| 数据源 | ds_type | 说明 |
|
|
145
|
-
|--------|---------|------|
|
|
146
|
-
| Kafka | 2 | 支持 JSON 消息解析(JSONPath 计算列) |
|
|
147
|
-
| MySQL | 5 | CDC 变更捕获 |
|
|
148
|
-
| PostgreSQL | 7 | CDC 变更捕获 |
|
|
149
|
-
| SQL Server | 8 | CDC 变更捕获 |
|
|
150
|
-
| Aurora MySQL | 39 | CDC 变更捕获 |
|
|
151
|
-
| Aurora PostgreSQL | 40 | CDC 变更捕获 |
|
|
152
|
-
| PolarDB MySQL | 19 | CDC 变更捕获 |
|
|
153
|
-
| PolarDB PostgreSQL | 48 | CDC 变更捕获 |
|
|
154
|
-
|
|
155
|
-
### 目标端
|
|
156
|
-
|
|
157
|
-
| 数据源 | ds_type |
|
|
158
|
-
|--------|---------|
|
|
159
|
-
| Lakehouse | 1 |
|
|
160
|
-
|
|
161
|
-
## 故障排除
|
|
162
|
-
|
|
163
|
-
| 问题 | 排查方向 |
|
|
164
|
-
|------|---------|
|
|
165
|
-
| 任务创建失败 | 检查是否有可用的 Sync VCluster(`LH_show_object_list` 查看 VCLUSTERS,筛选 SYNC 类型) |
|
|
166
|
-
| 源端连接失败 | 检查数据源配置中的连接信息、网络可达性、账号权限 |
|
|
167
|
-
| Kafka 消费无数据 | 检查 Topic 名称是否正确、消费位点设置、Kafka 集群连通性 |
|
|
168
|
-
| JSON 解析失败 | 检查 JSONPath 表达式是否正确、消息格式是否为合法 JSON |
|
|
169
|
-
| 同步延迟增大 | 检查 Sync VCluster 资源是否充足、源端数据量是否突增 |
|
|
170
|
-
| 目标表写入失败 | 检查目标表是否存在、字段类型是否兼容、权限是否充足 |
|
|
171
|
-
| 任务异常停止 | 查看执行日志(`list_executions` + `get_execution_log`)排查具体错误 |
|
|
172
|
-
|
|
173
|
-
## 注意事项
|
|
174
|
-
|
|
175
|
-
### 运行模式
|
|
176
|
-
|
|
177
|
-
- 实时同步任务为持续运行的流式任务,提交后即开始运行,无需配置调度
|
|
178
|
-
- 不支持开发状态下的测试运行
|
|
179
|
-
- 停止后需手动重新启动
|
|
180
|
-
|
|
181
|
-
### Sync VCluster 要求
|
|
182
|
-
|
|
183
|
-
- 实时同步任务(task_type=28)必须使用 Sync VCluster
|
|
184
|
-
- 创建任务前需确认有可用的 Sync VCluster
|
|
185
|
-
- 可通过 `LH_show_object_list`(object_type='VCLUSTERS')查看,筛选 vcluster_type 包含 SYNC 的集群
|
|
186
|
-
|
|
187
|
-
### Kafka 数据源特殊说明
|
|
188
|
-
|
|
189
|
-
- 支持指定消费起始位点(earliest / latest / 指定 offset)
|
|
190
|
-
- JSON 消息可通过 JSONPath 计算列解析嵌套字段
|
|
191
|
-
- 默认字段包括:key、value、timestamp、partition、offset
|
|
192
|
-
|
|
193
|
-
### 与多表实时同步的选择
|
|
194
|
-
|
|
195
|
-
- 单表实时同步(本 Skill):适合单张表/Topic 的精细化同步
|
|
196
|
-
- 多表实时同步(`clickzetta-cdc-sync-pipeline`):适合整库 CDC、多表批量实时同步
|
|
197
|
-
- 如需同步整个数据库的所有表,建议使用多表实时同步
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: clickzetta-semantic-view
|
|
3
|
-
description: |
|
|
4
|
-
创建和查询 ClickZetta Lakehouse 语义视图(Semantic View)。语义视图是架构级逻辑
|
|
5
|
-
数据模型对象,通过声明逻辑表、维度、指标、过滤器,将复杂的多表 JOIN 和聚合逻辑封装
|
|
6
|
-
为业务友好的语义层,使用 semantic_view() 函数查询,无需手写 JOIN。
|
|
7
|
-
当前为邀测功能(1.3 版本起)。
|
|
8
|
-
当用户说"创建语义视图"、"semantic view"、"语义层"、"定义指标"、"定义维度"、
|
|
9
|
-
"semantic_view() 怎么用"、"统一指标口径"、"业务语义模型"、"逻辑表"、
|
|
10
|
-
"DIMENSIONS"、"METRICS"、"FILTERS"、"DROP SEMANTIC VIEW"、
|
|
11
|
-
"SHOW SEMANTIC VIEWS"时触发。
|
|
12
|
-
Keywords: semantic view, dimension, metric, logical model, unified metrics, semantic layer
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# ClickZetta 语义视图(Semantic View)
|
|
16
|
-
|
|
17
|
-
阅读 [references/semantic-view-reference.md](references/semantic-view-reference.md) 了解完整语法。
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## 概述
|
|
22
|
-
|
|
23
|
-
语义视图是 ClickZetta Lakehouse 的**架构级逻辑数据模型对象**,解决两类核心问题:
|
|
24
|
-
|
|
25
|
-
- **数据分析**:统一维度和指标定义,业务用户无需编写复杂 JOIN 即可查询跨表数据
|
|
26
|
-
- **数据治理**:集中管理表关系、维度、指标定义,确保全组织使用相同数据口径
|
|
27
|
-
|
|
28
|
-
> ⚠️ 当前为**邀测功能**(1.3 版本),需联系技术支持开通。
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## 四大组件
|
|
33
|
-
|
|
34
|
-
| 组件 | 关键字 | 说明 |
|
|
35
|
-
|---|---|---|
|
|
36
|
-
| 逻辑表 | `TABLES` | 映射物理表,声明主键和外键关系,引擎自动处理 JOIN |
|
|
37
|
-
| 维度 | `DIMENSIONS` | 分类属性(谁/什么/哪里/何时),支持计算维度 |
|
|
38
|
-
| 指标 | `METRICS` | 聚合度量(SUM/AVG/COUNT/MIN/MAX),业务 KPI |
|
|
39
|
-
| 过滤器 | `FILTERS` | 预定义可重用过滤条件(语义注解,不可直接传入查询) |
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## 创建语义视图
|
|
44
|
-
|
|
45
|
-
```sql
|
|
46
|
-
CREATE SEMANTIC VIEW <视图名>
|
|
47
|
-
TABLES (
|
|
48
|
-
<表别名> AS <schema>.<物理表>
|
|
49
|
-
PRIMARY KEY (<列名>)
|
|
50
|
-
[ FOREIGN KEY (<列名>) REFERENCES <其他表别名> ]
|
|
51
|
-
[ WITH SYNONYMS ('<同义词>') ]
|
|
52
|
-
[ COMMENT = '<说明>' ]
|
|
53
|
-
[ , ... ]
|
|
54
|
-
)
|
|
55
|
-
[ FILTERS (
|
|
56
|
-
<表别名>.<过滤器名> AS <布尔表达式>
|
|
57
|
-
[ , ... ]
|
|
58
|
-
) ]
|
|
59
|
-
DIMENSIONS (
|
|
60
|
-
{ <表别名>.<维度名> | <维度名> } AS <表达式>
|
|
61
|
-
[ WITH SYNONYMS = ('<同义词>' [ , ... ]) ]
|
|
62
|
-
[ is_unique = { true | false } ]
|
|
63
|
-
[ is_time = { true | false } ]
|
|
64
|
-
[ enum_values = [ <值1>, <值2>, ... ] ]
|
|
65
|
-
[ COMMENT = '<说明>' ]
|
|
66
|
-
[ , ... ]
|
|
67
|
-
)
|
|
68
|
-
METRICS (
|
|
69
|
-
<表别名>.<指标名> AS <聚合表达式>
|
|
70
|
-
[ COMMENT = '<说明>' ]
|
|
71
|
-
[ , ... ]
|
|
72
|
-
)
|
|
73
|
-
[ COMMENT = '<视图说明>' ];
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### 完整示例(TPC-H 收入分析)
|
|
77
|
-
|
|
78
|
-
```sql
|
|
79
|
-
DROP SEMANTIC VIEW IF EXISTS tpch_rev_analysis;
|
|
80
|
-
CREATE SEMANTIC VIEW tpch_rev_analysis
|
|
81
|
-
TABLES (
|
|
82
|
-
customers AS tpch.customer
|
|
83
|
-
PRIMARY KEY (c_custkey)
|
|
84
|
-
COMMENT = '客户主表',
|
|
85
|
-
orders AS tpch.orders
|
|
86
|
-
PRIMARY KEY (o_orderkey)
|
|
87
|
-
FOREIGN KEY (o_custkey) REFERENCES customers
|
|
88
|
-
WITH SYNONYMS ('销售订单')
|
|
89
|
-
COMMENT = '订单表',
|
|
90
|
-
line_items AS tpch.lineitem
|
|
91
|
-
PRIMARY KEY (l_orderkey, l_linenumber)
|
|
92
|
-
FOREIGN KEY (l_orderkey) REFERENCES orders
|
|
93
|
-
COMMENT = '订单明细'
|
|
94
|
-
)
|
|
95
|
-
FILTERS (
|
|
96
|
-
customers.is_building AS customers.c_mktsegment = 'BUILDING'
|
|
97
|
-
)
|
|
98
|
-
DIMENSIONS (
|
|
99
|
-
customers.customer_name AS c_name
|
|
100
|
-
WITH SYNONYMS = ('客户名称', 'customer name')
|
|
101
|
-
is_unique = true
|
|
102
|
-
COMMENT = '客户名称',
|
|
103
|
-
orders.order_date AS o_orderdate
|
|
104
|
-
is_time = true
|
|
105
|
-
COMMENT = '下单日期',
|
|
106
|
-
orders.order_year AS YEAR(o_orderdate)
|
|
107
|
-
COMMENT = '下单年份',
|
|
108
|
-
orders.order_status AS o_orderstatus
|
|
109
|
-
enum_values = ['O', 'F', 'P']
|
|
110
|
-
COMMENT = '订单状态'
|
|
111
|
-
)
|
|
112
|
-
METRICS (
|
|
113
|
-
customers.customer_count AS COUNT(c_custkey)
|
|
114
|
-
COMMENT = '客户总数',
|
|
115
|
-
orders.avg_order_value AS AVG(o_totalprice)
|
|
116
|
-
COMMENT = '平均订单金额',
|
|
117
|
-
orders.total_revenue AS SUM(o_totalprice)
|
|
118
|
-
COMMENT = '总收入'
|
|
119
|
-
)
|
|
120
|
-
COMMENT = '收入分析语义视图';
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## 查询语义视图
|
|
126
|
-
|
|
127
|
-
使用 `semantic_view()` 表函数,**无需手写 JOIN 和 GROUP BY**:
|
|
128
|
-
|
|
129
|
-
```sql
|
|
130
|
-
-- 基础查询:按订单日期统计平均订单金额
|
|
131
|
-
SELECT * FROM semantic_view(
|
|
132
|
-
tpch_rev_analysis,
|
|
133
|
-
DIMENSIONS orders.order_date,
|
|
134
|
-
METRICS orders.avg_order_value
|
|
135
|
-
);
|
|
136
|
-
|
|
137
|
-
-- 多维度查询:按日期和客户名称
|
|
138
|
-
SELECT * FROM semantic_view(
|
|
139
|
-
tpch_rev_analysis,
|
|
140
|
-
DIMENSIONS orders.order_date,
|
|
141
|
-
DIMENSIONS customers.customer_name,
|
|
142
|
-
METRICS orders.avg_order_value
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
-- 使用短名称(名称唯一时可省略表别名前缀)
|
|
146
|
-
SELECT * FROM semantic_view(
|
|
147
|
-
tpch_rev_analysis,
|
|
148
|
-
DIMENSIONS order_date,
|
|
149
|
-
DIMENSIONS customer_name,
|
|
150
|
-
METRICS avg_order_value
|
|
151
|
-
);
|
|
152
|
-
|
|
153
|
-
-- 加 WHERE 过滤(需将过滤列定义为 DIMENSION)
|
|
154
|
-
SELECT * FROM semantic_view(
|
|
155
|
-
tpch_rev_analysis,
|
|
156
|
-
DIMENSIONS customers.customer_name,
|
|
157
|
-
DIMENSIONS orders.order_status,
|
|
158
|
-
METRICS orders.total_revenue
|
|
159
|
-
) WHERE order_status = 'O';
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### 与传统 SQL 对比
|
|
163
|
-
|
|
164
|
-
```sql
|
|
165
|
-
-- 传统 SQL(需手写 JOIN + GROUP BY)
|
|
166
|
-
SELECT o.o_orderdate, c.c_name, AVG(o.o_totalprice)
|
|
167
|
-
FROM tpch.orders o
|
|
168
|
-
JOIN tpch.customer c ON o.o_custkey = c.c_custkey
|
|
169
|
-
GROUP BY o.o_orderdate, c.c_name;
|
|
170
|
-
|
|
171
|
-
-- 语义视图(自动处理 JOIN 和聚合)
|
|
172
|
-
SELECT * FROM semantic_view(
|
|
173
|
-
tpch_rev_analysis,
|
|
174
|
-
DIMENSIONS order_date,
|
|
175
|
-
DIMENSIONS customer_name,
|
|
176
|
-
METRICS avg_order_value
|
|
177
|
-
);
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
## 管理命令
|
|
183
|
-
|
|
184
|
-
```sql
|
|
185
|
-
-- 删除(推荐先删再建,确保幂等)
|
|
186
|
-
DROP SEMANTIC VIEW IF EXISTS tpch_rev_analysis;
|
|
187
|
-
|
|
188
|
-
-- 列出当前 Schema 的所有语义视图
|
|
189
|
-
SHOW SEMANTIC VIEWS;
|
|
190
|
-
SHOW SEMANTIC VIEWS IN my_schema;
|
|
191
|
-
|
|
192
|
-
-- 查看详细定义(逻辑表、维度、指标、外键)
|
|
193
|
-
DESC EXTENDED tpch_rev_analysis;
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## 注意事项
|
|
199
|
-
|
|
200
|
-
1. **TABLES 定义顺序**:被外键引用的表必须先定义(如 `customers` 必须在 `orders` 之前)
|
|
201
|
-
2. **FILTERS 是语义注解**:`FILTERS` 中的命名过滤器不能作为 `semantic_view()` 的参数,WHERE 子句只能引用 `DIMENSIONS` 中定义的列名(短名),不能用物理列名
|
|
202
|
-
3. **WHERE 只能用 DIMENSION 短名**:`WHERE customer_name = 'Alice'` ✅,`WHERE c_name = 'Alice'` ❌
|
|
203
|
-
4. **短名称 vs 限定名称**:名称在视图内唯一时可用短名称,有冲突时必须用 `表别名.名称`
|
|
204
|
-
5. **幂等创建**:始终先 `DROP SEMANTIC VIEW IF EXISTS` 再创建,避免重复执行报错
|
|
205
|
-
6. **计算维度**:DIMENSIONS 支持表达式,如 `YEAR(CAST(order_date AS DATE))` 提取年份
|
|
206
|
-
7. **指标聚合函数**:仅支持 `COUNT`、`AVG`、`SUM`、`MIN`、`MAX`
|
|
207
|
-
8. **DIMENSIONS 和 METRICS 可单独使用**:可以只查 METRICS(全局聚合),也可以只查 DIMENSIONS(去重列表)
|