ClickHouse视图

您所在的位置:网站首页 endnote20同步 ClickHouse视图

ClickHouse视图

2023-03-30 04:52| 来源: 网络整理| 查看: 265

ClickHouse拥有普通和物化两种视图,其中物化视图拥有独立的存储,而普通视图只是一层简单的查询代理

1.普通视图

语法

CREATE VIEW [IF NOT EXISTS] [db_name.]view_name AS SELECT ...

普通视图不会存储任何数据,它只是一层单纯的SELECT查询映射,起着简化查询,明晰语义的作用,对查询性能不会有任何增强

drop view view_name; -- 删除视图 2.物化视图

物化视图支持表引擎,数据保存形式由它的表引擎决定,创建物化视图的完整语法如下

CREATE MATERIALIZED VIEW [IF NOT EXISTS] [db.]table_name [ON CLUSTER] [TO[db.]name] [ENGINE = engine] [POPULATE] AS SELECT ...

物化视图创建好之后,如果源表被写入新数据,那么物化视图也会同步更新,POPULATE修饰符决定了物化视图的初始策略;如果使用了POPULATE修饰符,那么在创建物化视图的过程中,会连带将原表中已存在的数据一并导入,如果执行了 INTO SELECT一般;反之,如果不使用 POPULATE修饰符,

那么物化视图在创建之后是没有数据的,它只会同步在此之后被写入源表的数据.物化视图目前并不支持同步删除,如果在源表中删除了数据,物化视图饿数据仍会保留.

create materialized view test3_view engine = Log populate as select * from tb_test3 ; -- 建表的时候同步数据 , 当数据更新以后 物化视图中的数据会同步更新 , 但是当删除数据以后,物化视图中的数据不会被删除 SELECT * FROM test3_view ; ┌─id─┬─name───┬─role─┐ │ 1 │ HANGGE │ VIP │ │ 2 │ BENGE │ VIP │ │ 3 │ PINGGE │ VIP │ └────┴────────┴──────┘ -- 向源表中擦混入数据 SELECT * FROM test3_view ┌─id─┬─name──┬─role─┐ │ 4 │ TAOGE │ VIP │ └────┴───────┴──────┘ ┌─id─┬─name───┬─role─┐ │ 1 │ HANGGE │ VIP │ │ 2 │ BENGE │ VIP │ │ 3 │ PINGGE │ VIP │ └────┴────────┴──────┘ -- 删除源表中的数据 , 物化视图中的数据 不会变化 **** 注意: 数据删除语法只适用于MergeTree引擎的表 基本语法如下 ALTER TABLE db_name.table_name DROP PARTITION '20210601' ALTER TABLE db_name.table_name DELETE WHERE day = '20210618' ALTER TABLE UPDATE col1 = expr1, ... WHERE



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3