ClickHouse高级学习(二)Clickhouse数据详解(待更新)

数据定义

定义数据表

数据库

  1. 数据库起到了命名空间的作用,可以有效规避命名冲突的问题,也为后续的数据隔离提供了支撑。语法表示如下:CREATE DATABASE IF NOT EXISTS db_name [ENGINE = engine],其中数据库引擎
    • Ordinary:默认引擎,在绝大多数情况下我们都会使用默认引
      擎,使用时无须刻意声明。在此数据库下可以使用任意类型的表引
      擎。
    • Dictionary:字典引擎,此类数据库会自动为所有数据字典创建它们的数据表。
    • Memory:内存引擎,用于存放临时数据。此类数据库下的数据表只会停留在内存中,不会涉及任何磁盘操作,当服务重启后数据会被清除
    • Lazy:日志引擎,此类数据库下只能使用Log系列的表引擎
    • MySQL:MySQL引擎,此类数据库下会自动拉取远端MySQL中的数据,并为它们创建MySQL表引擎的数据表

视图

  1. Clickhouse 拥有普通和物化视图,其中物化视图拥有独立的存储,而普通视图只是一层简单的查询代理。
  2. 创建普通视图的完整语法:create view [db.name].view_name as select ...,普通视图不会存储任何数据,它只是一层单纯的select查询映射,起着简化查询,明晰语义的作用,对查询性能不会有任何增强。
  3. 物化视图支持表引擎,数据保存形式由它的表引擎决定,创建物化视图的完整语法:CREATE [MATERIALIZED] VIEW [IF NOT EXISTS][db.]table_name [TO[db.]name] [ENGINE = engine] [POPULATE] AS SELECT ...,物化视图创建好之后,如果源表被写入新数据,那么物化视图也
    会同步更新。
    • POPULATE修饰符决定了物化视图的初始化策略:如果使用了POPULATE修饰符,那么在创建视图的过程中,会连带将源表中已存在的数据一并导入,如同执行了SELECT INTO一般;反之,如果不使用POPULATE修饰符,那么物化视图在创建之后是没有数据的,它只会同步在此之后被写入源表的数据。
    • 物化视图目前并不支持同步删除,如果在源表中删除了数据,物化视图的数据仍会保留。

分布式DDL执行

  1. ClickHouse支持集群模式,一个集群拥有1到多个节点。CREATE、ALTER、DROP、RENMAE及TRUNCATE这些DDL语句,都支持分布式执行。这意味着,如果在集群中任意一个节点上执行DDL语句,那么集群中的每个节点都会以相同的顺序执行相同的语句。将一条普通的DDL语句转换成分布式执行十分简单,只需加上ON CLUSTER cluster_name声明即可。
    在这里插入图片描述

数据字典

内置字典

外部扩展字典

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值