我使用clickhouse作为“一种可更新的大型(数亿行)表”,具有 ReplacingMergeTree
. 我需要按批插入并执行一些非聚合选择。很好用。
尽管这是一个有点黑客,远远不是最佳的(我的意思是不像clickhouse的olap),它可以扩展得相当好,仍然执行速度比系统或多或少致力于此,如hbase或rdbms(为我的需要)。
我用一个 ReplacingMergeTree
带键的表:
CREATE TABLE Things (Key Int32, ValueA Int32, ValueB Int32)
ENGINE = ReplacingMergeTree() ORDER BY Key
我插入:
INSERT INTO Things (Key,ValueA,ValueB) ...
并用“ FINAL
“修饰符:
SELECT Key,ValueA,ValueB FROM Things FINAL WHERE ...
我可以使用名为“killed”的列来“删除”对象。但有时,我需要清理“杀死”的对象,以防止表不断增长。
我找到的唯一方法是重新创建一个新表并在其中插入非终止行。有更聪明的方法吗?
1条答案
按热度按时间4jb9z9bj1#
clickhouse支持
DML
操作,所以您不需要ReplacingMergeTree
像这样的墓碑记录。结帐https://clickhouse.yandex/docs/en/query_language/alter/#mutations 更多细节。