文档首页/ 表格存储服务 CloudTable/ 常见问题/ 通用类/ Doris集群回收站数据处理
更新时间:2024-01-12 GMT+08:00
分享

Doris集群回收站数据处理

那些场景会产生回收站数据?

  • 数据均衡时,仅仅是将高负载磁盘上的tablet拷贝一份到低负载的磁盘,并将原有tablet放入垃圾回收站,并不会物理删除原有tablet,因此产生垃圾文件。
  • Delete/drop/truncate等操作只是在逻辑上删除了数据,并没有进行物理删除,也会产生垃圾文件。
  • 数据文件合并完成后,并没有物理删除旧的数据,产生垃圾文件。

垃圾文件影响

  • 过多垃圾文件,会占用磁盘,影响可用磁盘大小,可能造成有效数据丢失。
  • 垃圾文件本身有防误删的功能,Doris可从垃圾文件中恢复数据,过少垃圾文件会影响防误删功能。

如何查看回收站数据

  1. 登录CloudTable控制台。
  2. 创建Doris集群
  3. 连接Doris集群
  4. 查看回收站数据。
    show trash;
    图1 回收站数据
  5. 恢复回收站数据。
    curl -X POST http://{be_host}:{be_webserver_port} /api/restore_tablet?tablet_id={tablet_id}\&schema_hash={schema_hash}
    • be_host:节点地址。
    • be_webserver_port:节点端口。

设置回收站时间

  • 回收站原理:删除的数据不会直接从磁盘上删除,而是先放入回收站,等待超时时间满足后,再从磁盘上直接删除。
  • 设置回收站时间需要考虑的因素。
    • 回收站时间过长,会累积垃圾文件,占用磁盘空间。
    • 回收站时间过长,调用admin clean trash;命令后,容易导致数据不均衡,触发二次数据均衡,再次产生垃圾文件。
    • 回收站时间过短,容易误删、异常原因导致被删除的tablet无法被恢复。建议根据实际业务,观察回收站占用的磁盘空间的平均值,并根据占用磁盘空间和所需的防误删时间窗口,设置合理时间值。
      curl -X POST http://{be_ip}:{be_http_port}/api/update_config?trash_file_expire_time_sec={value}\&persist=true
      • be_host:节点地址。
      • be_webserver_port:节点端口。
      • trash_file_expire_time_sec:回收站清理的间隔,72个小时,当磁盘空间不足时,trash下的文件保存期可不遵守这个参数,默认值259200。

相关文档