在文档中,它显示了一种使用从KafkaEngine消费的物化视图的方法,该视图将数据发送到* MergeTree族表。
这样做的好处是,在更改转换逻辑的情况下,可以分离表,进行更改并重新附加。
但是,如果您不对其应用逻辑(例如,字段类型转换),那么将物化视图用作目标并应用* MergeTree引擎是否更有意义?即删除TO table
部分并将查询发送到实例化视图。
不过,我在任何地方都看不到这种方法。我可以看到灵活性上的损失,但是,这种方法是否有意义?这种方法有什么局限性?
答案 0 :(得分:0)
我会说基本上是一样的。
唯一的区别是,没有TO <table>
子句,ClickHouse会创建表.inner.<mv name>
并在其中存储数据,而不是将其存储在<table>
中。否则,行为是相同的AFAIK。
因此,总而言之,我想最好使用TO <table>
子句,因为您可以更好地控制所创建的表。此外,ClickHouse中的MV既不是视图也不是表,而是触发器。因此,我更喜欢以这种方式对待它们,而不希望它们被用来从其中读取数据。