【问题标题】:Why we can't make materialized view on top of another view in clickhouse?为什么我们不能在 clickhouse 的另一个视图之上制作物化视图?
【发布时间】:2020-05-09 06:52:17
【问题描述】:

A 是一个 collapsingMergeTree 引擎表

CREATE VIEW A AS SELECT * FROM A final;

创建物化视图 a_mview1 到 B AS选择ID, 姓名 来自A;

这不起作用,似乎我们无法在视图上显示 mview..但是为什么?

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    CREATE VIEW A AS SELECT * FROM A final;

    这是不可能的。因为 MV 从不读取源表。 MV 从 INSERT 命令获取插入的块。

    【讨论】:

      【解决方案2】:

      普通视图不存储任何数据(参见doc),因此将其用作Materialized视图的数据源是错误的。

      需要根据原始表创建物化视图:

      CREATE TABLE A (
        ..
      ) ENGINE = CollapsingMergeTree
      .. ;
      
      CREATE MATERIALIZED VIEW a_mview1 TO B 
      AS 
      SELECT ..
      FROM A
      .. ;
      

      详情请看文章ClickHouse Materialized Views Illuminated

      【讨论】:

        猜你喜欢
        • 2021-06-13
        • 2021-12-06
        • 2015-08-04
        • 1970-01-01
        • 1970-01-01
        • 2021-07-24
        • 2021-10-09
        • 2011-02-06
        • 2020-08-01
        相关资源
        最近更新 更多