ClickHouse:如何从具有不同分区键的表中移动数据?

ClickHouse: How to move data from tables with different partition keys?

我计划在 ClickHouse 中进行 table 重新设计,以避免在使用 ReplicatedReplacingMergeTree 时出现一些性能和 deduplication/versioning 问题。这里OPTIMIZE FINAL可以运行去重,但不能运行连续。

所以我们计划保留一个 table A,每天分区,接收传入数据。 然后是atableB,按月分区,这里会存放历史数据。 查询将被定向到包含两者的 MERGE table(不是 MergeTree)。

然后,我们会设置一个操作,每天结束后立即将最新的分区从 A 移动到 B。

但是,如 MOVE PARTITION TO TABLE 中所述 "Both tables must have the same partition key." 中那样移动分区是不可能的。 一种方法是将数据从 A 的每日分区复制到 B,然后 detach/drop A 中的每日分区。但是同时我们会看到重复项。

将此数据从 A 传输到 B 且影响最小的最佳方式是什么?还有哪些选择?

An approach is to copy data from A's daily partition to B, and then detach/drop daily partition in A. However in the meantime we'll see duplicates.

您可以将数据复制到 intermediate/temporary table TB(与 B 相同的结构/分区)。然后drop partition in A,然后从TB移动到B