11---
2- title : 数据清理和回收
2+ title : 数据清理与回收
33sidebar_label : 数据回收
44---
55
66## 概述
77
8- 在 Databend 中,当你运行 ` DROP ` 、` TRUNCATE ` 或 ` DELETE ` 命令时,数据不会立即被删除。这使得 Databend 的时间回溯功能成为可能,允许你访问数据的先前状态。然而,这种方法意味着在这些操作之后,存储空间不会自动释放。
8+ 在 Databend 中,执行 ` DROP ` 、` TRUNCATE ` 或 ` DELETE ` 命令时数据不会立即删除。这使 Databend 能够支持时间回溯功能,让您可以访问数据的历史状态。然而,这种方式意味着执行这些操作后存储空间不会自动释放。
9+
10+ ```
11+ Before DELETE: After DELETE: After VACUUM:
12+ +----------------+ +----------------+ +----------------+
13+ | Current Data | | New Version | | Current Data |
14+ | | | (After DELETE) | | (After DELETE) |
15+ +----------------+ +----------------+ +----------------+
16+ | Historical Data| | Historical Data| | |
17+ | (Time Travel) | | (Original Data)| | |
18+ +----------------+ +----------------+ +----------------+
19+ Storage not freed Storage freed
20+ ```
921
1022## 需要清理的数据类型
1123
12- 在 Databend 中,主要有四种类型的数据可能需要清理:
24+ Databend 提供了特定命令来清理不同类型的数据。下表总结了数据类型及其对应的清理命令:
25+
26+ | 数据类型 | 描述 | 清理命令 |
27+ | -----------| -------------| -----------------|
28+ | ** 已删除表数据** | 使用 DROP TABLE 命令删除的表数据文件 | ` VACUUM DROP TABLE ` |
29+ | ** 表历史数据** | 表的历史版本,包括通过 UPDATE、DELETE 等操作创建的快照 | ` VACUUM TABLE ` |
30+ | ** 孤立文件** | 不再与任何表关联的快照、段和块 | ` VACUUM TABLE ` |
31+ | ** 溢出临时文件** | 查询执行期间(如连接、聚合、排序等操作)当内存使用超过可用限制时创建的临时文件 | ` VACUUM TEMPORARY FILES ` |
1332
14- 1 . ** 已删除表的数据** :使用 DROP TABLE 命令删除的表中的数据文件
15- 2 . ** 表历史数据** :表的历史版本,包括通过 UPDATE、DELETE 和其他操作创建的快照
16- 3 . ** 孤立文件** :不再与任何表关联的快照、段和块
17- 4 . ** 溢出临时文件** :在查询执行期间,当内存使用量超过可用限制时创建的临时文件(用于连接、聚合、排序等)。Databend 在查询正常完成后会自动清理这些文件。只有在 Databend 在查询执行期间崩溃或意外关闭的极少数情况下才需要手动清理。
33+ > ** 注意** :溢出临时文件通常由 Databend 自动清理。只有在查询执行期间 Databend 崩溃或意外关闭时才需要手动清理。
1834
1935## 使用 VACUUM 命令
2036
21- VACUUM 命令系列是在 Databend 中清理数据的主要方法 ([ 企业版功能] ( /guides/products/dee/enterprise-features ) )。根据你需要清理的数据类型,使用不同的 VACUUM 子命令。
37+ VACUUM 命令系列是 Databend 中清理数据的主要方法([ 企业版功能] ( /guides/products/dee/enterprise-features ) )。根据您需要清理的数据类型,使用不同的 VACUUM 子命令。
38+
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+ ```
2248
2349### VACUUM DROP TABLE
2450
@@ -29,47 +55,47 @@ VACUUM DROP TABLE [FROM <database_name>] [DRY RUN [SUMMARY]] [LIMIT <file_count>
2955```
3056
3157** 选项:**
32- - ` FROM <database_name> ` :限制为特定数据库
33- - ` DRY RUN [SUMMARY] ` :预览要删除的文件,而不实际删除它们
58+ - ` FROM <database_name> ` :限定在特定数据库
59+ - ` DRY RUN [SUMMARY] ` :预览将被删除的文件而不实际执行删除
3460- ` LIMIT <file_count> ` :限制要清理的文件数量
3561
3662** 示例:**
3763
3864``` sql
39- -- 预览将要删除的文件
65+ -- 预览将被移除的文件
4066VACUUM DROP TABLE DRY RUN;
4167
42- -- 预览将要删除的文件的摘要
68+ -- 预览将被移除文件的摘要
4369VACUUM DROP TABLE DRY RUN SUMMARY;
4470
45- -- 从“ default”数据库中删除已删除的表
71+ -- 从 " default" 数据库中移除已删除表
4672VACUUM DROP TABLE FROM default;
4773
48- -- 从已删除的表中删除最多 1000 个文件
74+ -- 从已删除表中移除最多 1000 个文件
4975VACUUM DROP TABLE LIMIT 1000 ;
5076```
5177
5278### VACUUM TABLE
5379
54- 此命令删除指定表的历史数据 ,清除旧版本并释放存储空间。
80+ 此命令移除指定表的历史数据 ,清除旧版本并释放存储空间。
5581
5682``` sql
5783VACUUM TABLE < table_name> [DRY RUN [SUMMARY]];
5884```
5985
6086** 选项:**
61- - ` DRY RUN [SUMMARY] ` :预览要删除的文件,而不实际删除它们
87+ - ` DRY RUN [SUMMARY] ` :预览将被删除的文件而不实际执行删除
6288
6389** 示例:**
6490
6591``` sql
66- -- 预览将要删除的文件
92+ -- 预览将被移除的文件
6793VACUUM TABLE my_table DRY RUN;
6894
69- -- 预览将要删除的文件的摘要
95+ -- 预览将被移除文件的摘要
7096VACUUM TABLE my_table DRY RUN SUMMARY;
7197
72- -- 从 my_table 中删除历史数据
98+ -- 从 my_table 中移除历史数据
7399VACUUM TABLE my_table;
74100```
75101
@@ -81,22 +107,22 @@ VACUUM TABLE my_table;
81107VACUUM TEMPORARY FILES;
82108```
83109
84- ** 注意: ** 虽然此命令作为手动清理临时文件的方法提供,但在正常操作期间很少需要 ,因为 Databend 在大多数情况下会自动处理清理。
110+ ** 注意** :虽然此命令提供了手动清理临时文件的方法,但在正常操作中很少需要 ,因为 Databend 在大多数情况下会自动处理清理。
85111
86112## 调整数据保留时间
87113
88- VACUUM 命令删除早于 ` DATA_RETENTION_TIME_IN_DAYS ` 设置的数据文件。默认情况下,Databend 保留 1 天(24 小时)的历史数据。你可以调整此设置 :
114+ VACUUM 命令会移除早于 ` DATA_RETENTION_TIME_IN_DAYS ` 设置的数据文件。默认情况下,Databend 会保留 1 天(24 小时)的历史数据。您可以调整此设置 :
89115
90116``` sql
91- -- 将保留期限更改为 2 天
117+ -- 将保留期改为 2 天
92118SET GLOBAL DATA_RETENTION_TIME_IN_DAYS = 2 ;
93119
94- -- 检查当前保留设置
120+ -- 查看当前保留设置
95121SHOW SETTINGS LIKE ' DATA_RETENTION_TIME_IN_DAYS' ;
96122```
97123
98- | 版本 | 默认保留时间 | 最长保留时间 |
124+ | 版本 | 默认保留时间 | 最大保留时间 |
99125| ---------------------------------------- | ----------------- | ---------------- |
100- | Databend Community & Enterprise Editions | 1 天(24 小时) | 90 天 |
101- | Databend Cloud (基础版) | 1 天(24 小时) | 1 天(24 小时) |
102- | Databend Cloud (Business ) | 1 天(24 小时) | 90 天 |
126+ | Databend 社区版和企业版 | 1 天(24 小时) | 90 天 |
127+ | Databend Cloud (基础版) | 1 天(24 小时) | 1 天(24 小时) |
128+ | Databend Cloud (商业版 ) | 1 天(24 小时) | 90 天 |
0 commit comments