@clickzetta/cz-cli-linux-x64 0.3.4 → 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 -457
  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 -112
  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 -156
  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 -639
  67. package/bin/skills/clickzetta-kafka-ingest-pipeline/references/kafka-pipe-syntax.md +0 -324
  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 -427
  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 -379
  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 -185
  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 -222
  99. package/bin/skills/clickzetta-sql-pipeline-manager/references/table-stream.md +0 -125
  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 -206
  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 -292
  116. package/bin/skills/clickzetta-volume-manager/references/volume-ddl.md +0 -199
  117. package/bin/skills/clickzetta-zettapark/SKILL.md +0 -248
  118. package/bin/skills/clickzetta-zettapark/references/zettapark-api.md +0 -283
@@ -1,165 +0,0 @@
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
- - clickzetta-studio-mcp 工具可用(`LH_execute_query`、`create_task`、`save_integration_task` 等)
27
-
28
- ## 数据导入方式决策树
29
-
30
- ### 步骤 1:确认数据源类型和需求
31
-
32
- 向用户收集以下信息:
33
-
34
- 1. **数据源类型**:Kafka / 对象存储(OSS/S3/COS) / 关系型数据库(MySQL/PostgreSQL/SQL Server) / 本地文件 / URL/Web 文件 / Java SDK / ZettaPark
35
- 2. **实时性要求**:实时(秒级延迟)/ 准实时(分钟级)/ 离线批量(小时/天级)
36
- 3. **同步范围**:单表 / 多表 / 整库
37
- 4. **是否需要持续同步**:一次性导入 / 持续增量同步
38
- 5. **是否需要 CDC(变更数据捕获)**:是 / 否
39
-
40
- ### 步骤 2:根据决策矩阵推荐方案
41
-
42
- | 数据源 | 实时性 | 同步范围 | 推荐方式 | 对应 Skill |
43
- |--------|--------|---------|---------|-----------|
44
- | Kafka | 实时/准实时 | 单 topic | Kafka PIPE 持续导入(SQL) | `clickzetta-kafka-ingest-pipeline` |
45
- | Kafka | 实时 | 多 topic | Studio 实时同步 | `clickzetta-realtime-sync-pipeline` |
46
- | 对象存储 (OSS/S3/COS) | 准实时/批量 | 文件持续到达 | PIPE 持续导入 | `clickzetta-oss-ingest-pipeline` |
47
- | 对象存储 | 一次性 | 批量文件 | COPY INTO 命令 | `clickzetta-file-import-pipeline`(COPY INTO 部分) |
48
- | MySQL/PostgreSQL/SQL Server | 实时 CDC | 单表 | Studio 实时同步 | `clickzetta-realtime-sync-pipeline` |
49
- | MySQL/PostgreSQL/SQL Server | 实时 CDC | 多表/整库 | Studio 多表实时同步 | `clickzetta-cdc-sync-pipeline` |
50
- | MySQL/PostgreSQL/SQL Server | 离线批量 | 单表 | Studio 离线同步 | `clickzetta-batch-sync-pipeline` |
51
- | MySQL/PostgreSQL/SQL Server | 离线批量 | 多表 | Studio 多表离线同步 | `clickzetta-batch-sync-pipeline` |
52
- | 本地文件 / URL | 一次性 | 单文件/多文件 | URL 下载 + COPY INTO | `clickzetta-file-import-pipeline` |
53
- | 流式增量计算 | 准实时 | 表变更驱动 | Dynamic Table + Stream | `clickzetta-incremental-compute-pipeline` |
54
- | Java 应用 | 实时/批量 | 程序写入 | Java SDK | (见下方 SDK 导入指引) |
55
- | Python/ZettaPark | 批量 | DataFrame | ZettaPark save_as_table | (见下方 SDK 导入指引) |
56
-
57
- ### 步骤 3:路由到专项 Skill 或直接执行
58
-
59
- 根据推荐方案,执行以下路由逻辑:
60
-
61
- **有对应专项 Skill 的场景** → 告知用户推荐方案,引导使用对应 Skill:
62
- - `clickzetta-kafka-ingest-pipeline`:Kafka PIPE 管道搭建
63
- - `clickzetta-oss-ingest-pipeline`:对象存储 PIPE 管道搭建
64
- - `clickzetta-batch-sync-pipeline`:Studio 离线同步任务
65
- - `clickzetta-realtime-sync-pipeline`:Studio 实时同步任务
66
- - `clickzetta-cdc-sync-pipeline`:Studio 多表实时同步(CDC)
67
- - `clickzetta-incremental-compute-pipeline`:Dynamic Table + Stream 增量计算管道
68
- - `clickzetta-file-import-pipeline`:URL/文件下载导入
69
- - `clickzetta-table-stream-pipeline`:Table Stream 变更数据捕获
70
-
71
- **无专项 Skill 的简单场景** → 直接执行:
72
-
73
- #### SQL INSERT 导入(小数据量)
74
- ```sql
75
- -- 使用 LH_execute_query 执行
76
- INSERT INTO schema_name.table_name (col1, col2, col3)
77
- VALUES ('val1', 'val2', 'val3');
78
- ```
79
-
80
- #### COPY INTO 快速导入(从 Volume)
81
- ```sql
82
- -- 1. 确认 Volume 中有文件
83
- SHOW VOLUME DIRECTORY volume_name;
84
-
85
- -- 2. 执行 COPY INTO
86
- COPY INTO schema_name.table_name
87
- FROM VOLUME volume_name
88
- USING CSV
89
- OPTIONS('header' = 'true');
90
- ```
91
-
92
- #### Java SDK 导入指引
93
- 提供 Java SDK 的关键配置信息:
94
- - Maven 依赖坐标
95
- - 连接配置(endpoint、workspace、schema、vcluster)
96
- - 批量写入 API:`BulkloadWriter`
97
- - 实时写入 API:`RealtimeWriter`
98
- - 建议用户参考官方文档:`comprehensive_guide_to_ingesting_javasdk_buckload_realtime`
99
-
100
- #### ZettaPark (Python) 导入指引
101
- - `INSERT` 方式:`session.sql("INSERT INTO ...")`
102
- - `save_as_table` 方式:`df.write.save_as_table("table_name")`
103
- - 建议用户参考官方文档:`comprehensive_guide_to_ingesting_zettapark_save_as_table`
104
-
105
- ## 数据入仓 vs 数据入湖
106
-
107
- | 维度 | 数据入仓 | 数据入湖 |
108
- |------|---------|---------|
109
- | 目标 | Lakehouse 托管表 | 用户 Volume(对象存储) |
110
- | 格式 | 自动转为内部列式格式 | 保持原始文件格式 |
111
- | 查询性能 | 高(列式存储 + 索引) | 较低(需扫描原始文件) |
112
- | 适用场景 | 分析查询、BI 报表、数据仓库 | 数据暂存、原始数据归档、跨系统共享 |
113
- | 常用方式 | Studio 同步、PIPE、COPY INTO、SDK | PUT 文件、Python 脚本上传 |
114
-
115
- ## 示例
116
-
117
- ### 示例 1:用户不确定导入方式
118
-
119
- 用户说:"我有一个 MySQL 数据库,想把里面的订单表实时同步到 Lakehouse"
120
-
121
- 路由逻辑:
122
- 1. 数据源:MySQL(关系型数据库)
123
- 2. 实时性:实时
124
- 3. 同步范围:单表
125
- 4. 需要 CDC:是(实时同步意味着需要捕获变更)
126
- → 推荐:Studio 实时同步
127
- → 路由到 `clickzetta-realtime-sync-pipeline` Skill
128
-
129
- ### 示例 2:多种数据源混合场景
130
-
131
- 用户说:"我们有 Kafka 的用户行为日志,还有 MySQL 的业务数据,都要导入 Lakehouse"
132
-
133
- 路由逻辑:
134
- 1. Kafka 用户行为日志 → `clickzetta-kafka-ingest-pipeline`(PIPE 持续导入)
135
- 2. MySQL 业务数据 → 确认实时性需求:
136
- - 实时 → `clickzetta-realtime-sync-pipeline` 或 `clickzetta-cdc-sync-pipeline`
137
- - 离线 → `clickzetta-batch-sync-pipeline`
138
- → 分别引导到对应 Skill
139
-
140
- ### 示例 3:简单的一次性文件导入
141
-
142
- 用户说:"我有一个 CSV 文件要导入"
143
-
144
- 路由逻辑:
145
- 1. 数据源:本地文件
146
- 2. 一次性导入
147
- → 路由到 `clickzetta-file-import-pipeline` Skill(支持文件上传 + COPY INTO)
148
-
149
- ## 错误处理
150
-
151
- | 场景 | 处理方式 |
152
- |------|---------|
153
- | 用户无法确定数据源类型 | 询问数据当前存储位置(哪个系统/服务),帮助判断 |
154
- | 用户需求跨多种导入方式 | 拆分为多个独立的导入任务,分别路由到对应 Skill |
155
- | 推荐的 Skill 尚未创建 | 提供该导入方式的基本步骤和关键 SQL/API,引导用户参考官方文档 |
156
- | 用户的云环境不支持某种连接 | 使用 `LH_show_object_list`(object_type=CONNECTIONS)检查可用连接类型,推荐替代方案 |
157
- | 数据量极大(TB 级) | 建议分批导入,优先使用 PIPE 或 Studio 同步任务(支持断点续传) |
158
-
159
- ## 注意事项
160
-
161
- - 本 Skill 是路由入口,不直接执行复杂的 pipeline 搭建,而是引导到专项 Skill
162
- - 对于简单场景(SQL INSERT、单次 COPY INTO),可以直接在本 Skill 中完成
163
- - 推荐方案时需考虑用户的云环境(阿里云/腾讯云/AWS),不同环境支持的连接类型可能不同
164
- - 使用 `LH_show_object_list`(object_type=VCLUSTERS)确认可用的虚拟集群,同步任务需要 SYNC 类型的 VCluster
165
- - 数据入仓是最常见的场景,数据入湖主要用于原始数据暂存或跨系统共享
@@ -1,211 +0,0 @@
1
- ---
2
- name: clickzetta-data-lifecycle
3
- description: |
4
- 管理 ClickZetta Lakehouse 表的数据生命周期(TTL)和 Time Travel 数据保留周期。
5
- 数据生命周期:自动回收超过指定天数未更新的数据(表或分区),释放存储空间。
6
- Time Travel 保留周期:控制历史版本数据保留时长,支持时间点查询和数据恢复。
7
- 当用户说"设置生命周期"、"数据自动清理"、"TTL"、"data_lifecycle"、
8
- "表数据过期"、"自动回收数据"、"设置数据保留"、"data_retention_days"、
9
- "Time Travel 保留周期"、"查看哪些表有生命周期"、"批量设置生命周期"、
10
- "生命周期到期"、"数据生命周期管理"时触发。
11
- Keywords: TTL, data retention, time travel, lifecycle, auto-purge, storage
12
- ---
13
-
14
- # ClickZetta 数据生命周期管理
15
-
16
- 阅读 [references/lifecycle-reference.md](references/lifecycle-reference.md) 了解完整语法。
17
-
18
- ## 两个独立概念
19
-
20
- | 概念 | 属性键 | 作用 | 默认值 |
21
- |---|---|---|---|
22
- | 数据生命周期(TTL) | `data_lifecycle` | 自动回收超期未更新的数据 | `-1`(永不回收) |
23
- | Time Travel 保留周期 | `data_retention_days` | 历史版本保留时长,支持时间点查询和恢复 | `1`(1天) |
24
-
25
- 两者可同时设置,互不影响。
26
-
27
- ---
28
-
29
- ## 设置数据生命周期(TTL)
30
-
31
- ### 建表时设置
32
-
33
- ```sql
34
- -- 数据 7 天未更新则自动清空(保留表结构)
35
- CREATE TABLE orders_archive (
36
- order_id BIGINT,
37
- amount DECIMAL(10,2),
38
- created_at TIMESTAMP
39
- ) PROPERTIES('data_lifecycle'='7');
40
-
41
- -- 数据 30 天未更新则自动删除表结构和数据
42
- CREATE TABLE temp_staging (
43
- id INT,
44
- data STRING
45
- ) PROPERTIES('data_lifecycle'='30', 'data_lifecycle_delete_meta'='true');
46
- ```
47
-
48
- ### 修改现有表
49
-
50
- ```sql
51
- -- 设置生命周期为 90 天
52
- ALTER TABLE my_table SET PROPERTIES ('data_lifecycle'='90');
53
-
54
- -- 同时设置生命周期和到期删除表结构
55
- ALTER TABLE my_table SET PROPERTIES ('data_lifecycle'='90', 'data_lifecycle_delete_meta'='true');
56
-
57
- -- 关闭生命周期(永久保留)
58
- ALTER TABLE my_table SET PROPERTIES ('data_lifecycle'='-1');
59
- ```
60
-
61
- ---
62
-
63
- ## 设置 Time Travel 保留周期
64
-
65
- ```sql
66
- -- 设置保留 7 天历史版本(范围 0-90 天)
67
- ALTER TABLE my_table SET PROPERTIES ('data_retention_days'='7');
68
-
69
- -- 建表时同时设置两个属性
70
- CREATE TABLE important_data (
71
- id INT,
72
- val STRING
73
- ) PROPERTIES('data_lifecycle'='365', 'data_retention_days'='30');
74
- ```
75
-
76
- ---
77
-
78
- ## 查看生命周期配置
79
-
80
- ### 查看单张表
81
-
82
- ```sql
83
- -- 查看表属性(含 data_lifecycle 和 data_retention_days)
84
- SHOW CREATE TABLE my_table;
85
-
86
- -- 查看详细信息(含 last_modified_time 和 properties)
87
- DESC EXTENDED my_table;
88
- ```
89
-
90
- ### 批量查询(通过 information_schema)
91
-
92
- ```sql
93
- -- 查看当前 Schema 下所有表的生命周期配置
94
- -- data_lifecycle = -1 表示永久保留
95
- SELECT table_name, data_lifecycle, last_modify_time
96
- FROM information_schema.tables
97
- WHERE table_schema = 'my_schema'
98
- ORDER BY data_lifecycle DESC;
99
-
100
- -- 找出已设置生命周期的表(data_lifecycle > 0)
101
- SELECT table_schema, table_name, data_lifecycle, last_modify_time
102
- FROM information_schema.tables
103
- WHERE data_lifecycle > 0
104
- ORDER BY data_lifecycle;
105
-
106
- -- 找出未设置生命周期的表(潜在存储浪费)
107
- SELECT table_schema, table_name, bytes / 1024 / 1024 AS size_mb, last_modify_time
108
- FROM information_schema.tables
109
- WHERE data_lifecycle = -1
110
- AND table_type = 'MANAGED_TABLE'
111
- AND bytes > 100 * 1024 * 1024 -- 大于 100MB
112
- ORDER BY bytes DESC;
113
- ```
114
-
115
- ### 查看分区表的分区修改时间
116
-
117
- ```sql
118
- -- 分区表生命周期按分区的 last_modified_time 计算
119
- SHOW PARTITIONS EXTENDED my_partitioned_table;
120
- -- 返回字段:partitions, total_rows, bytes, total_files,
121
- -- created_time, last_modified_time, last_data_time, last_compaction_time
122
- ```
123
-
124
- ---
125
-
126
- ## Time Travel 查询历史数据
127
-
128
- ```sql
129
- -- 查询指定时间点的历史数据
130
- SELECT * FROM my_table
131
- TIMESTAMP AS OF '2024-01-15 10:00:00';
132
-
133
- -- 查询 N 小时前的数据
134
- SELECT * FROM my_table
135
- TIMESTAMP AS OF CURRENT_TIMESTAMP - INTERVAL 12 HOURS;
136
-
137
- -- 查看表的版本历史
138
- DESC HISTORY my_table;
139
- -- 返回:version, time, total_rows, total_bytes, user, operation, job_id, stats
140
- ```
141
-
142
- ---
143
-
144
- ## 数据恢复
145
-
146
- ```sql
147
- -- 恢复表到指定时间点(覆盖当前数据)
148
- RESTORE TABLE my_table TO TIMESTAMP AS OF '2024-01-15 10:00:00';
149
-
150
- -- 恢复被误删的表
151
- UNDROP TABLE my_table;
152
- ```
153
-
154
- ---
155
-
156
- ## 典型场景
157
-
158
- ### 场景 1:日志表按月清理
159
-
160
- ```sql
161
- CREATE TABLE app_logs (
162
- log_id BIGINT,
163
- level STRING,
164
- message STRING,
165
- log_time TIMESTAMP
166
- ) PROPERTIES('data_lifecycle'='30');
167
- ```
168
-
169
- ### 场景 2:临时中间表自动清理
170
-
171
- ```sql
172
- CREATE TABLE etl_staging_temp (
173
- id INT,
174
- raw_data STRING
175
- ) PROPERTIES('data_lifecycle'='3', 'data_lifecycle_delete_meta'='true');
176
- ```
177
-
178
- ### 场景 3:重要业务表保留长历史
179
-
180
- ```sql
181
- -- 数据永久保留,但保留 30 天历史版本用于审计回溯
182
- ALTER TABLE orders SET PROPERTIES ('data_retention_days'='30');
183
- ```
184
-
185
- ### 场景 4:批量为未设置生命周期的大表设置 TTL
186
-
187
- ```sql
188
- -- 先查出未设置生命周期的大表
189
- SELECT table_name, bytes / 1024 / 1024 AS size_mb
190
- FROM information_schema.tables
191
- WHERE table_schema = 'my_schema'
192
- AND data_lifecycle = -1
193
- AND table_type = 'MANAGED_TABLE'
194
- ORDER BY bytes DESC;
195
-
196
- -- 逐一设置(需手动执行每条)
197
- ALTER TABLE table_a SET PROPERTIES ('data_lifecycle'='180');
198
- ALTER TABLE table_b SET PROPERTIES ('data_lifecycle'='90');
199
- ```
200
-
201
- ---
202
-
203
- ## 注意事项
204
-
205
- 1. **回收不立即执行**:生命周期到期后,后台进程每 12 小时轮询一次,通常 24 小时内完成回收
206
- 2. **默认保留表结构**:到期只清空数据,不删除表;加 `data_lifecycle_delete_meta='true'` 才删表
207
- 3. **分区表按分区计算**:每个分区独立计算 `last_modified_time`,分区到期独立回收
208
- 4. **`data_lifecycle=-1`**:表示永久保留,`information_schema.tables` 中显示为 `-1`
209
- 5. **Time Travel 默认 1 天**:默认只能查 1 天内历史;需要更长回溯窗口须提前设置 `data_retention_days`
210
- 6. **`data_retention_days` 范围 0-90**:最长 90 天,超出范围报错
211
- 7. **策略变更竞态**:修改生命周期天数时,极少数情况下回收任务可能按旧策略执行一次,属正常机制
@@ -1,175 +0,0 @@
1
- # 数据生命周期管理参考
2
-
3
- > 来源:https://www.yunqi.tech/documents/data-lifecycle
4
- > 已通过实际 Lakehouse 连接验证(cn-shanghai-alicloud, f8866243, quick_start)
5
-
6
- ---
7
-
8
- ## 核心属性
9
-
10
- | 属性键 | 类型 | 默认值 | 说明 |
11
- |---|---|---|---|
12
- | `data_lifecycle` | 正整数 / -1 | `-1` | 数据自动回收周期(天)。-1 表示永不回收 |
13
- | `data_lifecycle_delete_meta` | boolean string | `'false'` | 到期时是否同时删除表结构。默认只清空数据 |
14
- | `data_retention_days` | 整数 0-90 | `1` | Time Travel 历史版本保留天数 |
15
-
16
- ---
17
-
18
- ## CREATE TABLE 语法
19
-
20
- ```sql
21
- CREATE TABLE tname (
22
- col1 datatype1,
23
- col2 datatype2
24
- ) PROPERTIES(
25
- 'data_lifecycle'='<天数>',
26
- 'data_lifecycle_delete_meta'='true', -- 可选,到期删表结构
27
- 'data_retention_days'='<天数>' -- 可选,Time Travel 保留周期
28
- );
29
- ```
30
-
31
- **验证结果**:`SHOW CREATE TABLE` 输出中属性显示在 `TBLPROPERTIES` 块内:
32
- ```sql
33
- CREATE TABLE quick_start.mcp_demo.lifecycle_test_table(
34
- `id` int,
35
- `name` string,
36
- `created_at` timestamp)
37
- USING PARQUET
38
- TBLPROPERTIES(
39
- 'data_lifecycle'='7',
40
- 'data_retention_days'='7');
41
- ```
42
-
43
- ---
44
-
45
- ## ALTER TABLE 语法
46
-
47
- ```sql
48
- -- 设置/修改生命周期
49
- ALTER TABLE tname SET PROPERTIES ('data_lifecycle'='<天数>');
50
-
51
- -- 关闭生命周期
52
- ALTER TABLE tname SET PROPERTIES ('data_lifecycle'='-1');
53
-
54
- -- 设置到期删除表结构
55
- ALTER TABLE tname SET PROPERTIES ('data_lifecycle_delete_meta'='true');
56
-
57
- -- 设置 Time Travel 保留周期
58
- ALTER TABLE tname SET PROPERTIES ('data_retention_days'='<天数>');
59
-
60
- -- 同时设置多个属性
61
- ALTER TABLE tname SET PROPERTIES (
62
- 'data_lifecycle'='90',
63
- 'data_lifecycle_delete_meta'='true',
64
- 'data_retention_days'='30'
65
- );
66
- ```
67
-
68
- ---
69
-
70
- ## 查看配置
71
-
72
- ### DESC EXTENDED
73
-
74
- ```sql
75
- DESC EXTENDED tname;
76
- ```
77
-
78
- **实际输出结构**(验证结果):
79
-
80
- | column_name | data_type | comment |
81
- |---|---|---|
82
- | id | int | |
83
- | name | string | |
84
- | ... | ... | |
85
- | # detailed table information | | |
86
- | workspace | quick_start | |
87
- | schema | mcp_demo | |
88
- | name | lifecycle_test_table | |
89
- | creator | qiliang | |
90
- | created_time | 2026-05-01 11:05:08.904 | |
91
- | last_modified_time | 2026-05-01 11:05:26.442 | |
92
- | comment | | |
93
- | properties | (("data_lifecycle","7"),("data_retention_days","7")) | |
94
- | version | 3377453148768716241 | |
95
- | type | TABLE | |
96
- | format | PARQUET | |
97
- | statistics | 1 rows 2445 bytes | |
98
-
99
- 关键字段:
100
- - `last_modified_time`:生命周期从此时间起算
101
- - `properties`:显示所有 TBLPROPERTIES
102
-
103
- ### SHOW CREATE TABLE
104
-
105
- ```sql
106
- SHOW CREATE TABLE tname;
107
- -- 返回完整 DDL,TBLPROPERTIES 中包含 data_lifecycle 等属性
108
- ```
109
-
110
- ### information_schema.tables
111
-
112
- ```sql
113
- SELECT table_name, data_lifecycle, last_modify_time
114
- FROM information_schema.tables
115
- WHERE table_schema = 'my_schema';
116
- -- data_lifecycle = -1 表示永久保留(未设置生命周期)
117
- -- data_lifecycle > 0 表示已设置生命周期(单位:天)
118
- ```
119
-
120
- ---
121
-
122
- ## 分区表
123
-
124
- 分区表的生命周期按**分区**计算,每个分区独立判断 `last_modified_time`。
125
-
126
- ```sql
127
- -- 查看分区的修改时间
128
- SHOW PARTITIONS EXTENDED tname;
129
- ```
130
-
131
- **实际输出字段**(验证结果):
132
-
133
- | 字段 | 说明 |
134
- |---|---|
135
- | partitions | 分区值(如 dt=2024-01-01) |
136
- | total_rows | 分区行数 |
137
- | bytes | 分区大小 |
138
- | total_files | 文件数 |
139
- | created_time | 分区创建时间 |
140
- | last_modified_time | 分区最后修改时间(生命周期从此起算) |
141
- | last_data_time | 最后数据写入时间 |
142
- | last_compaction_time | 最后 compaction 时间 |
143
-
144
- ---
145
-
146
- ## Time Travel 语法
147
-
148
- ```sql
149
- -- 查询历史时间点数据
150
- SELECT * FROM tname TIMESTAMP AS OF '<timestamp>';
151
- SELECT * FROM tname TIMESTAMP AS OF CURRENT_TIMESTAMP - INTERVAL 12 HOURS;
152
-
153
- -- 查看版本历史
154
- DESC HISTORY tname;
155
- -- 返回:version, time, total_rows, total_bytes, user, operation, job_id, stats
156
-
157
- -- 恢复到历史版本(注意:目标时间点必须晚于表创建时间)
158
- RESTORE TABLE tname TO TIMESTAMP AS OF '<timestamp>';
159
-
160
- -- 恢复被删除的表
161
- UNDROP TABLE tname;
162
- ```
163
-
164
- **注意**:`RESTORE TABLE` 的目标时间点不能早于表创建时间,否则报错:
165
- `InvalidArgument: toTimestamp is smaller than timestamp of fromTimestamp`
166
-
167
- ---
168
-
169
- ## 工作原理
170
-
171
- 1. 生命周期回收依赖 `last_modified_time`(DDL/DML 操作会更新此时间)
172
- 2. 后台进程每 **12 小时**轮询一次,到期数据通常在 **24 小时内**被回收
173
- 3. 到期数据不立即删除,仍可查询,直到后台进程执行
174
- 4. 被回收的数据仍遵守 `data_retention_days`,可用 Time Travel 查询
175
- 5. 默认行为:只清空数据,**保留表结构**;设置 `data_lifecycle_delete_meta='true'` 才删表