StarRocks, Inc.
用户6047
添加快捷方式
分享
StarRocks 存算分离垃圾数据清理工具使用手册
输入“/”快速插入内容
StarRocks 存算分离
垃圾数据
清理
工具使用手册
用户5677
用户5677
用户6047
用户6047
2024年3月12日修改
说明
StarRocks 存算分离集群中,数据被存储在远端对象存储(如 AWS S3 等),如果某些导入或者 COMPACTION 任务失败,则可能会在对象存储上残留垃圾数据,目前系统无法自动清理这部分垃圾数据,而对象存储一般按照使用量计费,这些垃圾数据可能会产生高昂的存储费用,因此我们提供了该工具来清理残留的垃圾数据。
工具下载
代码块
Bash
wget "http://starrocks-release.oss-cn-zhangjiakou.aliyuncs.com/yxg%2Fdata_gc.tar.gz?Expires=1741779941&OSSAccessKeyId=LTAI5tAH5yb1oP5hLQ1oJqqJ&Signature=af%2FWtmpuuIJMSX1j%2Fzdsqbe%2BAC4%3D" -O
be.tar.gz
工具使用
代码块
Bash
nohup ./bin/meta_tool.sh
--operation=lake_datafile_gc
--root_path="s3://xxx/yyy" --expired_sec=86400 --conf_file=./conf/be.conf --audit_file=./audit.txt --do_delete=false &
参数说明
•
root_path
:对象存储上的完整路径,可以是 db 目录或者 table 目录或者 partiton 目录,甚至 service 目录
•
conf_file
:be 配置文件路径,可以在配置文件里配置访问对象存储的认证信息等
•
audit_file
:
可选参数,
审计文件路径,会创建这个文件记录被删除的文件等信息,便于出问题时回溯
•
do_delete
:是否删除找到的垃圾数据,为 true 时删除,为 false 时不删除只输出找到的无用文件信息。我们强烈建议首先将其设置为 false,统计出可以清理的数据量,然后再二次运行时设置为 true,真正执行清理
•
expired_sec
: 可以控制只清理多久之前的历史数据,提高安全性,如示例中设置为86400,表示只考虑清理那些1天以前的垃圾数据
另外,
可在 conf/be.conf 中配置访问对象存储的认证参数:
代码块
PowerShell
object_storage_endpoint=oss-cn-zhangjiakou-internal.aliyuncs.com
object_storage_access_key_id=xxx
object_storage_secret_access_key=xxx
执行过程中会在 log 文件中打印执行进度。
使用建议
该工具的统计原理是将对比数据文件和tablet meta 元数据文件进行对比,找到那些未被引用的数据文件,实际执行过程中需要从对象存储中加载 Tablet Meta 文件至内存,因此,可能有以下不足:
1.
执行过程比较耗时
2.
执行过程中消耗内存较多
因此,我们建议按照分区 Partition 为粒度来进行清理,首先编写脚本筛选出存储使用量较大的 Partition,再逐个对分区进行清理。