@@ -5,58 +5,63 @@ sidebar_label: 数据回收
5
5
6
6
## 概述
7
7
8
- 在 Databend 中,执行 ` DROP ` 、` TRUNCATE ` 或 ` DELETE ` 命令时数据不会立即删除。这使 Databend 能够支持时间回溯功能,让您可以访问数据的历史状态 。然而,这种方式意味着执行这些操作后存储空间不会自动释放 。
8
+ 在 Databend 中,当您运行 ` DROP ` 、` TRUNCATE ` 或 ` DELETE ` 命令时,数据不会立即被删除。这使得 Databend 的时间旅行(Time Travel)功能得以实现,允许您访问数据的先前状态 。然而,这种方法也意味着在这些操作之后,存储空间不会自动释放 。
9
9
10
10
```
11
- Before DELETE: After DELETE: After VACUUM:
11
+ DELETE 前 : DELETE 后 : VACUUM 后 :
12
12
+----------------+ +----------------+ +----------------+
13
- | Current Data | | New Version | | Current Data |
14
- | | | (After DELETE) | | (After DELETE) |
13
+ | 当前数据 | | 新版本 | | 当前数据 |
14
+ | | | ( DELETE 后) | | ( DELETE 后) |
15
15
+----------------+ +----------------+ +----------------+
16
- | Historical Data | | Historical Data | | |
17
- | (Time Travel) | | (Original Data) | | |
16
+ | 历史数据 | | 历史数据 | | |
17
+ | (时间旅行) | | (原始数据) | | |
18
18
+----------------+ +----------------+ +----------------+
19
- Storage not freed Storage freed
19
+ 存储未释放 存储已释放
20
20
```
21
21
22
- ## 需要清理的数据类型
22
+ ## VACUUM 命令与清理范围
23
23
24
- Databend 提供了特定命令来清理不同类型的数据。下表总结了数据类型及其对应的清理命令:
24
+ Databend 提供了三种具有 ** 不同清理范围 ** 的 VACUUM 命令。了解每个命令清理的内容对于数据管理至关重要。
25
25
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
+ ```
32
45
33
- > ** 注意 ** :溢出临时文件通常由 Databend 自动清理。只有在查询执行期间 Databend 崩溃或意外关闭时才需要手动清理。
46
+ ---
34
47
35
- ## 使用 VACUUM 命令
48
+ > ** 🚨 关键 ** :只有 ` VACUUM DROP TABLE ` 会影响 Meta Service。其他命令仅清理存储文件。
36
49
37
- VACUUM 命令系列是 Databend 中清理数据的主要方法( [ 企业版功能 ] ( /guides/products/dee/enterprise-features ) )。根据您需要清理的数据类型,使用不同的 VACUUM 子命令。
50
+ ## 使用 VACUUM 命令
38
51
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 ) )。
48
53
49
54
### VACUUM DROP TABLE
50
55
51
- 此命令永久删除已删除表的数据文件,释放存储空间 。
56
+ 从存储和元数据中永久移除已删除的表 。
52
57
53
58
``` sql
54
59
VACUUM DROP TABLE [FROM < database_name> ] [DRY RUN [SUMMARY]] [LIMIT < file_count> ];
55
60
```
56
61
57
62
** 选项:**
58
- - ` FROM <database_name> ` :限定在特定数据库
59
- - ` DRY RUN [SUMMARY] ` :预览将被删除的文件而不实际执行删除
63
+ - ` FROM <database_name> ` :限制在特定数据库内
64
+ - ` DRY RUN [SUMMARY] ` :预览将要移除的文件,而不实际删除它们
60
65
- ` LIMIT <file_count> ` :限制要清理的文件数量
61
66
62
67
** 示例:**
@@ -68,23 +73,23 @@ VACUUM DROP TABLE DRY RUN;
68
73
-- 预览将被移除文件的摘要
69
74
VACUUM DROP TABLE DRY RUN SUMMARY;
70
75
71
- -- 从 "default" 数据库中移除已删除表
76
+ -- 从 "default" 数据库中移除已删除的表
72
77
VACUUM DROP TABLE FROM default;
73
78
74
- -- 从已删除表中移除最多 1000 个文件
79
+ -- 从已删除的表中最多移除 1000 个文件
75
80
VACUUM DROP TABLE LIMIT 1000 ;
76
81
```
77
82
78
83
### VACUUM TABLE
79
84
80
- 此命令移除指定表的历史数据,清除旧版本并释放存储空间 。
85
+ 为活跃表移除历史数据和孤立文件(仅清理存储) 。
81
86
82
87
``` sql
83
88
VACUUM TABLE < table_name> [DRY RUN [SUMMARY]];
84
89
```
85
90
86
91
** 选项:**
87
- - ` DRY RUN [SUMMARY] ` :预览将被删除的文件而不实际执行删除
92
+ - ` DRY RUN [SUMMARY] ` :预览将要移除的文件,而不实际删除它们
88
93
89
94
** 示例:**
90
95
@@ -95,34 +100,34 @@ VACUUM TABLE my_table DRY RUN;
95
100
-- 预览将被移除文件的摘要
96
101
VACUUM TABLE my_table DRY RUN SUMMARY;
97
102
98
- -- 从 my_table 中移除历史数据
103
+ -- 从 my_table 表中移除历史数据
99
104
VACUUM TABLE my_table;
100
105
```
101
106
102
107
### VACUUM TEMPORARY FILES
103
108
104
- 此命令清除用于连接、聚合和排序的临时溢出文件,释放存储空间 。
109
+ 移除查询执行期间创建的临时溢出文件 。
105
110
106
111
``` sql
107
112
VACUUM TEMPORARY FILES;
108
113
```
109
114
110
- ** 注意** :虽然此命令提供了手动清理临时文件的方法,但在正常操作中很少需要, 因为 Databend 在大多数情况下会自动处理清理 。
115
+ > ** 注意** :在正常操作中很少需要, 因为 Databend 会自动处理清理工作。通常只有在 Databend 于查询执行期间崩溃时才需要手动清理 。
111
116
112
117
## 调整数据保留时间
113
118
114
119
VACUUM 命令会移除早于 ` DATA_RETENTION_TIME_IN_DAYS ` 设置的数据文件。默认情况下,Databend 会保留 1 天(24 小时)的历史数据。您可以调整此设置:
115
120
116
121
``` sql
117
- -- 将保留期改为 2 天
122
+ -- 将保留期更改为 2 天
118
123
SET GLOBAL DATA_RETENTION_TIME_IN_DAYS = 2 ;
119
124
120
- -- 查看当前保留设置
125
+ -- 检查当前的保留期设置
121
126
SHOW SETTINGS LIKE ' DATA_RETENTION_TIME_IN_DAYS' ;
122
127
```
123
128
124
- | 版本 | 默认保留时间 | 最大保留时间 |
129
+ | 版本 | 默认保留期 | 最长保留期 |
125
130
| ---------------------------------------- | ----------------- | ---------------- |
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