@@ -3,89 +3,100 @@ title: 数据清理和回收
33sidebar_label : 数据回收
44---
55
6- 在 Databend 中,当你运行 ` DROP ` 、 ` TRUNCATE ` 或 ` DELETE ` 命令时,数据并非真正被删除,从而允许时间回溯到之前的状态。
6+ ## 概述
77
8- 有两种类型的数据:
8+ 在 Databend 中,当你运行 ` DROP ` 、 ` TRUNCATE ` 或 ` DELETE ` 命令时,数据不会立即被删除。这使得 Databend 的时间回溯功能成为可能,允许你访问数据的先前状态。然而,这种方法意味着在这些操作之后,存储空间不会自动释放。
99
10- - ** 历史数据** : 被时间回溯用于存储历史数据或已删除表中的数据。
11- - ** 临时数据** : 被系统用于存储溢出数据。
10+ ## 需要清理的数据类型
1211
13- 如果数据量很大,您可以运行几个命令( [ 企业版功能 ] ( /guides/products/dee/enterprise-features ) )来删除这些数据并释放存储空间。
12+ 在 Databend 中,主要有四种类型的数据可能需要清理:
1413
15- ## 溢出数据存储
14+ 1 . ** 已删除表的数据** :使用 DROP TABLE 命令删除的表中的数据文件
15+ 2 . ** 表历史数据** :表的历史版本,包括通过 UPDATE、DELETE 和其他操作创建的快照
16+ 3 . ** 孤立文件** :不再与任何表关联的快照、段和块
17+ 4 . ** 溢出临时文件** :在查询执行期间,当内存使用量超过可用限制时创建的临时文件(用于连接、聚合、排序等)。Databend 在查询正常完成后会自动清理这些文件。只有在 Databend 在查询执行期间崩溃或意外关闭的极少数情况下才需要手动清理。
1618
17- 私有化部署 Databend 支持在内存使用量超过可用限制时,将中间查询结果溢出到磁盘。用户可以配置溢出数据的存储位置,选择本地磁盘存储和远程 S3 兼容的存储桶。
19+ ## 使用 VACUUM 命令
1820
19- ### 溢出存储选项
21+ VACUUM 命令系列是在 Databend 中清理数据的主要方法 ( [ 企业版功能 ] ( /guides/products/dee/enterprise-features ) )。根据你需要清理的数据类型,使用不同的 VACUUM 子命令。
2022
21- Databend 提供以下溢出存储配置:
23+ ### VACUUM DROP TABLE
2224
23- - 本地磁盘存储:溢出数据被写入查询节点中指定的本地目录。请注意,本地磁盘存储仅支持 [ 窗口函数] ( /sql/sql-functions/window-functions/ ) 。
24- - 远程 S3 兼容存储:溢出数据存储在外部存储桶中。
25- - 默认存储:如果未配置溢出存储,Databend 会将数据溢出到默认存储桶以及您的表数据。
25+ 此命令永久删除已删除表的数据文件,释放存储空间。
2626
27- ### 溢出优先级
27+ ``` sql
28+ VACUUM DROP TABLE [FROM < database_name> ] [DRY RUN [SUMMARY]] [LIMIT < file_count> ];
29+ ```
2830
29- 如果同时配置了本地和 S3 兼容的溢出存储,Databend 遵循以下顺序:
31+ ** 选项:**
32+ - ` FROM <database_name> ` :限制为特定数据库
33+ - ` DRY RUN [SUMMARY] ` :预览要删除的文件,而不实际删除它们
34+ - ` LIMIT <file_count> ` :限制要清理的文件数量
3035
31- 1 . 首先溢出到本地磁盘(如果已配置)。
32- 2 . 当本地磁盘空间不足时,溢出到远程 S3 兼容存储。
33- 3 . 如果未配置本地或外部 S3 兼容存储,则溢出到 Databend 的默认存储桶。
36+ ** 示例:**
3437
35- ### 配置溢出存储
38+ ``` sql
39+ -- 预览将要删除的文件
40+ VACUUM DROP TABLE DRY RUN;
3641
37- 要配置溢出存储,请更新 [ databend-query.toml] ( https://github.com/databendlabs/databend/blob/main/scripts/distribution/configs/databend-query.toml ) 配置文件。
42+ -- 预览将要删除的文件的摘要
43+ VACUUM DROP TABLE DRY RUN SUMMARY;
3844
39- 此示例设置 Databend 使用最多 1 TB 的本地磁盘空间进行溢出操作,同时为系统使用保留 40% 的磁盘空间:
45+ -- 从“default”数据库中删除已删除的表
46+ VACUUM DROP TABLE FROM default;
4047
41- ``` toml
42- [spill ]
43- spill_local_disk_path = " /data1/databend/databend_spill"
44- spill_local_disk_reserved_space_percentage = 40
45- spill_local_disk_max_bytes = 1099511627776
48+ -- 从已删除的表中删除最多 1000 个文件
49+ VACUUM DROP TABLE LIMIT 1000 ;
4650```
4751
48- 此示例设置 Databend 使用 MinIO 作为 S3 兼容的存储服务进行溢出操作:
49-
50- ``` toml
51- [spill ]
52- [spill .storage ]
53- type = " s3"
54- [spill .storage .s3 ]
55- bucket = " databend"
56- root = " admin"
57- endpoint_url = " http://127.0.0.1:9900"
58- access_key_id = " minioadmin"
59- secret_access_key = " minioadmin"
60- allow_insecure = true
52+ ### VACUUM TABLE
53+
54+ 此命令删除指定表的历史数据,清除旧版本并释放存储空间。
55+
56+ ``` sql
57+ VACUUM TABLE < table_name> [DRY RUN [SUMMARY]];
6158```
6259
63- ## 清理删除表数据
60+ ** 选项:**
61+ - ` DRY RUN [SUMMARY] ` :预览要删除的文件,而不实际删除它们
6462
65- 删除所有已删除表的数据文件,释放存储空间。
63+ ** 示例: **
6664
6765``` sql
68- VACUUM DROP TABLE;
69- ```
66+ -- 预览将要删除的文件
67+ VACUUM TABLE my_table DRY RUN;
68+
69+ -- 预览将要删除的文件的摘要
70+ VACUUM TABLE my_table DRY RUN SUMMARY;
7071
71- 查看更多 [ VACUUM DROP TABLE] ( /sql/sql-commands/administration-cmds/vacuum-drop-table ) 。
72+ -- 从 my_table 中删除历史数据
73+ VACUUM TABLE my_table;
74+ ```
7275
73- ## 清理表历史数据
76+ ### VACUUM TEMPORARY FILES
7477
75- 删除指定表的历史数据,清除旧版本并释放存储空间 。
78+ 此命令清除用于连接、聚合和排序的临时溢出文件,释放存储空间 。
7679
7780``` sql
78- VACUUM TABLE < table_name > ;
81+ VACUUM TEMPORARY FILES ;
7982```
8083
81- 查看更多 [ VACUUM TABLE ] ( /sql/sql-commands/administration-cmds/vacuum-table ) 。
84+ ** 注意: ** 虽然此命令作为手动清理临时文件的方法提供,但在正常操作期间很少需要,因为 Databend 在大多数情况下会自动处理清理 。
8285
83- ## 清理临时数据
86+ ## 调整数据保留时间
8487
85- 清除用于连接、聚合和排序的临时溢出文件,释放存储空间。
88+ VACUUM 命令删除早于 ` DATA_RETENTION_TIME_IN_DAYS ` 设置的数据文件。默认情况下,Databend 保留 1 天(24 小时)的历史数据。你可以调整此设置:
8689
8790``` sql
88- VACUUM TEMPORARY FILES;
91+ -- 将保留期限更改为 2 天
92+ SET GLOBAL DATA_RETENTION_TIME_IN_DAYS = 2 ;
93+
94+ -- 检查当前保留设置
95+ SHOW SETTINGS LIKE ' DATA_RETENTION_TIME_IN_DAYS' ;
8996```
9097
91- 查看更多 [ VACUUM TEMPORARY FILES] ( /sql/sql-commands/administration-cmds/vacuum-temp-files ) 。
98+ | 版本 | 默认保留时间 | 最长保留时间 |
99+ | ---------------------------------------- | ----------------- | ---------------- |
100+ | Databend Community & Enterprise Editions | 1 天(24 小时) | 90 天 |
101+ | Databend Cloud (基础版) | 1 天(24 小时) | 1 天(24 小时) |
102+ | Databend Cloud (Business) | 1 天(24 小时) | 90 天 |
0 commit comments