Clickhouse Kafka 引擎:物化视图的好处

Clickhouse Kafka Engine: Materialized View benefits

在文档中,它展示了一种使用从 KafkaEngine 将数据发送到 *MergeTree 系列的物化视图的方法 table。

这样做的好处是,如果转换逻辑发生变化,分离 table,进行更改,然后重新附加。

但是,如果您不对其应用逻辑(例如字段类型转换),那么使用实体化视图作为目的地并应用 *MergeTree 引擎是否更有意义?即删除 TO table 部分并将查询发送到物化视图。

不过,我在任何地方都看不到这种方法。我可以看到灵活性的损失,但是,这种方法是否有意义?这种方法的局限性是什么?

我会说它基本上是一样的。

唯一的区别是没有 TO <table> 子句,ClickHouse 会创建 table .inner.<mv name> 并将数据存储在那里,而不是将其存储在 <table> 中。否则行为是相同的 AFAIK。

总而言之,我认为最好使用 TO <table> 子句,因为您可以更好地控制创建的 table。此外,ClickHouse 中的 MV 不是视图,也不是 tables,而是触发器。所以我更愿意那样对待它们,而不是期望它们被用来从它们读取数据。