Doris表的生命周期管理调研
背景
版本:V2.0
区分分区表与非分区表
区分方式(见“相关操作”章节)
- 查询库中的所有表
- 查询建表语句,包含partition字段就是分区表,不包含就是非分区表。
动态分区的生命周期管理
动态分区的使用建议见:【Doris实战】生命周期管理之动态分区
非分区表的生命周期管理
- 需要有一个地方存放表的属性(区分是否分区表)。
- 还需要一个任务,定期发现更新表的这个属性。只接受动态分区?手动分区管理太麻烦,不建议生产使用。或者使用手动分区表,需要业务自己实现定期的创建新分区与删除分区。
- 需要使用DELETE语句删除数据了。
删除设计关键点
- 可以自定义删除语句,如果条件中使用In关键字,需要关注in中的元素数量,见配置项
max_allowed_in_element_num_of_delete
- 调度规则,基本是按天粒度(每天调度),每天调度可以减少每次执行删除语句需要删除的数据量
- 调度情况(调度时间、调度结果撞他)展示与监控告警,根据执行情况进行补偿操作
- 若管理的库或者表过多,需要扩大线程池线程数,删除操作线程池的线程数可以动态变化
相关操作
查询库中所有的表
SHOW TABLES from dbName;
SHOW TABLES from huatuo;
查询该表的创建语句
SHOW CREATE TABLE demo.tb1
查询管理变量值
ADMIN SHOW FRONTEND CONFIG;
设置管理变量值
ADMIN SET FRONTEND CONFIG ("disable_balance" = "true");
查询配置项
show variables like '%query_timeout%'
设置管理配置项
SET query_timeout = 20;
会话级别设置变量值
SELECT /*+ SET_VAR(query_timeout = 1) */ name FROM people ORDER BY name;
查看删除(表采用的明细模型, 唯一模型delete删除不展示)历史记录
SHOW DELETE [FROM db_name