按元组划分的求和合并树

xurqigkl  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(1)|浏览(426)

尝试创建按元组划分的summingmergetree,如下所示:

CREATE TABLE partitioned_by_tuple(d Date, x UInt8, w String, y UInt8) ENGINE SummingMergeTree (y) PARTITION BY (d, x) ORDER BY (d, x, w);

在表中插入数据:

┌──────────d─┬─x─┬─w─────┬─y─┐
│ 2000-01-02 │ 1 │ first │ 3 │
└────────────┴───┴───────┴───┘
┌──────────d─┬─x─┬─w─────┬─y─┐
│ 2000-01-01 │ 2 │ first │ 2 │
└────────────┴───┴───────┴───┘
┌──────────d─┬─x─┬─w─────┬─y─┐
│ 2000-01-01 │ 1 │ first │ 1 │
│ 2000-01-01 │ 1 │ first │ 2 │
└────────────┴───┴───────┴───┘

正在尝试优化表:

OPTIMIZE TABLE partitioned_by_tuple;

并期望这样:

┌──────────d─┬─x─┬─w─────┬─y─┐
│ 2000-01-02 │ 1 │ first │ 3 │
└────────────┴───┴───────┴───┘
┌──────────d─┬─x─┬─w─────┬─y─┐
│ 2000-01-01 │ 2 │ first │ 2 │
└────────────┴───┴───────┴───┘
┌──────────d─┬─x─┬─w─────┬─y─┐
│ 2000-01-01 │ 1 │ first │ 3 │
└────────────┴───┴───────┴───┘

但优化后表并没有变化。
我做错什么了?

yrwegjxp

yrwegjxp1#

根据https://clickhouse.yandex/docs/en/single/#optimize
如果指定final,即使所有数据都已在一个零件中,也将执行优化。
您需要指定 FINAL 最后强制在一个零件内进行优化。
编辑:
在这次公关之后https://github.com/yandex/clickhouse/pull/2599 优化将能够使用最终合并所有部分。
现在合并了。

相关问题