@clickzetta/cz-cli-darwin-x64 0.3.80 → 0.3.81

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 (201) hide show
  1. package/bin/cz-cli +0 -0
  2. package/package.json +1 -1
  3. package/bin/skills/clickzetta-access-control/LICENSE +0 -16
  4. package/bin/skills/clickzetta-access-control/SKILL.md +0 -243
  5. package/bin/skills/clickzetta-access-control/eval_cases.jsonl +0 -3
  6. package/bin/skills/clickzetta-access-control/references/dynamic-masking.md +0 -86
  7. package/bin/skills/clickzetta-access-control/references/grant-revoke.md +0 -103
  8. package/bin/skills/clickzetta-access-control/references/role-management.md +0 -66
  9. package/bin/skills/clickzetta-access-control/references/user-management.md +0 -61
  10. package/bin/skills/clickzetta-app-python-sdk/LICENSE +0 -16
  11. package/bin/skills/clickzetta-app-python-sdk/SKILL.md +0 -153
  12. package/bin/skills/clickzetta-app-python-sdk/eval_cases.jsonl +0 -12
  13. package/bin/skills/clickzetta-app-python-sdk/references/bulkload.md +0 -196
  14. package/bin/skills/clickzetta-app-python-sdk/references/connector.md +0 -143
  15. package/bin/skills/clickzetta-app-python-sdk/references/realtime.md +0 -122
  16. package/bin/skills/clickzetta-batch-sync-pipeline/LICENSE +0 -16
  17. package/bin/skills/clickzetta-batch-sync-pipeline/SKILL.md +0 -227
  18. package/bin/skills/clickzetta-batch-sync-pipeline/eval_cases.jsonl +0 -5
  19. package/bin/skills/clickzetta-bi-connect/LICENSE +0 -16
  20. package/bin/skills/clickzetta-bi-connect/SKILL.md +0 -176
  21. package/bin/skills/clickzetta-bi-connect/eval_cases.jsonl +0 -5
  22. package/bin/skills/clickzetta-bi-connect/references/bi-tools.md +0 -170
  23. package/bin/skills/clickzetta-cdc-sync-pipeline/LICENSE +0 -16
  24. package/bin/skills/clickzetta-cdc-sync-pipeline/SKILL.md +0 -633
  25. package/bin/skills/clickzetta-cdc-sync-pipeline/eval_cases.jsonl +0 -5
  26. package/bin/skills/clickzetta-data-ingest-pipeline/LICENSE +0 -16
  27. package/bin/skills/clickzetta-data-ingest-pipeline/SKILL.md +0 -237
  28. package/bin/skills/clickzetta-data-ingest-pipeline/eval_cases.jsonl +0 -5
  29. package/bin/skills/clickzetta-data-retention/LICENSE +0 -16
  30. package/bin/skills/clickzetta-data-retention/SKILL.md +0 -160
  31. package/bin/skills/clickzetta-data-retention/eval_cases.jsonl +0 -5
  32. package/bin/skills/clickzetta-data-retention/references/lifecycle-reference.md +0 -175
  33. package/bin/skills/clickzetta-data-science/LICENSE +0 -16
  34. package/bin/skills/clickzetta-data-science/SKILL.md +0 -125
  35. package/bin/skills/clickzetta-data-science/eval_cases.jsonl +0 -12
  36. package/bin/skills/clickzetta-data-science/references/bitmap-profile.md +0 -146
  37. package/bin/skills/clickzetta-data-science/references/data-patterns.md +0 -110
  38. package/bin/skills/clickzetta-data-science/references/setup.md +0 -160
  39. package/bin/skills/clickzetta-data-science/references/stats-functions.md +0 -195
  40. package/bin/skills/clickzetta-data-science/references/write-and-infer.md +0 -122
  41. package/bin/skills/clickzetta-data-science/references/zettapark-api.md +0 -156
  42. package/bin/skills/clickzetta-data-sharing/LICENSE +0 -16
  43. package/bin/skills/clickzetta-data-sharing/SKILL.md +0 -160
  44. package/bin/skills/clickzetta-data-sharing/eval_cases.jsonl +0 -3
  45. package/bin/skills/clickzetta-data-sharing/references/share-ddl.md +0 -134
  46. package/bin/skills/clickzetta-dba-guide/LICENSE +0 -16
  47. package/bin/skills/clickzetta-dba-guide/SKILL.md +0 -542
  48. package/bin/skills/clickzetta-dba-guide/eval_cases.jsonl +0 -3
  49. package/bin/skills/clickzetta-dw-modeling/LICENSE +0 -16
  50. package/bin/skills/clickzetta-dw-modeling/SKILL.md +0 -351
  51. package/bin/skills/clickzetta-dw-modeling/eval_cases.jsonl +0 -4
  52. package/bin/skills/clickzetta-dw-modeling/references/modeling-patterns.md +0 -100
  53. package/bin/skills/clickzetta-dynamic-table/LICENSE +0 -16
  54. package/bin/skills/clickzetta-dynamic-table/SKILL.md +0 -230
  55. package/bin/skills/clickzetta-dynamic-table/best-practices/dimension-table-join-guide.md +0 -253
  56. package/bin/skills/clickzetta-dynamic-table/best-practices/medallion-and-stream-patterns.md +0 -124
  57. package/bin/skills/clickzetta-dynamic-table/best-practices/non-partitioned-merge-into-warning.md +0 -96
  58. package/bin/skills/clickzetta-dynamic-table/best-practices/performance-optimization.md +0 -109
  59. package/bin/skills/clickzetta-dynamic-table/best-practices/scheduling-guide.md +0 -135
  60. package/bin/skills/clickzetta-dynamic-table/dt-creator/SKILL.md +0 -15
  61. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/dt-declaration-strategy.md +0 -185
  62. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/incremental-config-reference.md +0 -427
  63. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/refresh-history-guide.md +0 -260
  64. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/sql-limitations.md +0 -80
  65. package/bin/skills/clickzetta-dynamic-table/dynamic-table-alter/SKILL.md +0 -190
  66. package/bin/skills/clickzetta-dynamic-table/eval_cases.jsonl +0 -5
  67. package/bin/skills/clickzetta-dynamic-table/sql-to-dt/SKILL.md +0 -27
  68. package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-column-validation-rules.md +0 -118
  69. package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-conversion-rules.md +0 -225
  70. package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-placeholder-rules.md +0 -182
  71. package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-refresh-rules.md +0 -98
  72. package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-self-reference-rules.md +0 -76
  73. package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-workflow.md +0 -109
  74. package/bin/skills/clickzetta-external-catalog/LICENSE +0 -16
  75. package/bin/skills/clickzetta-external-catalog/SKILL.md +0 -123
  76. package/bin/skills/clickzetta-external-catalog/eval_cases.jsonl +0 -5
  77. package/bin/skills/clickzetta-external-catalog/references/external-catalog-ddl.md +0 -130
  78. package/bin/skills/clickzetta-external-function/LICENSE +0 -16
  79. package/bin/skills/clickzetta-external-function/SKILL.md +0 -203
  80. package/bin/skills/clickzetta-external-function/eval_cases.jsonl +0 -4
  81. package/bin/skills/clickzetta-external-function/references/external-function-ddl.md +0 -171
  82. package/bin/skills/clickzetta-file-import-pipeline/LICENSE +0 -16
  83. package/bin/skills/clickzetta-file-import-pipeline/SKILL.md +0 -190
  84. package/bin/skills/clickzetta-file-import-pipeline/eval_cases.jsonl +0 -5
  85. package/bin/skills/clickzetta-index-manager/LICENSE +0 -16
  86. package/bin/skills/clickzetta-index-manager/SKILL.md +0 -140
  87. package/bin/skills/clickzetta-index-manager/eval_cases.jsonl +0 -5
  88. package/bin/skills/clickzetta-index-manager/references/bloomfilter-index.md +0 -67
  89. package/bin/skills/clickzetta-index-manager/references/index-management.md +0 -73
  90. package/bin/skills/clickzetta-index-manager/references/inverted-index.md +0 -80
  91. package/bin/skills/clickzetta-index-manager/references/vector-index.md +0 -81
  92. package/bin/skills/clickzetta-java-sdk/LICENSE +0 -16
  93. package/bin/skills/clickzetta-java-sdk/SKILL.md +0 -186
  94. package/bin/skills/clickzetta-java-sdk/eval_cases.jsonl +0 -12
  95. package/bin/skills/clickzetta-java-sdk/references/bulkload.md +0 -163
  96. package/bin/skills/clickzetta-java-sdk/references/realtime.md +0 -212
  97. package/bin/skills/clickzetta-kafka-ingest-pipeline/LICENSE +0 -16
  98. package/bin/skills/clickzetta-kafka-ingest-pipeline/SKILL.md +0 -769
  99. package/bin/skills/clickzetta-kafka-ingest-pipeline/eval_cases.jsonl +0 -5
  100. package/bin/skills/clickzetta-kafka-ingest-pipeline/references/kafka-pipe-syntax.md +0 -324
  101. package/bin/skills/clickzetta-lakehouse-connect/LICENSE +0 -16
  102. package/bin/skills/clickzetta-lakehouse-connect/SKILL.md +0 -218
  103. package/bin/skills/clickzetta-lakehouse-connect/eval_cases.jsonl +0 -3
  104. package/bin/skills/clickzetta-lakehouse-connect/evals/evals.json +0 -35
  105. package/bin/skills/clickzetta-lakehouse-connect/references/config-file.md +0 -435
  106. package/bin/skills/clickzetta-lakehouse-connect/references/jdbc.md +0 -478
  107. package/bin/skills/clickzetta-lakehouse-connect/references/python-sdk.md +0 -225
  108. package/bin/skills/clickzetta-lakehouse-connect/references/sqlalchemy.md +0 -468
  109. package/bin/skills/clickzetta-lakehouse-connect/references/zettapark-session.md +0 -445
  110. package/bin/skills/clickzetta-manage-comments/LICENSE +0 -16
  111. package/bin/skills/clickzetta-manage-comments/SKILL.md +0 -219
  112. package/bin/skills/clickzetta-manage-comments/eval_cases.jsonl +0 -3
  113. package/bin/skills/clickzetta-metadata/LICENSE +0 -16
  114. package/bin/skills/clickzetta-metadata/SKILL.md +0 -502
  115. package/bin/skills/clickzetta-metadata/eval_cases.jsonl +0 -5
  116. package/bin/skills/clickzetta-metadata/references/instance-views-reference.md +0 -276
  117. package/bin/skills/clickzetta-metadata/references/metering-views-reference.md +0 -137
  118. package/bin/skills/clickzetta-metadata/references/show-desc-reference.md +0 -326
  119. package/bin/skills/clickzetta-metadata/references/views-reference.md +0 -271
  120. package/bin/skills/clickzetta-monitoring/LICENSE +0 -16
  121. package/bin/skills/clickzetta-monitoring/SKILL.md +0 -215
  122. package/bin/skills/clickzetta-monitoring/eval_cases.jsonl +0 -5
  123. package/bin/skills/clickzetta-monitoring/references/job-history-analysis.md +0 -97
  124. package/bin/skills/clickzetta-monitoring/references/show-jobs.md +0 -48
  125. package/bin/skills/clickzetta-oss-ingest-pipeline/LICENSE +0 -16
  126. package/bin/skills/clickzetta-oss-ingest-pipeline/SKILL.md +0 -562
  127. package/bin/skills/clickzetta-oss-ingest-pipeline/eval_cases.jsonl +0 -5
  128. package/bin/skills/clickzetta-overview/LICENSE +0 -16
  129. package/bin/skills/clickzetta-overview/SKILL.md +0 -102
  130. package/bin/skills/clickzetta-overview/eval_cases.jsonl +0 -5
  131. package/bin/skills/clickzetta-overview/references/brands-and-endpoints.md +0 -79
  132. package/bin/skills/clickzetta-overview/references/object-model.md +0 -311
  133. package/bin/skills/clickzetta-overview/references/studio-modules.md +0 -173
  134. package/bin/skills/clickzetta-pipeline-review/LICENSE +0 -16
  135. package/bin/skills/clickzetta-pipeline-review/SKILL.md +0 -377
  136. package/bin/skills/clickzetta-query-optimizer/LICENSE +0 -16
  137. package/bin/skills/clickzetta-query-optimizer/SKILL.md +0 -156
  138. package/bin/skills/clickzetta-query-optimizer/eval_cases.jsonl +0 -5
  139. package/bin/skills/clickzetta-query-optimizer/references/explain.md +0 -56
  140. package/bin/skills/clickzetta-query-optimizer/references/hints-and-sortkey.md +0 -78
  141. package/bin/skills/clickzetta-query-optimizer/references/optimize.md +0 -65
  142. package/bin/skills/clickzetta-query-optimizer/references/result-cache.md +0 -49
  143. package/bin/skills/clickzetta-query-optimizer/references/show-jobs.md +0 -42
  144. package/bin/skills/clickzetta-realtime-sync-pipeline/LICENSE +0 -16
  145. package/bin/skills/clickzetta-realtime-sync-pipeline/SKILL.md +0 -323
  146. package/bin/skills/clickzetta-realtime-sync-pipeline/eval_cases.jsonl +0 -5
  147. package/bin/skills/clickzetta-semantic-view/LICENSE +0 -16
  148. package/bin/skills/clickzetta-semantic-view/SKILL.md +0 -207
  149. package/bin/skills/clickzetta-semantic-view/eval_cases.jsonl +0 -12
  150. package/bin/skills/clickzetta-semantic-view/references/semantic-view-reference.md +0 -167
  151. package/bin/skills/clickzetta-spark-flink-connector/LICENSE +0 -16
  152. package/bin/skills/clickzetta-spark-flink-connector/SKILL.md +0 -92
  153. package/bin/skills/clickzetta-spark-flink-connector/eval_cases.jsonl +0 -5
  154. package/bin/skills/clickzetta-spark-flink-connector/references/flink.md +0 -147
  155. package/bin/skills/clickzetta-spark-flink-connector/references/spark.md +0 -132
  156. package/bin/skills/clickzetta-sql-pipeline-manager/LICENSE +0 -16
  157. package/bin/skills/clickzetta-sql-pipeline-manager/SKILL.md +0 -485
  158. package/bin/skills/clickzetta-sql-pipeline-manager/eval_cases.jsonl +0 -12
  159. package/bin/skills/clickzetta-sql-pipeline-manager/evals/evals.json +0 -166
  160. package/bin/skills/clickzetta-sql-pipeline-manager/references/dynamic-table.md +0 -185
  161. package/bin/skills/clickzetta-sql-pipeline-manager/references/materialized-view.md +0 -129
  162. package/bin/skills/clickzetta-sql-pipeline-manager/references/pipe.md +0 -222
  163. package/bin/skills/clickzetta-sql-pipeline-manager/references/table-stream.md +0 -125
  164. package/bin/skills/clickzetta-sql-syntax-guide/LICENSE +0 -16
  165. package/bin/skills/clickzetta-sql-syntax-guide/SKILL.md +0 -249
  166. package/bin/skills/clickzetta-sql-syntax-guide/eval_cases.jsonl +0 -3
  167. package/bin/skills/clickzetta-sql-syntax-guide/references/ddl-reference.md +0 -350
  168. package/bin/skills/clickzetta-sql-syntax-guide/references/dml-reference.md +0 -279
  169. package/bin/skills/clickzetta-sql-syntax-guide/references/dql-reference.md +0 -504
  170. package/bin/skills/clickzetta-sql-syntax-guide/references/functions-reference.md +0 -372
  171. package/bin/skills/clickzetta-sql-syntax-guide/references/migration-databricks.md +0 -260
  172. package/bin/skills/clickzetta-sql-syntax-guide/references/migration-snowflake.md +0 -382
  173. package/bin/skills/clickzetta-sql-syntax-guide/references/vs-snowflake.md +0 -346
  174. package/bin/skills/clickzetta-sql-syntax-guide/references/vs-spark.md +0 -229
  175. package/bin/skills/clickzetta-studio-task-manager/LICENSE +0 -16
  176. package/bin/skills/clickzetta-studio-task-manager/SKILL.md +0 -652
  177. package/bin/skills/clickzetta-table-lineage/LICENSE +0 -16
  178. package/bin/skills/clickzetta-table-lineage/SKILL.md +0 -90
  179. package/bin/skills/clickzetta-table-lineage/eval_cases.jsonl +0 -1
  180. package/bin/skills/clickzetta-table-lineage/references/normalize_func.sql +0 -14
  181. package/bin/skills/clickzetta-table-lineage/references/table_cost.sql +0 -38
  182. package/bin/skills/clickzetta-table-lineage/references/table_lineage_standalone.html +0 -562
  183. package/bin/skills/clickzetta-table-lineage/references/table_relation.sql +0 -25
  184. package/bin/skills/clickzetta-table-stream-pipeline/LICENSE +0 -16
  185. package/bin/skills/clickzetta-table-stream-pipeline/SKILL.md +0 -206
  186. package/bin/skills/clickzetta-table-stream-pipeline/eval_cases.jsonl +0 -5
  187. package/bin/skills/clickzetta-vcluster-manager/LICENSE +0 -16
  188. package/bin/skills/clickzetta-vcluster-manager/SKILL.md +0 -212
  189. package/bin/skills/clickzetta-vcluster-manager/eval_cases.jsonl +0 -5
  190. package/bin/skills/clickzetta-vcluster-manager/references/vc-cache.md +0 -54
  191. package/bin/skills/clickzetta-vcluster-manager/references/vcluster-ddl.md +0 -150
  192. package/bin/skills/clickzetta-volume-manager/LICENSE +0 -16
  193. package/bin/skills/clickzetta-volume-manager/SKILL.md +0 -292
  194. package/bin/skills/clickzetta-volume-manager/eval_cases.jsonl +0 -5
  195. package/bin/skills/clickzetta-volume-manager/references/volume-ddl.md +0 -199
  196. package/bin/skills/clickzetta-zettapark/LICENSE +0 -16
  197. package/bin/skills/clickzetta-zettapark/SKILL.md +0 -248
  198. package/bin/skills/clickzetta-zettapark/eval_cases.jsonl +0 -12
  199. package/bin/skills/clickzetta-zettapark/references/zettapark-api.md +0 -283
  200. package/bin/skills/cz-cli/SKILL.md +0 -311
  201. package/bin/skills/cz-cli/references/profile-setup.md +0 -120
@@ -1,166 +0,0 @@
1
- {
2
- "skill_name": "clickzetta-sql-pipeline-manager",
3
- "evals": [
4
- {
5
- "id": 1,
6
- "prompt": "帮我创建一个动态表 dwd.orders_clean,每分钟刷新一次,从 ods.orders 表过滤 amount > 0 的数据,计算集群用 default_ap。",
7
- "expected_output": "生成 CREATE OR REPLACE DYNAMIC TABLE dwd.orders_clean,包含 TARGET_LAG = '1 minutes'、VCLUSTER = default_ap、AS SELECT ... FROM ods.orders WHERE amount > 0",
8
- "files": [],
9
- "assertions": [
10
- {"text": "包含 CREATE DYNAMIC TABLE 或 CREATE OR REPLACE DYNAMIC TABLE"},
11
- {"text": "包含 dwd.orders_clean 作为表名"},
12
- {"text": "包含 TARGET_LAG = '1 minutes' 或等效写法"},
13
- {"text": "包含 VCLUSTER = default_ap"},
14
- {"text": "包含 WHERE amount > 0 过滤条件"},
15
- {"text": "包含 FROM ods.orders"}
16
- ]
17
- },
18
- {
19
- "id": 2,
20
- "prompt": "我有一个动态表 dws.order_hourly 刷新失败了,怎么排查?",
21
- "expected_output": "使用 SHOW DYNAMIC TABLE REFRESH HISTORY dws.order_hourly 查看失败详情,说明常见原因(SQL 报错、源表结构变更、集群不可用),提供排查步骤",
22
- "files": [],
23
- "assertions": [
24
- {"text": "包含 SHOW DYNAMIC TABLE REFRESH HISTORY 命令"},
25
- {"text": "包含 dws.order_hourly 表名"},
26
- {"text": "提到至少一种常见失败原因(SQL报错/源表变更/集群不可用)"},
27
- {"text": "提供具体的排查步骤或命令"}
28
- ]
29
- },
30
- {
31
- "id": 3,
32
- "prompt": "我想从 Kafka 持续导入订单数据到 ods.orders 表,broker 是 kafka.prod.com:9092,topic 是 orders,数据是 JSON 格式。",
33
- "expected_output": "生成 CREATE OR REPLACE PIPE 语句,使用 READ_KAFKA 函数,包含 KAFKA_BROKER、KAFKA_TOPIC、KAFKA_GROUP_ID、KAFKA_DATA_FORMAT = 'json',以及 INSERT INTO ods.orders 的字段映射",
34
- "files": [],
35
- "assertions": [
36
- {"text": "包含 CREATE PIPE 语句"},
37
- {"text": "包含 READ_KAFKA 函数"},
38
- {"text": "包含 kafka.prod.com:9092 作为 broker 地址"},
39
- {"text": "包含 KAFKA_TOPIC 设置为 orders"},
40
- {"text": "包含 KAFKA_DATA_FORMAT = 'json' 或等效写法"},
41
- {"text": "包含 INSERT INTO ods.orders"}
42
- ]
43
- },
44
- {
45
- "id": 4,
46
- "prompt": "我需要捕获 ods.orders 表的 UPDATE 和 DELETE 变更,然后同步到 dwd.orders_dim 表,怎么做?",
47
- "expected_output": "先 CREATE TABLE STREAM ON TABLE ods.orders MODE = STANDARD,再创建 Dynamic Table 或用 MERGE INTO 消费 stream,说明 _change_type 字段含义(update_postimage / delete)",
48
- "files": [],
49
- "assertions": [
50
- {"text": "包含 CREATE TABLE STREAM"},
51
- {"text": "包含 ON TABLE ods.orders"},
52
- {"text": "包含 MODE = STANDARD 或说明标准模式"},
53
- {"text": "提到 _change_type 字段"},
54
- {"text": "提到 update_postimage 或 delete 变更类型"},
55
- {"text": "提供消费 stream 的方案(MERGE INTO 或 Dynamic Table)"}
56
- ]
57
- },
58
- {
59
- "id": 5,
60
- "prompt": "帮我创建一个物化视图 dws.mv_daily_revenue,每小时自动刷新,统计每天每个 region 的 revenue 总和,数据来自 dwd.orders_clean。",
61
- "expected_output": "生成 CREATE OR REPLACE MATERIALIZED VIEW,包含 REFRESH AUTO EVERY '1 hours'、VCLUSTER、AS SELECT DATE(created_at), region, SUM(amount) FROM dwd.orders_clean GROUP BY 1,2",
62
- "files": [],
63
- "assertions": [
64
- {"text": "包含 CREATE MATERIALIZED VIEW"},
65
- {"text": "包含 dws.mv_daily_revenue 作为视图名"},
66
- {"text": "包含 REFRESH AUTO EVERY '1 hours' 或等效写法"},
67
- {"text": "包含 FROM dwd.orders_clean"},
68
- {"text": "包含 SUM 聚合 revenue 或 amount"},
69
- {"text": "包含 GROUP BY 包括日期和 region"}
70
- ]
71
- },
72
- {
73
- "id": 6,
74
- "prompt": "我要做一个三层 ETL:ODS 原始层 → DWD 清洗层 → DWS 聚合层,都用动态表,希望 DWD 每分钟刷新,DWS 跟着 DWD 刷新。怎么设计?",
75
- "expected_output": "DWD 动态表设置 TARGET_LAG = '1 minutes',DWS 动态表设置 TARGET_LAG = DOWNSTREAM,给出完整的两层 CREATE DYNAMIC TABLE 示例,说明 DOWNSTREAM 的含义",
76
- "files": [],
77
- "assertions": [
78
- {"text": "包含两个 CREATE DYNAMIC TABLE 语句(DWD 和 DWS 层)"},
79
- {"text": "DWD 层包含 TARGET_LAG = '1 minutes'"},
80
- {"text": "DWS 层包含 TARGET_LAG = DOWNSTREAM"},
81
- {"text": "解释 DOWNSTREAM 的含义(跟随上游刷新)"},
82
- {"text": "DWS 层查询来自 DWD 层表"}
83
- ]
84
- },
85
- {
86
- "id": 7,
87
- "prompt": "我需要暂停所有动态表的刷新,明天维护结束后再恢复,怎么操作?",
88
- "expected_output": "使用 ALTER DYNAMIC TABLE <name> SUSPEND 暂停,ALTER DYNAMIC TABLE <name> RESUME 恢复,提示可先用 SHOW TABLES WHERE is_dynamic=true 列出所有动态表",
89
- "files": [],
90
- "assertions": [
91
- {"text": "包含 ALTER DYNAMIC TABLE ... SUSPEND"},
92
- {"text": "包含 ALTER DYNAMIC TABLE ... RESUME"},
93
- {"text": "提到 SHOW TABLES WHERE is_dynamic=true 或等效方式列出动态表"}
94
- ]
95
- },
96
- {
97
- "id": 8,
98
- "prompt": "动态表和物化视图有什么区别?我的场景是每天凌晨跑一次聚合报表,用哪个更合适?",
99
- "expected_output": "说明动态表适合实时/增量场景,物化视图适合低频全量刷新;对于每天一次的报表场景推荐物化视图(REFRESH MANUAL 或 AUTO EVERY '1 days'),成本更低",
100
- "files": [],
101
- "assertions": [
102
- {"text": "说明动态表适合实时或增量计算场景"},
103
- {"text": "说明物化视图适合低频或手动刷新场景"},
104
- {"text": "明确推荐物化视图用于每天一次的报表场景"},
105
- {"text": "提到 REFRESH MANUAL 或 REFRESH AUTO EVERY '1 days' 等具体语法"}
106
- ]
107
- },
108
- {
109
- "id": 9,
110
- "prompt": "帮我设计一个完整的数据管道:从 Kafka(broker: kafka.prod.com:9092,topic: user_events,JSON 格式)接入用户行为数据,字段有 user_id、event_type、page_id、ts(时间戳)。需要做到三层:ODS 原始层、DWD 清洗层(过滤无效 event_type)、DWS 聚合层(按天统计每个 page 的 UV 和 PV)。DWD 每 2 分钟刷新,DWS 跟随 DWD。",
111
- "expected_output": "生成完整的端到端 SQL:1) ODS 建表,2) Kafka Pipe(使用 READ_KAFKA),3) DWD 动态表(TARGET_LAG='2 minutes',VCLUSTER,过滤无效 event_type),4) DWS 动态表(TARGET_LAG=DOWNSTREAM,按天+page_id 聚合 UV/PV)",
112
- "files": [],
113
- "assertions": [
114
- {"text": "包含 ODS 层建表语句(CREATE TABLE)"},
115
- {"text": "包含 CREATE PIPE 使用 READ_KAFKA 从 kafka.prod.com:9092 摄入数据"},
116
- {"text": "包含 DWD 层 CREATE DYNAMIC TABLE,TARGET_LAG = '2 minutes',VCLUSTER"},
117
- {"text": "包含 DWS 层 CREATE DYNAMIC TABLE,TARGET_LAG = DOWNSTREAM"},
118
- {"text": "DWS 层包含 COUNT(DISTINCT user_id) 统计 UV 或 COUNT(*) 统计 PV"},
119
- {"text": "DWS 层按日期和 page_id 分组(GROUP BY)"},
120
- {"text": "包含验证命令(SHOW 或 DESC)"}
121
- ]
122
- },
123
- {
124
- "id": 10,
125
- "prompt": "我有一个业务数据库的订单表会持续有 INSERT 和 UPDATE,已经同步到了 ClickZetta 的 ods.orders 表(字段:order_id, customer_id, amount, status, updated_at)。我需要构建一个完整的数仓管道:DWD 层保留最新状态的订单,DWS 层按天统计每个 status 的订单数和金额。要求近实时,延迟在 1 分钟以内。",
126
- "expected_output": "使用 Table Stream(MODE=STANDARD)捕获 UPDATE 变更,DWD 动态表消费 stream 过滤 update_postimage,TARGET_LAG='1 minutes',DWS 动态表 TARGET_LAG=DOWNSTREAM 做聚合",
127
- "files": [],
128
- "assertions": [
129
- {"text": "包含 CREATE TABLE STREAM ON TABLE ods.orders,MODE = STANDARD"},
130
- {"text": "DWD 层动态表消费 stream,过滤 _change_type IN ('insert', 'update_postimage')"},
131
- {"text": "DWD 层包含 TARGET_LAG = '1 minutes',VCLUSTER"},
132
- {"text": "DWS 层包含 TARGET_LAG = DOWNSTREAM"},
133
- {"text": "DWS 层按日期和 status 分组,包含 COUNT 和 SUM 聚合"},
134
- {"text": "包含验证命令(SHOW DYNAMIC TABLE REFRESH HISTORY 或 SHOW TABLE STREAMS)"}
135
- ]
136
- },
137
- {
138
- "id": 12,
139
- "prompt": "我想在 ClickZetta 上实现 Medallion Architecture,数据来自 S3(Volume 名称 s3_raw_vol,路径 /events/,JSON 格式),字段有 event_id、user_id、event_name、properties(JSON 嵌套)、created_at。Bronze 层直接落地原始数据,Silver 层做清洗(过滤 event_name 为空的记录,展开 properties 里的 page_url 和 referrer 字段),Gold 层按天统计每个 event_name 的次数和独立用户数。Silver 每 5 分钟刷新,Gold 跟随 Silver。",
140
- "expected_output": "使用 bronze/silver/gold schema 命名(不映射到 ODS/DWD/DWS),生成完整 SQL:Bronze 建表 + OSS Pipe(COPY INTO FROM '@s3_raw_vol/events/'),Silver 动态表(TARGET_LAG='5 minutes',过滤 event_name IS NULL,展开 properties:page_url 和 properties:referrer),Gold 动态表(TARGET_LAG=DOWNSTREAM,按天+event_name 聚合 COUNT 和 COUNT DISTINCT user_id)",
141
- "files": [],
142
- "assertions": [
143
- {"text": "使用 bronze/silver/gold schema 命名(不使用 ods/dwd/dws)"},
144
- {"text": "包含 CREATE PIPE 使用 COPY INTO FROM '@s3_raw_vol/events/',FILE_FORMAT TYPE = 'json'"},
145
- {"text": "Silver 层包含 CREATE DYNAMIC TABLE,TARGET_LAG = '5 minutes',VCLUSTER,过滤 event_name IS NULL"},
146
- {"text": "Silver 层展开 JSON 嵌套字段(properties:page_url 或 $1:page_url 等语法)"},
147
- {"text": "Gold 层包含 CREATE DYNAMIC TABLE,TARGET_LAG = DOWNSTREAM"},
148
- {"text": "Gold 层包含 COUNT(DISTINCT user_id) 和 COUNT(*) 或 COUNT(event_id),按日期和 event_name 分组"}
149
- ]
150
- },
151
- {
152
- "id": 11,
153
- "prompt": "我们有日志文件每小时上传到 OSS(Volume 名称 my_oss_vol,路径 /logs/app/,Parquet 格式),字段是 log_id、user_id、action、duration_ms、log_time。帮我构建完整的数据管道:自动导入到 ODS,然后做 DWD 清洗(过滤 duration_ms <= 0),最后做 DWS 层按天统计每个 action 的平均耗时和次数。不需要实时,每小时刷新一次就够。",
154
- "expected_output": "使用对象存储 Pipe(COPY INTO from @my_oss_vol/logs/app/,TYPE=parquet),DWD 动态表 TARGET_LAG='1 hours',DWS 动态表 TARGET_LAG=DOWNSTREAM,DWS 聚合 AVG(duration_ms) 和 COUNT(*)",
155
- "files": [],
156
- "assertions": [
157
- {"text": "包含 CREATE PIPE 使用 COPY INTO FROM '@my_oss_vol/logs/app/'"},
158
- {"text": "包含 FILE_FORMAT = (TYPE = 'parquet') 或等效写法"},
159
- {"text": "DWD 层包含 CREATE DYNAMIC TABLE,TARGET_LAG = '1 hours',VCLUSTER,过滤 duration_ms <= 0"},
160
- {"text": "DWS 层包含 TARGET_LAG = DOWNSTREAM"},
161
- {"text": "DWS 层包含 AVG(duration_ms) 统计平均耗时"},
162
- {"text": "DWS 层按日期和 action 分组"}
163
- ]
164
- }
165
- ]
166
- }
@@ -1,185 +0,0 @@
1
- # Dynamic Table(动态表)SQL 参考
2
-
3
- > **⚠️ ClickZetta 特有语法**
4
- > - 刷新调度写法:`REFRESH INTERVAL 5 MINUTE vcluster default`(不是 `TARGET_LAG`)
5
- > - 修改调度周期或计算集群必须用 `CREATE OR REPLACE`,`ALTER` 不支持
6
- > - `ALTER DYNAMIC TABLE` 只支持:SUSPEND / RESUME / SET COMMENT / RENAME COLUMN / CHANGE COLUMN COMMENT / SET/UNSET PROPERTIES
7
- > - 删除用 `DROP DYNAMIC TABLE`(不是 `DROP TABLE`)
8
- > - 恢复用 `UNDROP TABLE`(不是 `UNDROP DYNAMIC TABLE`)
9
- > - DESC 用 `DESC TABLE name`(不支持 `DESC DYNAMIC TABLE name EXTENDED`)
10
-
11
- 动态表是 ClickZetta Lakehouse 的核心增量计算对象。通过 SQL 查询定义,自动增量刷新,无需手动调度。
12
-
13
- ## CREATE DYNAMIC TABLE
14
-
15
- ```sql
16
- CREATE [ OR REPLACE ] DYNAMIC TABLE <name>
17
- [ (<column_list>) ]
18
- [ PARTITIONED BY (<col_name>) ]
19
- [ CLUSTERED BY (<col_name>) ]
20
- [ COMMENT <comment> ]
21
- [ PROPERTIES ( data_lifecycle = <day_num> ) ]
22
- REFRESH [ START WITH TIMESTAMP '<timestamp>' ] INTERVAL <n> { SECOND | MINUTE | HOUR | DAY }
23
- vcluster <vcluster_name>
24
- AS
25
- <query>;
26
- ```
27
-
28
- **关键参数:**
29
- - `REFRESH INTERVAL <n> MINUTE`:刷新间隔,最小 1 分钟
30
- - `vcluster`:运行刷新任务的计算集群名称(直接跟名称,不带等号和引号)
31
- - `OR REPLACE`:若同名动态表已存在则替换(修改 SQL 逻辑或调度配置必须用此方式)
32
- - 建议使用 GP 型集群(如 `default`),AP 型集群不支持小文件合并
33
-
34
- **示例:**
35
- ```sql
36
- -- 基础示例:每 5 分钟刷新一次订单汇总
37
- CREATE OR REPLACE DYNAMIC TABLE dw.order_summary
38
- REFRESH INTERVAL 5 MINUTE vcluster default
39
- AS
40
- SELECT
41
- date_trunc('hour', created_at) AS hour,
42
- region,
43
- COUNT(*) AS order_cnt,
44
- SUM(amount) AS total_amount
45
- FROM ods.orders
46
- GROUP BY 1, 2;
47
-
48
- -- 修改调度周期(必须用 CREATE OR REPLACE)
49
- CREATE OR REPLACE DYNAMIC TABLE dw.order_summary
50
- REFRESH INTERVAL 10 MINUTE vcluster default
51
- AS
52
- SELECT
53
- date_trunc('hour', created_at) AS hour,
54
- region,
55
- COUNT(*) AS order_cnt,
56
- SUM(amount) AS total_amount
57
- FROM ods.orders
58
- GROUP BY 1, 2;
59
- ```
60
-
61
- ## ALTER DYNAMIC TABLE
62
-
63
- ```sql
64
- -- 暂停刷新
65
- ALTER DYNAMIC TABLE <name> SUSPEND;
66
-
67
- -- 恢复刷新
68
- ALTER DYNAMIC TABLE <name> RESUME;
69
-
70
- -- 修改注释
71
- ALTER DYNAMIC TABLE <name> SET COMMENT '<comment>';
72
-
73
- -- 修改列名
74
- ALTER DYNAMIC TABLE <name> RENAME COLUMN <old_col> TO <new_col>;
75
-
76
- -- 修改列注释(注意用 CHANGE COLUMN)
77
- ALTER DYNAMIC TABLE <name> CHANGE COLUMN <col_name> COMMENT '<comment>';
78
-
79
- -- 修改属性
80
- ALTER DYNAMIC TABLE <name> SET PROPERTIES ('key' = 'value');
81
- ALTER DYNAMIC TABLE <name> UNSET PROPERTIES ('key');
82
- ```
83
-
84
- > 注意:修改调度周期、计算集群、SQL 查询逻辑,必须用 `CREATE OR REPLACE DYNAMIC TABLE`,ALTER 不支持这些操作。
85
-
86
- ## REFRESH DYNAMIC TABLE(手动触发)
87
-
88
- ```sql
89
- -- 手动触发一次刷新
90
- REFRESH DYNAMIC TABLE <name>;
91
- ```
92
-
93
- ## DROP DYNAMIC TABLE
94
-
95
- ```sql
96
- -- ⚠️ 必须用 DROP DYNAMIC TABLE,不能用 DROP TABLE
97
- DROP DYNAMIC TABLE [ IF EXISTS ] <name>;
98
-
99
- -- 恢复已删除的动态表(⚠️ 用 UNDROP TABLE,不是 UNDROP DYNAMIC TABLE)
100
- UNDROP TABLE <name>;
101
- ```
102
-
103
- ## SHOW / DESC
104
-
105
- ```sql
106
- -- 列出当前 schema 下所有动态表
107
- SHOW TABLES WHERE is_dynamic = true;
108
-
109
- -- 列出指定 schema 下的动态表
110
- SHOW TABLES IN <schema_name> WHERE is_dynamic = true;
111
-
112
- -- 查看动态表结构
113
- DESC TABLE <name>;
114
-
115
- -- 查看完整建表语句
116
- SHOW CREATE TABLE <name>;
117
-
118
- -- 查看刷新历史(状态、耗时、触发方式、增量行数)
119
- SHOW DYNAMIC TABLE REFRESH HISTORY WHERE name = '<dt_name>' LIMIT 20;
120
- ```
121
-
122
- > ⚠️ **DESC 注意**:动态表用 `DESC TABLE name`,不支持 `DESC DYNAMIC TABLE name EXTENDED`(EXTENDED 会报错)。
123
-
124
- ## 注意事项
125
-
126
- - 修改 SQL 逻辑、调度周期、计算集群 → 用 `CREATE OR REPLACE`,不能用 `ALTER`
127
- - 刷新间隔最小 1 分钟
128
- - 删除用 `DROP DYNAMIC TABLE`(不是 `DROP TABLE`)
129
- - 恢复用 `UNDROP TABLE`(不是 `UNDROP DYNAMIC TABLE`)
130
- - 刷新失败不影响表的可查询性(返回上次成功版本的数据)
131
- - 非简单加列/减列的 `CREATE OR REPLACE` 会触发一次全量刷新
132
- - 建议使用 GP 型集群(如 `default`),AP 型集群不支持小文件合并
133
-
134
- ## 参数化动态表(SESSION_CONFIGS)
135
-
136
- 通过 `SESSION_CONFIGS()` 函数定义参数化查询,在刷新时传入分区值控制刷新范围:
137
-
138
- ```sql
139
- -- 创建参数化动态表
140
- CREATE OR REPLACE DYNAMIC TABLE dwd.orders_partitioned
141
- REFRESH INTERVAL 30 MINUTE vcluster default
142
- AS
143
- SELECT order_id, user_id, amount, dt
144
- FROM ods.orders
145
- WHERE dt = SESSION_CONFIGS('target_date', CAST(CURRENT_DATE() AS STRING));
146
-
147
- -- 手动触发刷新并传入参数
148
- REFRESH DYNAMIC TABLE dwd.orders_partitioned
149
- WITH PROPERTIES ('target_date' = '2024-06-15');
150
- ```
151
-
152
- 适用场景:传统按天全量 ETL 改造为增量任务,用 SESSION_CONFIGS 替换调度变量。
153
-
154
- ## 动态表 DML 操作
155
-
156
- 动态表默认不支持 DML,需先开启参数(每次 DML 前都需要 SET):
157
-
158
- ```sql
159
- -- ⚠️ 必须在同一会话/批次中先执行 SET,再执行 DML
160
- SET cz.sql.dt.allow.dml = true;
161
- INSERT INTO <name> VALUES (...);
162
-
163
- -- 删除
164
- SET cz.sql.dt.allow.dml = true;
165
- DELETE FROM <name> WHERE ...;
166
- ```
167
-
168
- > ⚠️ **DML 注意事项**:
169
- > - `SET cz.sql.dt.allow.dml = true` 必须与 DML 语句在同一执行批次中
170
- > - 执行 DML 后,下一次自动刷新会触发**全量刷新**(而非增量),可能耗时较长
171
- > - UPDATE 可能因内部隐藏列(`MV__KEY`)报错,建议改用 DELETE + INSERT
172
- > - 仅在数据修正等特殊场景使用 DML
173
-
174
- ## 参考文档
175
-
176
- - [CREATE DYNAMIC TABLE](https://www.yunqi.tech/documents/create-dynamic-table)
177
- - [ALTER DYNAMIC TABLE](https://www.yunqi.tech/documents/alter-dynamic-table)
178
- - [DROP DYNAMIC TABLE](https://www.yunqi.tech/documents/drop-dynamic-table)
179
- - [SHOW DYNAMIC TABLES](https://www.yunqi.tech/documents/show-dynamic-table)
180
- - [SHOW DYNAMIC TABLE REFRESH HISTORY](https://www.yunqi.tech/documents/refresh-history)
181
- - [动态表简介](https://www.yunqi.tech/documents/dynamic_table_summary)
182
- - [查看动态表刷新模式](https://www.yunqi.tech/documents/dynamic-table-incre)
183
- - [传统离线任务转增量实践](https://www.yunqi.tech/documents/transformt-dt)
184
- - [动态表支持参数化定义](https://www.yunqi.tech/documents/dynamicTable-parmaters)
185
- - [动态表支持DML语句修改](https://www.yunqi.tech/documents/dynamicTable-dml)
@@ -1,129 +0,0 @@
1
- # Materialized View(物化视图)SQL 参考
2
-
3
- > **⚠️ ClickZetta 特有语法**
4
- > - 定时刷新:`REFRESH INTERVAL 10 MINUTE vcluster default`(与动态表语法相同)
5
- > - 手动刷新:`REFRESH MATERIALIZED VIEW <name>;`
6
- > - 修改注释用 `ALTER TABLE`,不是 `ALTER MATERIALIZED VIEW`
7
-
8
- 物化视图将查询结果预计算并物理存储,适合固定维度的聚合加速场景。与动态表的区别:物化视图支持手动或定时刷新,不支持增量刷新。
9
-
10
- ## CREATE MATERIALIZED VIEW
11
-
12
- ```sql
13
- CREATE [ OR REPLACE ] MATERIALIZED VIEW <name>
14
- [ COMMENT = '<comment>' ]
15
- [ BUILD DEFERRED ]
16
- [ REFRESH INTERVAL <N> { SECOND | MINUTE | HOUR | DAY } vcluster <vcluster_name> ]
17
- [ DISABLE QUERY REWRITE ]
18
- AS
19
- <query>;
20
- ```
21
-
22
- **关键参数:**
23
- - `REFRESH INTERVAL 10 MINUTE vcluster default`:定时自动刷新(与动态表语法相同)
24
- - 不写 REFRESH 子句:只能手动触发 `REFRESH MATERIALIZED VIEW <name>;`
25
- - `BUILD DEFERRED`:延迟构建,创建时不立即计算结果
26
- - `DISABLE QUERY REWRITE`:禁用查询改写(不自动用 MV 加速查询)
27
-
28
- **示例:**
29
- ```sql
30
- -- 定时自动刷新的物化视图(每 10 分钟)
31
- CREATE MATERIALIZED VIEW mv_dept_stats
32
- REFRESH INTERVAL 10 MINUTE vcluster default
33
- AS
34
- SELECT
35
- d.dept_id,
36
- d.dept_name,
37
- COUNT(e.emp_id) AS emp_count,
38
- AVG(e.salary) AS avg_salary
39
- FROM departments d
40
- JOIN employees e ON d.dept_id = e.dept_id
41
- GROUP BY d.dept_id, d.dept_name;
42
-
43
- -- 修改刷新周期(需要 CREATE OR REPLACE)
44
- CREATE OR REPLACE MATERIALIZED VIEW mv_dept_stats
45
- BUILD DEFERRED
46
- REFRESH INTERVAL 20 MINUTE vcluster default
47
- DISABLE QUERY REWRITE
48
- AS
49
- SELECT
50
- d.dept_id,
51
- d.dept_name,
52
- d.location,
53
- ANY_VALUE(d.col1) AS col1,
54
- COUNT(e.emp_id) AS emp_count,
55
- AVG(e.salary) AS avg_salary
56
- FROM departments d
57
- JOIN employees e ON d.dept_id = e.dept_id
58
- GROUP BY d.dept_id, d.dept_name, d.location;
59
-
60
- -- 手动刷新
61
- REFRESH MATERIALIZED VIEW mv_dept_stats;
62
- ```
63
-
64
- ## ALTER MATERIALIZED VIEW
65
-
66
- ```sql
67
- -- 暂停自动刷新
68
- ALTER MATERIALIZED VIEW <name> SUSPEND;
69
-
70
- -- 恢复自动刷新
71
- ALTER MATERIALIZED VIEW <name> RESUME;
72
-
73
- -- 修改注释
74
- ALTER TABLE <mv_name> SET COMMENT '<comment>';
75
-
76
- -- 修改列注释(物化视图用 ALTER TABLE 语法)
77
- ALTER TABLE <mv_name> CHANGE COLUMN <col_name> COMMENT '<comment>';
78
- ```
79
-
80
- > 注意:物化视图的注释修改使用 `ALTER TABLE`,不是 `ALTER MATERIALIZED VIEW`。
81
-
82
- ## REFRESH MATERIALIZED VIEW
83
-
84
- ```sql
85
- -- 手动触发全量刷新
86
- REFRESH MATERIALIZED VIEW <name>;
87
- ```
88
-
89
- ## DROP MATERIALIZED VIEW
90
-
91
- ```sql
92
- DROP MATERIALIZED VIEW [ IF EXISTS ] <name>;
93
- ```
94
-
95
- ## SHOW / DESC
96
-
97
- ```sql
98
- -- 列出当前 schema 下所有物化视图
99
- SHOW TABLES WHERE is_materialized_view = true;
100
-
101
- -- 按名称过滤
102
- SHOW TABLES LIKE 'mv_%' WHERE is_materialized_view = true;
103
-
104
- -- 查看物化视图结构
105
- DESC MATERIALIZED VIEW <name>;
106
- DESCRIBE MATERIALIZED VIEW <name> EXTENDED;
107
-
108
- -- 查看完整建表语句
109
- SHOW CREATE TABLE <name>;
110
- ```
111
-
112
- ## 动态表 vs 物化视图 选择指南
113
-
114
- | 场景 | 推荐 |
115
- |---|---|
116
- | 需要秒/分钟级自动增量刷新 | Dynamic Table |
117
- | 固定聚合,手动或低频刷新 | Materialized View |
118
- | 需要 CDC 变更感知 | Dynamic Table + Table Stream |
119
- | 加速 BI 查询,数据不要求实时 | Materialized View |
120
-
121
- ## 参考文档
122
-
123
- - [CREATE MATERIALIZED VIEW](https://www.yunqi.tech/documents/CREATEMATERIALIZEDVIEW)
124
- - [ALTER MATERIALIZED VIEW](https://www.yunqi.tech/documents/alter-materialzied-view)
125
- - [REFRESH MATERIALIZED VIEW](https://www.yunqi.tech/documents/REFRESH)
126
- - [DROP MATERIALIZED VIEW](https://www.yunqi.tech/documents/DROPMATERIALIZEDVIEW)
127
- - [SHOW MATERIALIZED VIEWS](https://www.yunqi.tech/documents/show-materialized-view)
128
- - [物化视图概念与场景](https://www.yunqi.tech/documents/MATERIALIZEDVIEW)
129
- - [物化视图 DDL 汇总](https://www.yunqi.tech/documents/materialized_ddl)