Author: Sundy Li, 2019-11-06.
李本旺@bigo (sundy-li)
CREATE TABLE default.ttl
(
`d` DateTime,
`b` UInt32 DEFAULT 3 TTL d + interval 1 day
)
ENGINE = MergeTree PARTITION BY toYYYYMMDD(d)
ORDER BY d
TTL d + toIntervalDay(30)
SETTINGS index_granularity = 8192;
insert into ttl select today() - 5, 2 from system.numbers limit 10 ;
select sleep(3) format Null;
select count(), sum(b) from ttl;
alter table ttl modify ttl d + interval 4 day;
select count(), sum(b) from ttl;
insert into ttl select today() - 3 , 2;
select count(), sum(b) from ttl;
optimize table ttl final;
select count(), sum(b) from ttl;
CREATE TABLE ttl_table
(
`d` DateTime,
`a` Int
)
ENGINE = MergeTree
PARTITION BY toDayOfMonth(d)
ORDER BY tuple()
TTL d + toIntervalDay(1)
解析器,转换成AST表达式
ParserKeyword s_ttl{"TTL"};
ASTPtr ttl_expression;
if (s_ttl.ignore(pos, expected))
{
if (!expression_parser.parse(pos, ttl_expression, expected))
return false;
}
每个part存储一个 ttl.txt文件
相关代码: MergeTreeDataPartTTLInfo.h, MergeTreeDataWriter::writeTempPart
Partition 内部 Part 的合并
参考代码:
StorageMergeTree.h
节省了更多业余时间陪家人(女朋友)
欢迎一切技术交流,微信:543950155
BIGO招聘: 大数据,推荐算法(C++/java/python ...)
Base: 广州,北京,新加坡