@@ -5,58 +5,63 @@ sidebar_label: 数据回收
55
66## 概述
77
8- 在 Databend 中,执行 ` DROP ` 、` TRUNCATE ` 或 ` DELETE ` 命令时数据不会立即删除。这使 Databend 能够支持时间回溯功能,让您可以访问数据的历史状态 。然而,这种方式意味着执行这些操作后存储空间不会自动释放 。
8+ 在 Databend 中,当您运行 ` DROP ` 、` TRUNCATE ` 或 ` DELETE ` 命令时,数据不会立即被删除。这使得 Databend 的时间旅行(Time Travel)功能得以实现,允许您访问数据的先前状态 。然而,这种方法也意味着在这些操作之后,存储空间不会自动释放 。
99
1010```
11- Before DELETE: After DELETE: After VACUUM:
11+ DELETE 前 : DELETE 后 : VACUUM 后 :
1212+----------------+ +----------------+ +----------------+
13- | Current Data | | New Version | | Current Data |
14- | | | (After DELETE) | | (After DELETE) |
13+ | 当前数据 | | 新版本 | | 当前数据 |
14+ | | | ( DELETE 后) | | ( DELETE 后) |
1515+----------------+ +----------------+ +----------------+
16- | Historical Data | | Historical Data | | |
17- | (Time Travel) | | (Original Data) | | |
16+ | 历史数据 | | 历史数据 | | |
17+ | (时间旅行) | | (原始数据) | | |
1818+----------------+ +----------------+ +----------------+
19- Storage not freed Storage freed
19+ 存储未释放 存储已释放
2020```
2121
22- ## 需要清理的数据类型
22+ ## VACUUM 命令与清理范围
2323
24- Databend 提供了特定命令来清理不同类型的数据。下表总结了数据类型及其对应的清理命令:
24+ Databend 提供了三种具有 ** 不同清理范围 ** 的 VACUUM 命令。了解每个命令清理的内容对于数据管理至关重要。
2525
26- | 数据类型 | 描述 | 清理命令 |
27- | -----------| -------------| -----------------|
28- | ** 已删除表数据** | 使用 DROP TABLE 命令删除的表数据文件 | ` VACUUM DROP TABLE ` |
29- | ** 表历史数据** | 表的历史版本,包括通过 UPDATE、DELETE 等操作创建的快照 | ` VACUUM TABLE ` |
30- | ** 孤立文件** | 不再与任何表关联的快照、段和块 | ` VACUUM TABLE ` |
31- | ** 溢出临时文件** | 查询执行期间(如连接、聚合、排序等操作)当内存使用超过可用限制时创建的临时文件 | ` VACUUM TEMPORARY FILES ` |
26+ ```
27+ VACUUM DROP TABLE
28+ ├── 目标:已删除的表(执行 DROP TABLE 命令后)
29+ ├── S3 存储:✅ 移除所有数据(文件、段、块、索引、统计信息)
30+ ├── Meta Service:✅ 移除所有元数据(模式、权限、记录)
31+ └── 结果:彻底移除表 - 无法恢复
32+
33+ VACUUM TABLE
34+ ├── 目标:活跃表的历史数据和孤立文件
35+ ├── S3 存储:✅ 移除旧快照、孤立的段/块、索引/统计信息
36+ ├── Meta Service:❌ 保留表结构和当前元数据
37+ └── 结果:表保持活跃,仅清理历史数据
38+
39+ VACUUM TEMPORARY FILES
40+ ├── 目标:查询产生的临时溢出文件(连接、排序、聚合)
41+ ├── S3 存储:✅ 移除因查询崩溃/中断产生的临时文件
42+ ├── Meta Service:❌ 无元数据(临时文件不含元数据)
43+ └── 结果:仅清理存储,很少需要
44+ ```
3245
33- > ** 注意 ** :溢出临时文件通常由 Databend 自动清理。只有在查询执行期间 Databend 崩溃或意外关闭时才需要手动清理。
46+ ---
3447
35- ## 使用 VACUUM 命令
48+ > ** 🚨 关键 ** :只有 ` VACUUM DROP TABLE ` 会影响 Meta Service。其他命令仅清理存储文件。
3649
37- VACUUM 命令系列是 Databend 中清理数据的主要方法( [ 企业版功能 ] ( /guides/products/dee/enterprise-features ) )。根据您需要清理的数据类型,使用不同的 VACUUM 子命令。
50+ ## 使用 VACUUM 命令
3851
39- ```
40- VACUUM Commands:
41- +------------------------+ +------------------------+ +------------------------+
42- | VACUUM DROP TABLE | | VACUUM TABLE | | VACUUM TEMPORARY FILES |
43- +------------------------+ +------------------------+ +------------------------+
44- | Cleans dropped tables | | Cleans table history | | Cleans spill files |
45- | and their data files | | and orphan files | | (rarely needed) |
46- +------------------------+ +------------------------+ +------------------------+
47- ```
52+ VACUUM 命令系列是 Databend 中清理数据的主要方法([ 企业版功能] ( /guides/products/dee/enterprise-features ) )。
4853
4954### VACUUM DROP TABLE
5055
51- 此命令永久删除已删除表的数据文件,释放存储空间 。
56+ 从存储和元数据中永久移除已删除的表 。
5257
5358``` sql
5459VACUUM DROP TABLE [FROM < database_name> ] [DRY RUN [SUMMARY]] [LIMIT < file_count> ];
5560```
5661
5762** 选项:**
58- - ` FROM <database_name> ` :限定在特定数据库
59- - ` DRY RUN [SUMMARY] ` :预览将被删除的文件而不实际执行删除
63+ - ` FROM <database_name> ` :限制在特定数据库内
64+ - ` DRY RUN [SUMMARY] ` :预览将要移除的文件,而不实际删除它们
6065- ` LIMIT <file_count> ` :限制要清理的文件数量
6166
6267** 示例:**
@@ -68,23 +73,23 @@ VACUUM DROP TABLE DRY RUN;
6873-- 预览将被移除文件的摘要
6974VACUUM DROP TABLE DRY RUN SUMMARY;
7075
71- -- 从 "default" 数据库中移除已删除表
76+ -- 从 "default" 数据库中移除已删除的表
7277VACUUM DROP TABLE FROM default;
7378
74- -- 从已删除表中移除最多 1000 个文件
79+ -- 从已删除的表中最多移除 1000 个文件
7580VACUUM DROP TABLE LIMIT 1000 ;
7681```
7782
7883### VACUUM TABLE
7984
80- 此命令移除指定表的历史数据,清除旧版本并释放存储空间 。
85+ 为活跃表移除历史数据和孤立文件(仅清理存储) 。
8186
8287``` sql
8388VACUUM TABLE < table_name> [DRY RUN [SUMMARY]];
8489```
8590
8691** 选项:**
87- - ` DRY RUN [SUMMARY] ` :预览将被删除的文件而不实际执行删除
92+ - ` DRY RUN [SUMMARY] ` :预览将要移除的文件,而不实际删除它们
8893
8994** 示例:**
9095
@@ -95,34 +100,34 @@ VACUUM TABLE my_table DRY RUN;
95100-- 预览将被移除文件的摘要
96101VACUUM TABLE my_table DRY RUN SUMMARY;
97102
98- -- 从 my_table 中移除历史数据
103+ -- 从 my_table 表中移除历史数据
99104VACUUM TABLE my_table;
100105```
101106
102107### VACUUM TEMPORARY FILES
103108
104- 此命令清除用于连接、聚合和排序的临时溢出文件,释放存储空间 。
109+ 移除查询执行期间创建的临时溢出文件 。
105110
106111``` sql
107112VACUUM TEMPORARY FILES;
108113```
109114
110- ** 注意** :虽然此命令提供了手动清理临时文件的方法,但在正常操作中很少需要, 因为 Databend 在大多数情况下会自动处理清理 。
115+ > ** 注意** :在正常操作中很少需要, 因为 Databend 会自动处理清理工作。通常只有在 Databend 于查询执行期间崩溃时才需要手动清理 。
111116
112117## 调整数据保留时间
113118
114119VACUUM 命令会移除早于 ` DATA_RETENTION_TIME_IN_DAYS ` 设置的数据文件。默认情况下,Databend 会保留 1 天(24 小时)的历史数据。您可以调整此设置:
115120
116121``` sql
117- -- 将保留期改为 2 天
122+ -- 将保留期更改为 2 天
118123SET GLOBAL DATA_RETENTION_TIME_IN_DAYS = 2 ;
119124
120- -- 查看当前保留设置
125+ -- 检查当前的保留期设置
121126SHOW SETTINGS LIKE ' DATA_RETENTION_TIME_IN_DAYS' ;
122127```
123128
124- | 版本 | 默认保留时间 | 最大保留时间 |
129+ | 版本 | 默认保留期 | 最长保留期 |
125130| ---------------------------------------- | ----------------- | ---------------- |
126- | Databend 社区版和企业版 | 1 天(24 小时) | 90 天 |
127- | Databend Cloud (基础版) | 1 天(24 小时) | 1 天(24 小时) |
128- | Databend Cloud (商业版) | 1 天(24 小时) | 90 天 |
131+ | Databend Community & Enterprise Editions | 1 天(24 小时) | 90 天 |
132+ | Databend Cloud(Personal) | 1 天(24 小时) | 1 天(24 小时) |
133+ | Databend Cloud(Business) | 1 天(24 小时) | 90 天 |
0 commit comments