clickhouse - ClickHouse:如何从具有不同分区键的表中移动数据?
问题描述
我计划在 ClickHouse 中重新设计表,以避免在使用 ReplicatedReplacingMergeTree 时出现一些性能和重复数据删除/版本控制问题。在这里,可以运行 OPTIMIZE FINAL 来删除重复项,但不能连续运行。
因此,我们计划保留一个每天分区的表 A,其中包含传入的数据。然后是一个按月分区的表 B,用于存储历史数据。查询将被定向到包含两者的 MERGE 表(不是 MergeTree)。
然后,我们设置了一个动作,在每天结束后将最新的分区从 A 移动到 B。
但是,移动分区就像在MOVE PARTITION TO TABLE中指出“两个表必须具有相同的分区键。”一样,这是不可能的。一种方法是将数据从 A 的日常分区复制到 B,然后分离/删除 A 中的日常分区。但是与此同时,我们会看到重复。
以最小的影响将此数据从 A 传输到 B 的最佳方法是什么?还有什么其他选择?
解决方案
一种方法是将数据从 A 的日常分区复制到 B,然后分离/删除 A 中的日常分区。但是与此同时,我们会看到重复。
您可以将数据复制到中间/临时表 TB(与 B 相同的结构/分区)。然后在 A 中删除分区,然后从 TB 移动到 B
推荐阅读
- python - 这种递归二分搜索是如何工作的?用于查找 bst 中的第 k 个最小节点
- javascript - 带有 4 位小数的货币格式正则表达式,如果没有则不显示美分
- c++ - C++ Setter 不给派生类赋值
- javascript - 用另一个数组创建对象数组
- javascript - 异步需要回调函数吗
- r - 缺少某些日期时,Dplyr 在日期之间更改列指示符
- git - 目录名称无效 - Git 和 R Studio 版本控制
- jsf - 如何将值与 p:commandButton 和 p:dialog 一起传递
- python - 是aa的绑定方式
在 python 中使用树视图小部件时函数的事件 - isabelle - 紫色的 Isabelle 证明是否有效?