@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.
Files changed (118) hide show
  1. package/bin/cz-cli +0 -0
  2. package/package.json +1 -1
  3. package/bin/skills/clickzetta-access-control/SKILL.md +0 -243
  4. package/bin/skills/clickzetta-access-control/references/dynamic-masking.md +0 -86
  5. package/bin/skills/clickzetta-access-control/references/grant-revoke.md +0 -103
  6. package/bin/skills/clickzetta-access-control/references/role-management.md +0 -66
  7. package/bin/skills/clickzetta-access-control/references/user-management.md +0 -61
  8. package/bin/skills/clickzetta-ai-vector-search/SKILL.md +0 -160
  9. package/bin/skills/clickzetta-ai-vector-search/references/vector-search.md +0 -155
  10. package/bin/skills/clickzetta-app-python-sdk/SKILL.md +0 -153
  11. package/bin/skills/clickzetta-app-python-sdk/references/bulkload.md +0 -196
  12. package/bin/skills/clickzetta-app-python-sdk/references/connector.md +0 -143
  13. package/bin/skills/clickzetta-app-python-sdk/references/realtime.md +0 -122
  14. package/bin/skills/clickzetta-batch-sync-pipeline/SKILL.md +0 -293
  15. package/bin/skills/clickzetta-bi-connect/SKILL.md +0 -176
  16. package/bin/skills/clickzetta-bi-connect/references/bi-tools.md +0 -170
  17. package/bin/skills/clickzetta-cdc-sync-pipeline/SKILL.md +0 -450
  18. package/bin/skills/clickzetta-concepts/SKILL.md +0 -282
  19. package/bin/skills/clickzetta-concepts/references/brands-and-endpoints.md +0 -79
  20. package/bin/skills/clickzetta-concepts/references/object-model.md +0 -311
  21. package/bin/skills/clickzetta-data-ingest-pipeline/SKILL.md +0 -165
  22. package/bin/skills/clickzetta-data-lifecycle/SKILL.md +0 -211
  23. package/bin/skills/clickzetta-data-lifecycle/references/lifecycle-reference.md +0 -175
  24. package/bin/skills/clickzetta-data-recovery/SKILL.md +0 -215
  25. package/bin/skills/clickzetta-data-recovery/evals/evals.json +0 -35
  26. package/bin/skills/clickzetta-data-science/SKILL.md +0 -125
  27. package/bin/skills/clickzetta-data-science/references/bitmap-profile.md +0 -146
  28. package/bin/skills/clickzetta-data-science/references/data-patterns.md +0 -110
  29. package/bin/skills/clickzetta-data-science/references/setup.md +0 -160
  30. package/bin/skills/clickzetta-data-science/references/stats-functions.md +0 -195
  31. package/bin/skills/clickzetta-data-science/references/write-and-infer.md +0 -122
  32. package/bin/skills/clickzetta-data-science/references/zettapark-api.md +0 -156
  33. package/bin/skills/clickzetta-data-sharing/SKILL.md +0 -160
  34. package/bin/skills/clickzetta-data-sharing/references/share-ddl.md +0 -134
  35. package/bin/skills/clickzetta-dba-guide/SKILL.md +0 -540
  36. package/bin/skills/clickzetta-dw-modeling/SKILL.md +0 -259
  37. package/bin/skills/clickzetta-dw-modeling/references/modeling-patterns.md +0 -100
  38. package/bin/skills/clickzetta-dynamic-table/SKILL.md +0 -86
  39. package/bin/skills/clickzetta-dynamic-table/best-practices/dimension-table-join-guide.md +0 -257
  40. package/bin/skills/clickzetta-dynamic-table/best-practices/medallion-and-stream-patterns.md +0 -124
  41. package/bin/skills/clickzetta-dynamic-table/best-practices/non-partitioned-merge-into-warning.md +0 -96
  42. package/bin/skills/clickzetta-dynamic-table/best-practices/performance-optimization.md +0 -109
  43. package/bin/skills/clickzetta-dynamic-table/dt-creator/SKILL.md +0 -15
  44. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/dt-declaration-strategy.md +0 -185
  45. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/incremental-config-reference.md +0 -429
  46. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/refresh-history-guide.md +0 -268
  47. package/bin/skills/clickzetta-dynamic-table/dt-creator/references/sql-limitations.md +0 -80
  48. package/bin/skills/clickzetta-dynamic-table/dynamic-table-alter/SKILL.md +0 -190
  49. package/bin/skills/clickzetta-external-catalog/SKILL.md +0 -120
  50. package/bin/skills/clickzetta-external-catalog/references/external-catalog-ddl.md +0 -130
  51. package/bin/skills/clickzetta-external-function/SKILL.md +0 -203
  52. package/bin/skills/clickzetta-external-function/references/external-function-ddl.md +0 -171
  53. package/bin/skills/clickzetta-file-import-pipeline/SKILL.md +0 -117
  54. package/bin/skills/clickzetta-index-manager/SKILL.md +0 -140
  55. package/bin/skills/clickzetta-index-manager/references/bloomfilter-index.md +0 -67
  56. package/bin/skills/clickzetta-index-manager/references/index-management.md +0 -73
  57. package/bin/skills/clickzetta-index-manager/references/inverted-index.md +0 -80
  58. package/bin/skills/clickzetta-index-manager/references/vector-index.md +0 -81
  59. package/bin/skills/clickzetta-information-schema/SKILL.md +0 -367
  60. package/bin/skills/clickzetta-information-schema/references/instance-views-reference.md +0 -276
  61. package/bin/skills/clickzetta-information-schema/references/metering-views-reference.md +0 -137
  62. package/bin/skills/clickzetta-information-schema/references/views-reference.md +0 -271
  63. package/bin/skills/clickzetta-java-sdk/SKILL.md +0 -186
  64. package/bin/skills/clickzetta-java-sdk/references/bulkload.md +0 -163
  65. package/bin/skills/clickzetta-java-sdk/references/realtime.md +0 -212
  66. package/bin/skills/clickzetta-kafka-ingest-pipeline/SKILL.md +0 -531
  67. package/bin/skills/clickzetta-kafka-ingest-pipeline/references/kafka-pipe-syntax.md +0 -186
  68. package/bin/skills/clickzetta-lakehouse-connect/SKILL.md +0 -218
  69. package/bin/skills/clickzetta-lakehouse-connect/evals/evals.json +0 -35
  70. package/bin/skills/clickzetta-lakehouse-connect/references/config-file.md +0 -435
  71. package/bin/skills/clickzetta-lakehouse-connect/references/jdbc.md +0 -478
  72. package/bin/skills/clickzetta-lakehouse-connect/references/python-sdk.md +0 -225
  73. package/bin/skills/clickzetta-lakehouse-connect/references/sqlalchemy.md +0 -468
  74. package/bin/skills/clickzetta-lakehouse-connect/references/zettapark-session.md +0 -445
  75. package/bin/skills/clickzetta-manage-comments/SKILL.md +0 -219
  76. package/bin/skills/clickzetta-metadata-query/SKILL.md +0 -298
  77. package/bin/skills/clickzetta-metadata-query/references/show-desc-reference.md +0 -326
  78. package/bin/skills/clickzetta-monitoring/SKILL.md +0 -199
  79. package/bin/skills/clickzetta-monitoring/references/job-history-analysis.md +0 -97
  80. package/bin/skills/clickzetta-monitoring/references/show-jobs.md +0 -48
  81. package/bin/skills/clickzetta-oss-ingest-pipeline/SKILL.md +0 -402
  82. package/bin/skills/clickzetta-query-optimizer/SKILL.md +0 -156
  83. package/bin/skills/clickzetta-query-optimizer/references/explain.md +0 -56
  84. package/bin/skills/clickzetta-query-optimizer/references/hints-and-sortkey.md +0 -78
  85. package/bin/skills/clickzetta-query-optimizer/references/optimize.md +0 -65
  86. package/bin/skills/clickzetta-query-optimizer/references/result-cache.md +0 -49
  87. package/bin/skills/clickzetta-query-optimizer/references/show-jobs.md +0 -42
  88. package/bin/skills/clickzetta-realtime-sync-pipeline/SKILL.md +0 -197
  89. package/bin/skills/clickzetta-semantic-view/SKILL.md +0 -207
  90. package/bin/skills/clickzetta-semantic-view/references/semantic-view-reference.md +0 -167
  91. package/bin/skills/clickzetta-spark-flink-connector/SKILL.md +0 -92
  92. package/bin/skills/clickzetta-spark-flink-connector/references/flink.md +0 -147
  93. package/bin/skills/clickzetta-spark-flink-connector/references/spark.md +0 -132
  94. package/bin/skills/clickzetta-sql-pipeline-manager/SKILL.md +0 -353
  95. package/bin/skills/clickzetta-sql-pipeline-manager/evals/evals.json +0 -166
  96. package/bin/skills/clickzetta-sql-pipeline-manager/references/dynamic-table.md +0 -173
  97. package/bin/skills/clickzetta-sql-pipeline-manager/references/materialized-view.md +0 -129
  98. package/bin/skills/clickzetta-sql-pipeline-manager/references/pipe.md +0 -160
  99. package/bin/skills/clickzetta-sql-pipeline-manager/references/table-stream.md +0 -123
  100. package/bin/skills/clickzetta-sql-syntax-guide/SKILL.md +0 -172
  101. package/bin/skills/clickzetta-sql-syntax-guide/references/ddl-reference.md +0 -350
  102. package/bin/skills/clickzetta-sql-syntax-guide/references/dml-reference.md +0 -279
  103. package/bin/skills/clickzetta-sql-syntax-guide/references/dql-reference.md +0 -504
  104. package/bin/skills/clickzetta-sql-syntax-guide/references/functions-reference.md +0 -372
  105. package/bin/skills/clickzetta-sql-syntax-guide/references/migration-databricks.md +0 -260
  106. package/bin/skills/clickzetta-sql-syntax-guide/references/migration-snowflake.md +0 -382
  107. package/bin/skills/clickzetta-sql-syntax-guide/references/vs-snowflake.md +0 -346
  108. package/bin/skills/clickzetta-sql-syntax-guide/references/vs-spark.md +0 -229
  109. package/bin/skills/clickzetta-studio-overview/SKILL.md +0 -170
  110. package/bin/skills/clickzetta-studio-overview/references/studio-modules.md +0 -173
  111. package/bin/skills/clickzetta-table-stream-pipeline/SKILL.md +0 -155
  112. package/bin/skills/clickzetta-vcluster-manager/SKILL.md +0 -212
  113. package/bin/skills/clickzetta-vcluster-manager/references/vc-cache.md +0 -54
  114. package/bin/skills/clickzetta-vcluster-manager/references/vcluster-ddl.md +0 -150
  115. package/bin/skills/clickzetta-volume-manager/SKILL.md +0 -249
  116. package/bin/skills/clickzetta-volume-manager/references/volume-ddl.md +0 -194
  117. package/bin/skills/clickzetta-zettapark/SKILL.md +0 -248
  118. package/bin/skills/clickzetta-zettapark/references/zettapark-api.md +0 -283
@@ -1,172 +0,0 @@
1
- ---
2
- name: clickzetta-sql-syntax-guide
3
- description: |
4
- ClickZetta Lakehouse SQL 语法完整参考,以及从 Snowflake、Databricks、Spark SQL 迁移的
5
- 全面兼容性指南。覆盖 DDL/DML/DQL 完整语法、隐式类型转换规则、迁移陷阱速查。
6
- 帮助从 Snowflake 或 Databricks 迁移的用户快速找到正确语法,避免常见错误。
7
- 当用户说"Snowflake 迁移"、"Databricks 迁移"、"Spark SQL 迁移"、"语法差异"、
8
- "ClickZetta 怎么写"、"TARGET_LAG"、"QUALIFY"、"VARIANT"、"METADATA$ACTION"、
9
- "CREATE OR REPLACE"、"LISTAGG"、"IFF"、"DATEADD"、"FLATTEN"、"PIVOT"、
10
- "SQL 语法参考"、"数据类型"、"DATEDIFF"、"CHARINDEX"、"ZEROIFNULL"、
11
- "OBJECT_CONSTRUCT"、"ARRAY_SIZE"、"APPLY CHANGES INTO"、"ZORDER"、
12
- "WHEN NOT MATCHED BY SOURCE"、"WITH RECURSIVE"、"BEGIN TRANSACTION"、
13
- "隐式转换"、"implicit cast"、"日期写入"、"BOOLEAN 写入"、"UNION"、"INTERSECT"、
14
- "EXCEPT"、"集合运算"、"STRUCT AS"、"named_struct"、"JSON"、"半结构化"、
15
- "大宽表"、"VARIANT"、"JSON 字段"、"灵活 Schema"、"客户案例"时触发。
16
- Keywords: SQL syntax, DDL, DML, DQL, migration, Snowflake, Databricks, Spark SQL, compatibility
17
- ---
18
-
19
- # ClickZetta Lakehouse SQL 语法指南
20
-
21
- ## 参考文档索引
22
-
23
- | 文档 | 内容 |
24
- |---|---|
25
- | [Snowflake 迁移指南](references/migration-snowflake.md) | 对象映射、类型转换、语法差异、函数对照(完整) |
26
- | [Databricks 迁移指南](references/migration-databricks.md) | Delta Lake 差异、APPLY CHANGES、ZORDER 替代方案 |
27
- | [DDL 参考](references/ddl-reference.md) | Schema/Table/View/Index/Time Travel 完整语法 |
28
- | [DML 参考](references/dml-reference.md) | INSERT/UPDATE/DELETE/MERGE/COPY INTO + 类型转换规则 |
29
- | [DQL 参考](references/dql-reference.md) | SELECT/JOIN/窗口函数/CTE/JSON/ARRAY/LATERAL VIEW |
30
- | [函数参考](references/functions-reference.md) | 数值/字符串/日期/条件/聚合/向量函数完整列表 |
31
- | [vs Snowflake](references/vs-snowflake.md) | 差异汇总(含隐式转换规则表) |
32
- | [vs Spark SQL](references/vs-spark.md) | 数据类型映射 + 语法差异汇总 |
33
- | [JSON 实战指南](references/json-use-cases.md) | JSON 字段代替大宽表客户案例与最佳实践 |
34
-
35
- ---
36
-
37
- ## ⚠️ 最常见迁移陷阱(速查)
38
-
39
- | 场景 | Snowflake / Spark | ClickZetta 正确写法 |
40
- |---|---|---|
41
- | 替换普通表 | `CREATE OR REPLACE TABLE t` | `CREATE TABLE IF NOT EXISTS t`(普通表不支持 OR REPLACE;Dynamic Table / View / MV 支持) |
42
- | OR REPLACE + IF NOT EXISTS | `CREATE OR REPLACE TABLE IF NOT EXISTS t` | ❌ 两者不能同时使用,会报错 |
43
- | 动态表刷新 | `TARGET_LAG = '1 hour'` (SF) | `PROPERTIES ('target_lag' = '1 hour', 'warehouse' = 'vc')` |
44
- | Stream 元数据 | `METADATA$ACTION` | `__change_type` |
45
- | 对象存储导入 | `COPY INTO t FROM @stage` | `COPY INTO t FROM VOLUME v USING CSV` |
46
- | 窗口过滤 | `QUALIFY ROW_NUMBER() = 1` | `QUALIFY ROW_NUMBER() = 1` ✅ ClickZetta 也支持! |
47
- | 数组展开 | `LATERAL FLATTEN(input => arr)` (SF) | `LATERAL VIEW EXPLODE(arr)` |
48
- | 半结构化访问 | `data:key` (SF) | `data['key']` |
49
- | 列表聚合 | `LISTAGG(col, ',')` (SF) | `GROUP_CONCAT(col SEPARATOR ',')` |
50
- | 条件函数 | `IFF(cond, a, b)` (SF) | `IF(cond, a, b)` |
51
- | 日期加减 | `DATEADD(day, 7, dt)` (SF) | `DATEADD(day, 7, dt)` ✅ 也支持;或用 `DATE_ADD(dt, 7)` |
52
- | DATEDIFF 顺序 | `DATEDIFF(day, start, end)` (SF) | `DATEDIFF(day, start, end)` ✅ 三参数形式也支持;或 `DATEDIFF(end, start)` 两参数形式(返回天数) |
53
- | 查找子串位置 | `CHARINDEX(sub, s)` (SF) | `INSTR(s, sub)` ← 参数顺序相反! |
54
- | 不区分大小写匹配 | `ILIKE` (SF) | `ILIKE` ✅ ClickZetta 也支持! |
55
- | 差集运算 | `MINUS` (Oracle/DB2) | `MINUS` ✅ ClickZetta 也支持! |
56
- | 递归 CTE | `WITH RECURSIVE` (SF/Databricks) | ❌ 不支持,需用 Python/ZettaPark 替代 |
57
- | **⚠️ 时间戳字符串写入** | `INSERT INTO t VALUES (1, '2026-05-01 10:00:00')` | ❌ **报错**:必须显式转换 `CAST('2026-05-01 10:00:00' AS TIMESTAMP)` 或 `TIMESTAMP '2026-05-01 10:00:00'` |
58
- | 集合运算 | `UNION` / `UNION ALL` / `INTERSECT` / `EXCEPT` | ✅ 全部支持 |
59
- | 事务 | `BEGIN; COMMIT; ROLLBACK;` | ❌ 不支持,用 MERGE 实现原子操作 |
60
- | MERGE 不匹配删除 | `WHEN NOT MATCHED BY SOURCE THEN DELETE` | ❌ 不支持,需两步:MERGE + DELETE |
61
- | Delta ZORDER | `OPTIMIZE t ZORDER BY (col)` | `OPTIMIZE t`(只做小文件合并,无 ZORDER) |
62
- | STRUCT 命名字段 | `STRUCT(1 AS id, 'Alice' AS name)` | `named_struct('id', 1, 'name', 'Alice')` ✅ |
63
- | SEQUENCE 对象 | `CREATE SEQUENCE seq` | ❌ 不支持,用 `IDENTITY(1)` 列替代 |
64
- | IDENTITY 列类型 | `id INT IDENTITY` | `id BIGINT IDENTITY`(IDENTITY 只支持 BIGINT,INT/SMALLINT 会报错) |
65
- | 当前时间函数 | `NOW()` | `NOW()` ✅ ClickZetta 也支持!也可用 `CURRENT_TIMESTAMP()` |
66
- | 布尔类型名称 | `BOOL` | `BOOLEAN`(ClickZetta 不支持 BOOL 简写) |
67
- | 字符串类型 | `VARCHAR(n)` | 推荐用 `STRING`(无长度限制,最大 16MB);`VARCHAR(n)` 也支持但不推荐 |
68
- | 数值类型 | `NUMBER(p,s)` (SF) | `DECIMAL(p,s)` |
69
- | 半结构化类型 | `VARIANT` (SF) | `JSON` |
70
- | 行数限制 | `SELECT TOP 10` (SF) | `SELECT ... LIMIT 10` |
71
- | NULL转0 | `ZEROIFNULL(x)` (SF) | `COALESCE(x, 0)` |
72
- | 0转NULL | `NULLIFZERO(x)` (SF) | `NULLIF(x, 0)` |
73
- | 对象聚合 | `OBJECT_AGG(k, v)` (SF) | `MAP_AGG(k, v)` |
74
- | 数组大小 | `ARRAY_SIZE(arr)` (SF) | `SIZE(arr)` |
75
- | PIVOT | 原生 PIVOT 语法 (SF) | `CASE WHEN` 手动实现 |
76
- | 临时表 | `CREATE TEMPORARY TABLE` (SF) | 不支持,用 CTE 替代 |
77
- | 日期字符串写入 | `INSERT ... VALUES (..., '2024-01-15', ...)` | `CAST('2024-01-15' AS DATE)` 或 `DATE '2024-01-15'` 或 `TO_DATE(...)` |
78
- | 时间字符串写入 | `INSERT ... VALUES (..., '2024-01-15 12:00:00', ...)` | `CAST(... AS TIMESTAMP)` 或 `TIMESTAMP '...'` 或 `TO_TIMESTAMP(...)` |
79
- | BOOLEAN 写入 | `INSERT ... VALUES (..., 'true', ...)` 或 `..., 1, ...` | `TRUE` / `FALSE` 或 `CAST(1 AS BOOLEAN)` |
80
- | JSON 写入 | `INSERT ... VALUES (..., '{"k":1}', ...)` | `PARSE_JSON('{"k":1}')` 或 `CAST(... AS JSON)` |
81
- | 字符串写入数字列 | `INSERT ... VALUES (..., '123', ...)` | `CAST('123' AS INT)` |
82
- | UPDATE 同样限制 | `UPDATE t SET dt = '2024-01-01'` | `UPDATE t SET dt = CAST('2024-01-01' AS DATE)` |
83
- | WHERE 中可以 | 不适用 | `WHERE dt = '2024-01-01'` ✅ WHERE 中字符串可隐式比较 |
84
- | 索引语法关键字 | `USING BLOOM_FILTER` | `BLOOMFILTER`(无 USING);向量/倒排建表内联时用 `USING VECTOR` / `USING INVERTED` |
85
- | DROP INDEX | `DROP INDEX idx ON table` | `DROP INDEX idx`(无 ON table) |
86
- | TRUNCATE IF EXISTS | `TRUNCATE TABLE IF EXISTS t` | `TRUNCATE TABLE IF EXISTS t` ✅ ClickZetta 也支持! |
87
- | MERGE 多 MATCHED 顺序 | DELETE 可在 UPDATE 前 | UPDATE 必须在 DELETE 之前 |
88
- | 同义词 | `CREATE SYNONYM s FOR t` (Oracle) | `CREATE SYNONYM s FOR TABLE t` ✅ 支持 TABLE/VOLUME/FUNCTION 三种对象 |
89
-
90
- ---
91
-
92
- ## 数据类型速查
93
-
94
- ```sql
95
- -- 数值
96
- TINYINT / SMALLINT / INT / BIGINT
97
- FLOAT / DOUBLE
98
- DECIMAL(p, s) -- 精确数值(Snowflake 用 NUMBER)
99
-
100
- -- 字符串
101
- STRING -- 推荐,无长度限制
102
- VARCHAR(n) -- 最大 65533 字符
103
- CHAR(n) -- 定长,1-255
104
-
105
- -- 时间
106
- DATE -- YYYY-MM-DD
107
- TIMESTAMP -- 带本地时区(≈ Snowflake TIMESTAMP_LTZ)
108
- TIMESTAMP_NTZ -- 无时区(同 Snowflake TIMESTAMP_NTZ)
109
-
110
- -- 布尔 / 二进制
111
- BOOLEAN / BINARY
112
-
113
- -- 半结构化
114
- JSON -- 替代 Snowflake VARIANT
115
- ARRAY<T> -- 需指定元素类型,如 ARRAY<INT>
116
- MAP<K, V> -- 如 MAP<STRING, INT>
117
- STRUCT<f1:T1, f2:T2> -- 结构体
118
-
119
- -- AI 专用
120
- VECTOR(FLOAT, 1024) -- 向量类型(ClickZetta 特有)
121
- ```
122
-
123
- ---
124
-
125
- ## ClickZetta 特有对象(Snowflake/Spark 无对应)
126
-
127
- ```sql
128
- -- 计算集群
129
- CREATE VCLUSTER my_vc VCLUSTER_TYPE = ANALYTICS VCLUSTER_SIZE = 4;
130
- USE VCLUSTER my_vc;
131
-
132
- -- 动态表(增量计算)
133
- CREATE DYNAMIC TABLE sales_daily
134
- REFRESH INTERVAL 5 MINUTE VCLUSTER default_ap
135
- AS SELECT DATE(created_at) AS dt, SUM(amount) AS total FROM orders GROUP BY 1;
136
-
137
- -- Table Stream(CDC)
138
- CREATE TABLE STREAM orders_stream ON TABLE orders
139
- WITH PROPERTIES ('TABLE_STREAM_MODE' = 'STANDARD');
140
- -- 元数据字段:__change_type(INSERT/UPDATE_BEFORE/UPDATE_AFTER/DELETE)
141
-
142
- -- Pipe(持续导入)
143
- CREATE PIPE oss_pipe
144
- AS COPY INTO orders FROM VOLUME my_volume USING CSV OPTIONS('header'='true');
145
-
146
- -- Volume(对象存储)
147
- CREATE EXTERNAL VOLUME my_vol
148
- LOCATION 'oss://bucket/path'
149
- USING CONNECTION my_oss_conn;
150
-
151
- -- Share(跨实例数据共享)
152
- CREATE SHARE my_share;
153
- GRANT SELECT, READ METADATA ON TABLE public.orders TO SHARE my_share;
154
-
155
- -- Synonym(同义词,为对象创建别名)
156
- CREATE SYNONYM my_orders FOR TABLE other_schema.orders;
157
- CREATE SYNONYM my_vol FOR VOLUME other_schema.data_volume;
158
- CREATE SYNONYM my_func FOR FUNCTION other_schema.udf_name;
159
- DROP SYNONYM my_orders FOR TABLE;
160
- SHOW SYNONYMS;
161
-
162
- -- Time Travel
163
- SELECT * FROM orders TIMESTAMP AS OF '2024-01-01 00:00:00';
164
- RESTORE TABLE orders TO TIMESTAMP AS OF '2024-01-01 00:00:00';
165
- UNDROP TABLE orders;
166
-
167
- -- 向量检索
168
- CREATE TABLE docs (id INT, vec VECTOR(FLOAT, 1024),
169
- INDEX vec_idx (vec) USING VECTOR PROPERTIES ("distance.function"="cosine_distance"));
170
- SELECT id, cosine_distance(vec, CAST('[0.1,0.2,...]' AS VECTOR(1024))) AS dist
171
- FROM docs ORDER BY dist LIMIT 10;
172
- ```
@@ -1,350 +0,0 @@
1
- # DDL 完整语法参考
2
-
3
- > 基于 ClickZetta Lakehouse 产品文档整理,含与 Snowflake / Spark SQL 的差异标注
4
-
5
- ---
6
-
7
- ## SCHEMA 操作
8
-
9
- ```sql
10
- -- 创建
11
- CREATE SCHEMA IF NOT EXISTS my_schema COMMENT '说明';
12
-
13
- -- 修改
14
- ALTER SCHEMA my_schema RENAME TO new_schema;
15
- ALTER SCHEMA my_schema SET COMMENT '新注释';
16
-
17
- -- 删除(级联删除所有对象)
18
- DROP SCHEMA IF EXISTS my_schema;
19
-
20
- -- 查看
21
- SHOW SCHEMAS;
22
- SHOW SCHEMAS EXTENDED; -- 含 type 列(MANAGED/EXTERNAL)
23
- SHOW SCHEMAS LIKE 'sales%';
24
- SHOW SCHEMAS WHERE schema_name = 'public';
25
-
26
- -- 切换
27
- USE SCHEMA my_schema;
28
- USE my_schema; -- SCHEMA 关键字可省略
29
- ```
30
-
31
- **与 Snowflake 差异:**
32
- - Snowflake 用 `USE DATABASE` + `USE SCHEMA`;ClickZetta 无 DATABASE 层,直接 `USE SCHEMA`
33
- - Snowflake 支持 `CREATE OR REPLACE SCHEMA`;ClickZetta 不支持,用 `IF NOT EXISTS`
34
-
35
- ---
36
-
37
- ## TABLE 操作
38
-
39
- ### CREATE TABLE
40
-
41
- ```sql
42
- -- 基本建表
43
- CREATE TABLE IF NOT EXISTS orders (
44
- id BIGINT,
45
- customer_id INT,
46
- amount DECIMAL(18, 2) NOT NULL,
47
- status STRING DEFAULT 'pending',
48
- created_at TIMESTAMP,
49
- tags ARRAY<STRING>,
50
- meta JSON,
51
- COMMENT '订单表'
52
- );
53
-
54
- -- 主键表(ENABLE VALIDATE RELY:SQL写入也去重)
55
- CREATE TABLE pk_orders (
56
- id BIGINT PRIMARY KEY,
57
- amount DECIMAL(18, 2)
58
- );
59
-
60
- -- 主键表(DISABLE NOVALIDATE RELY:仅实时写入去重,SQL写入不去重)
61
- CREATE TABLE cdc_orders (
62
- id BIGINT PRIMARY KEY DISABLE NOVALIDATE RELY,
63
- amount DECIMAL(18, 2)
64
- );
65
-
66
- -- 自增列(仅 BIGINT,不保证连续)
67
- CREATE TABLE auto_id_table (
68
- id BIGINT IDENTITY(1), -- 从1开始
69
- col STRING
70
- );
71
-
72
- -- 生成列(确定性表达式,不可手动插入)
73
- CREATE TABLE orders_with_year (
74
- id BIGINT,
75
- created_at TIMESTAMP,
76
- year INT GENERATED ALWAYS AS (YEAR(created_at))
77
- );
78
-
79
- -- 默认值(支持非确定性函数)
80
- CREATE TABLE t_default (
81
- id INT,
82
- created_at TIMESTAMP DEFAULT current_timestamp(),
83
- status STRING DEFAULT 'active',
84
- score DOUBLE DEFAULT random()
85
- );
86
-
87
- -- 分区表(Iceberg 隐藏分区)
88
- CREATE TABLE orders_partitioned (
89
- id BIGINT,
90
- amount DECIMAL(18, 2),
91
- created_at TIMESTAMP
92
- )
93
- PARTITIONED BY (days(created_at)); -- 按天分区
94
-
95
- -- 分区转换函数
96
- -- years(col) months(col) days(col) hours(col)
97
- -- bucket(N, col) truncate(col, W)
98
-
99
- -- 分桶表
100
- CREATE TABLE orders_bucketed (
101
- id BIGINT,
102
- customer_id INT,
103
- amount DECIMAL(18, 2)
104
- )
105
- CLUSTERED BY (customer_id)
106
- SORTED BY (id ASC)
107
- INTO 16 BUCKETS;
108
-
109
- -- 数据保留周期
110
- CREATE TABLE orders (id BIGINT)
111
- PROPERTIES ('data_lifecycle' = '30'); -- 保留30天
112
-
113
- -- CTAS(从查询建表)
114
- CREATE TABLE orders_copy AS
115
- SELECT * FROM orders WHERE status = 'completed';
116
-
117
- -- 外部表(映射对象存储)
118
- CREATE EXTERNAL TABLE ext_orders (
119
- id BIGINT,
120
- amount DECIMAL(18, 2)
121
- )
122
- LOCATION 'oss://bucket/orders/'
123
- STORED AS PARQUET;
124
- ```
125
-
126
- **与 Snowflake 差异:**
127
- - Snowflake `CREATE OR REPLACE TABLE` → ClickZetta `CREATE TABLE IF NOT EXISTS`
128
- - Snowflake `CLUSTER BY (col)` → ClickZetta `CLUSTERED BY (col) INTO N BUCKETS`
129
- - Snowflake `AUTOINCREMENT` → ClickZetta `IDENTITY[(seed)]`
130
- - Snowflake `TRANSIENT TABLE` → ClickZetta 无对应(用 `data_lifecycle` 控制保留期)
131
- - Snowflake `TEMPORARY TABLE` → ClickZetta 无临时表概念
132
- - Snowflake `COPY GRANTS` → ClickZetta 不支持
133
-
134
- **与 Spark SQL 差异:**
135
- - Spark `USING PARQUET` → ClickZetta 不需要(默认 Parquet)
136
- - Spark `TBLPROPERTIES` → ClickZetta `PROPERTIES`
137
- - Spark `LOCATION` 外部表语法基本相同
138
-
139
- ### ALTER TABLE
140
-
141
- ```sql
142
- -- 重命名
143
- ALTER TABLE orders RENAME TO orders_v2;
144
-
145
- -- 注释
146
- ALTER TABLE orders SET COMMENT '新注释';
147
-
148
- -- 数据保留周期
149
- ALTER TABLE orders SET PROPERTIES ('data_retention_days' = '7');
150
-
151
- -- 添加列
152
- ALTER TABLE orders ADD COLUMN region STRING AFTER status;
153
- ALTER TABLE orders ADD COLUMN region STRING FIRST;
154
-
155
- -- 添加复杂类型嵌套字段
156
- ALTER TABLE t ADD COLUMN address.zip STRING; -- STRUCT 嵌套
157
- ALTER TABLE t ADD COLUMN items.ELEMENT.price DOUBLE; -- ARRAY<STRUCT> 嵌套
158
-
159
- -- 修改列类型(有限制)
160
- ALTER TABLE orders ALTER COLUMN amount TYPE DOUBLE;
161
-
162
- -- 重命名列
163
- ALTER TABLE orders RENAME COLUMN old_col TO new_col;
164
-
165
- -- 删除列
166
- ALTER TABLE orders DROP COLUMN unnecessary_col;
167
-
168
- -- 修改列注释
169
- ALTER TABLE orders ALTER COLUMN amount COMMENT '订单金额';
170
-
171
- -- 添加索引(含 ARRAY/JSON 列的表必须单独添加)
172
- -- ⚠️ 索引语法:BLOOMFILTER(不是 USING BLOOM_FILTER)
173
- CREATE BLOOMFILTER INDEX IF NOT EXISTS id_bf ON TABLE orders(id);
174
- CREATE BLOOMFILTER INDEX IF NOT EXISTS name_bf ON TABLE orders(name)
175
- PROPERTIES ('analyzer' = 'ngram', 'n' = '3'); -- ngram 分词
176
-
177
- -- 倒排索引
178
- CREATE INVERTED INDEX IF NOT EXISTS content_inv ON TABLE articles(content);
179
-
180
- -- 向量索引(建表时内联)
181
- -- 见 CREATE TABLE 示例
182
-
183
- -- 删除索引(⚠️ 不需要 ON table_name)
184
- DROP INDEX IF EXISTS id_bf;
185
- DROP INDEX id_bf;
186
- ```
187
-
188
- **与 Snowflake 差异:**
189
- - Snowflake `ALTER TABLE ... ADD COLUMN` 只能加到末尾;ClickZetta 支持 `FIRST/AFTER/BEFORE`
190
- - Snowflake 不支持 `DROP COLUMN`(需重建表);ClickZetta 支持
191
- - Snowflake 无 BLOOM_FILTER/INVERTED/VECTOR 索引
192
-
193
- ### DROP / TRUNCATE TABLE
194
-
195
- ```sql
196
- -- 删除表(可 UNDROP 恢复)
197
- DROP TABLE IF EXISTS orders;
198
- DROP TABLE my_schema.orders;
199
-
200
- -- 清空表(保留结构)
201
- TRUNCATE TABLE orders;
202
- TRUNCATE TABLE IF EXISTS orders; -- ✅ 支持 IF EXISTS
203
-
204
- -- 清空指定分区
205
- TRUNCATE TABLE orders PARTITION (dt = '2024-01-01');
206
- TRUNCATE TABLE orders PARTITION (dt > '2024-01-01');
207
- TRUNCATE TABLE orders PARTITION (dt >= '2024-01-01' AND dt < '2024-02-01');
208
- ```
209
-
210
- **与 Snowflake 差异:**
211
- - Snowflake `TRUNCATE TABLE` 不支持分区条件;ClickZetta 支持
212
- - Snowflake `DROP TABLE ... PURGE` 立即删除;ClickZetta 删除后在保留期内可 UNDROP
213
-
214
- ---
215
-
216
- ## VIEW 操作
217
-
218
- ```sql
219
- -- 创建视图
220
- CREATE VIEW IF NOT EXISTS order_summary AS
221
- SELECT customer_id, COUNT(*) AS cnt, SUM(amount) AS total
222
- FROM orders GROUP BY customer_id;
223
-
224
- -- 替换视图(ClickZetta 支持 OR REPLACE,与 Snowflake 相同)
225
- CREATE OR REPLACE VIEW order_summary AS
226
- SELECT customer_id, SUM(amount) AS total FROM orders GROUP BY customer_id;
227
-
228
- -- 带列别名和注释
229
- CREATE VIEW order_summary (cust_id COMMENT '客户ID', total COMMENT '总金额')
230
- COMMENT '订单汇总视图'
231
- AS SELECT customer_id, SUM(amount) FROM orders GROUP BY 1;
232
-
233
- -- 删除
234
- DROP VIEW IF EXISTS order_summary;
235
-
236
- -- 查看
237
- SHOW TABLES WHERE is_view = true;
238
- SHOW TABLES IN my_schema WHERE is_view = true;
239
- ```
240
-
241
- **注意:** ClickZetta 的 `CREATE OR REPLACE VIEW` 与 Snowflake 相同,但 `CREATE OR REPLACE TABLE` 不支持。
242
-
243
- ---
244
-
245
- ## INDEX 操作
246
-
247
- ```sql
248
- -- 查看索引
249
- SHOW INDEX FROM table_name;
250
- SHOW INDEX FROM my_schema.table_name;
251
-
252
- -- 查看索引详情
253
- DESC INDEX index_name;
254
- DESC INDEX EXTENDED index_name;
255
-
256
- -- 构建存量数据索引(仅向量索引和倒排索引,不支持 Bloom Filter)
257
- BUILD INDEX index_name ON table_name;
258
- BUILD INDEX index_name ON table_name WHERE partition_col = '2024-01-01';
259
- ```
260
-
261
- ---
262
-
263
- ## 查看对象信息
264
-
265
- ```sql
266
- -- 表结构
267
- DESC table_name;
268
- DESC EXTENDED table_name; -- 含大小、记录数等扩展信息
269
- DESCRIBE TABLE table_name; -- 同 DESC
270
-
271
- -- 列信息
272
- SHOW COLUMNS IN table_name;
273
- SHOW COLUMNS FROM table_name IN schema_name;
274
-
275
- -- 建表语句
276
- SHOW CREATE TABLE table_name;
277
-
278
- -- 表列表
279
- SHOW TABLES;
280
- SHOW TABLES IN my_schema;
281
- SHOW TABLES LIKE 'order%';
282
- SHOW TABLES WHERE is_view = false AND is_materialized_view = false;
283
- SHOW TABLES WHERE is_dynamic = true;
284
- SHOW TABLES WHERE is_external = true;
285
-
286
- -- 分区信息
287
- SHOW PARTITIONS table_name;
288
- SHOW PARTITIONS EXTENDED table_name; -- 含文件数、大小、修改时间
289
- SHOW PARTITIONS table_name PARTITION (dt = '2024-01-01');
290
- SHOW PARTITIONS table_name WHERE total_rows > 1000;
291
-
292
- -- 历史版本
293
- DESC HISTORY table_name;
294
- SHOW TABLES HISTORY; -- 含已删除的表
295
- ```
296
-
297
- ---
298
-
299
- ## SYNONYM(同义词)操作
300
-
301
- ```sql
302
- -- 为表创建同义词(跨 Schema 访问)
303
- CREATE SYNONYM my_orders FOR TABLE other_schema.orders;
304
-
305
- -- 为 Volume 创建同义词
306
- CREATE SYNONYM my_vol FOR VOLUME other_schema.data_volume;
307
-
308
- -- 为函数创建同义词
309
- CREATE SYNONYM my_func FOR FUNCTION other_schema.udf_name;
310
-
311
- -- 查看同义词
312
- SHOW SYNONYMS;
313
- SHOW SYNONYMS IN my_schema;
314
- SHOW SYNONYMS LIKE 'my_%';
315
-
316
- -- 删除同义词(需指定对象类型)
317
- DROP SYNONYM my_orders FOR TABLE;
318
- DROP SYNONYM my_vol FOR VOLUME;
319
- DROP SYNONYM my_func FOR FUNCTION;
320
- ```
321
-
322
- > 同义词支持的对象类型:TABLE(含普通表、Table Stream、物化视图、动态表)、VOLUME、FUNCTION。
323
- > 使用场景:跨 Schema 访问、数据一致性维护、应用层解耦。
324
-
325
- ---
326
-
327
- ## Time Travel & 数据恢复
328
-
329
- ```sql
330
- -- 查询历史版本
331
- SELECT * FROM orders TIMESTAMP AS OF '2024-01-01 00:00:00';
332
- SELECT * FROM orders TIMESTAMP AS OF CURRENT_TIMESTAMP() - INTERVAL 12 HOURS;
333
- SELECT * FROM orders TIMESTAMP AS OF CAST('2024-01-01' AS TIMESTAMP);
334
-
335
- -- 恢复表到历史版本(表未删除)
336
- RESTORE TABLE orders TO TIMESTAMP AS OF '2024-01-01 00:00:00';
337
-
338
- -- 恢复已删除的表
339
- UNDROP TABLE orders;
340
- UNDROP TABLE my_schema.orders;
341
-
342
- -- 设置保留周期(0-90天,默认1天)
343
- ALTER TABLE orders SET PROPERTIES ('data_retention_days' = '7');
344
- ```
345
-
346
- **与 Snowflake 差异:**
347
- - Snowflake `AT (TIMESTAMP => ...)` → ClickZetta `TIMESTAMP AS OF ...`
348
- - Snowflake `BEFORE (STATEMENT => ...)` → ClickZetta 不支持按 statement_id 回溯
349
- - Snowflake `UNDROP TABLE` → ClickZetta 相同
350
- - Snowflake 默认保留 1 天(Enterprise 90 天);ClickZetta 默认 1 天,最长 90 天