暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8c 自动分区管理

原创 薛定谔的比干 2022-10-28
806

自动分区管理

为了便于查询和维护数据,客户通常使用分区列为时间的分区表来存储时间相关的数据,例如电商的订单信息、 物联网采集的实时数据。这些时间相关的数据导入分区表时,需要保证分区表要有对应时间的分区,由于普通的分区表不会自动创建新的分区和删除过期分区,所以维护人员需要定期创建新分区和删除过期分区,提高了运维成本。

为解决上述问题,引入了分区自动管理特性。使用者可通过设置表级参数period、ttl开启分区自动管理功能,使分区表可以自动创建新分区和删除过期分区,降低分区表的维护成本,改善查询性能。其中,period既表示新分区的时间范围,也表示自动创建新分区和自动删除过期分区的周期;ttl表示分区过期时间。period和ttl的值均为Interval类型,例如’1 hour’、‘1 day’、‘1 week’、‘1 month’、‘1 year’、 '1 month 2 days 3 hours’等。

自动创建新分区

分区自动管理每隔period的时间就会自动创建分区,每次创建一个或多个时间范围为period的新分区,以推进最大的分区边界时间,保证其大于nowTime+30*period。由于每次创建分区时,都动态地为未来时间创建了预留分区,所以只要有一次自动创建新分区成功,就可以保证在未来30个period的时间之内,都不会出现实时数据因为没有对应分区而导入失败的情况。
image.png

自动删除过期分区

边界时间早于nowTime-ttl的分区被认为是过期分区。分区自动管理每隔period的时间就会遍历检测所有分区,并删除其中的过期分区,如果所有的分区都是过期分区,则保留一个分区,并truncate该表。

语法

# 自动分区管理

CREATE TABLE CPU1(	
    id integer,		
    IP text,	
    time timestamp
) with (TTL='7 days',PERIOD='1 day')
partition by range(time)
(	
    PARTITION P1 VALUES LESS THAN('2022-01-05 16:32:45'),
    PARTITION P2 VALUES LESS THAN('2022-01-06 16:56:12')
);
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论