Merge可以将MergeTree和AggregatingMergeTree合到一起

342 阅读1分钟

AggregatingMergeTree表

CREATE TABLE t2
(
    `kkbh`       String ,
    `sj`          DateTime ,
    `name1`       SimpleAggregateFunction(anyLast, Nullable(String)) COMMENT '',
    `name2`       SimpleAggregateFunction(anyLast, Nullable(String)) COMMENT ''

) ENGINE = AggregatingMergeTree PARTITION BY toYYYYMMDD(sj) ORDER BY (kkbh,sj) ;

MergeTree

CREATE TABLE t3
(
    `kkbh`       String ,
    `sj`       DateTime COMMENT '',
    `name1`       String COMMENT '',
    `name2`       String COMMENT ''
) ENGINE = MergeTree PARTITION BY toYYYYMMDD(sj) ORDER BY toStartOfDay(sj) ;

合并

CREATE TABLE t_all
(
    `kkbh`       String ,
    `sj`       DateTime COMMENT '',
    `name1`       String COMMENT '',
    `name2`       String COMMENT ''
)
ENGINE = Merge('default', '^t');

数据迁移

需要做一下转换

insert into t3 (kkbh, sj, name1, name2 )
select kkbh, sj,  coalesce(name1,  '')  , coalesce(name2, '') from t2 ;