ClickHouse的核心特性

作者: ZYvette | 来源:发表于2021-05-10 16:30 被阅读0次

ClickHouse是一款MPP架构的列式存储数据库

完备的DBMS功能

❑ DDL(数据定义语言):可以动态地创建、修改或删除数据库、表和视图,而无须重启服务。
❑ DML(数据操作语言):可以动态查询、插入、修改或删除数据。
❑ 权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性。
❑ 数据备份与恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求。
❑ 分布式管理:提供集群模式,能够自动管理多个数据库节点。

列式存储与数据压缩

列式存储和数据压缩是高性能数据库必不可少的特点。
让查询变快,最简单的是减少数据扫描范围和数据传输时的大小。
两个是伴生的,列式存储是数据压缩的前提。

列式存储

  • 举例1:表有50个字段,现取5个字段。select A1,...,A5 from A
    a. 按行处理:由于数据是按行进行组织的,实际上还是扫描了所有的字段。
    b. 由于数据按列组织,数据库可以直接获取A1~A5这5列的数据,从而避免了多余的数据扫描。

数据压缩

  • 重复率高-> 压缩率高-> 数据体量小-> 网络传输开,网络带宽和磁盘IO压力小。
    同一列的重复数据概率更大。

  • clickhouse 特点:
    a. 使用列式存储,按列组织,不同列不同文件
    b. 数据默认使用LZ4算法压缩,压缩比8:1
    c. 列式存储除了降低IO和存储的压力之外,还为向量化执行做好了铺垫

向量化执行引擎

  • 向量化执行就是这种方式的典型代表,这项寄存器硬件层面的特性,为上层应用程序的性能带来了指数级的提升。
  • 为了实现向量化执行,需要利用CPU的SIMD指令(单条指令操作多条数据)。现代计算机系统概念中,它是通过数据并行以提高性能的一种实现方式(其他的还有指令级并行和线程级并行),它的原理是在CPU寄存器层面实现数据的并行操作。

关系模型与SQL查询

  • ClickHouse使用关系模型描述数据并提供了传统数据库的概念(数据库、表、视图和函数等)
  • 在SQL解析方面,ClickHouse是大小写敏感的,这意味着SELECT a和SELECT A所代表的语义是不同的。
  • ClickHouse使用了关系模型,所以将构建在传统关系型数据库或数据仓库之上的系统迁移到ClickHouse的成本会变得更低,可以直接沿用之前的经验成果。

多样化的表引擎

  • ClickHouse也将存储部分进行了抽象,把存储引擎作为一层独立的接口。
    ClickHouse共拥有合并树、内存、文件、接口和其他6大类20多种表引擎。
    其中每一种表引擎都有着各自的特点,用户可以根据实际业务场景的要求,选择合适的表引擎使用。

  • 好处:通过特定的表引擎支撑特定的场景,十分灵活。对于简单的场景,可直接使用简单的引擎降低成本,而复杂的场景也有合适的选择。

多线程与分布式

  • 如果说向量化执行是通过数据级并行的方式提升了性能,
    那么多线程处理就是通过线程级并行的方式实现了性能的提升。
    由于SIMD不适合用于带有较多分支判断的场景,ClickHouse也大量使用了多线程技术以实现提速,以此和向量化执行形成互补。
  • ClickHouse在数据存取方面,既支持分区(纵向扩展,利用多线程原理),也支持分片(横向扩展,利用分布式原理),可以说是将多线程和分布式的技术应用到了极致。

多主架构

  • ClickHouse则采用Multi-Master多主架构,集群中的每个节点角色对等,客户端访问任意一个节点都能得到相同的效果
  • 这种多主的架构有许多优势,例如对等的角色使系统架构变得更加简单,不用再区分主控节点、数据节点和计算节点,集群中的所有节点功能相同。所以它天然规避了单点故障的问题,非常适合用于多数据中心、异地多活的场景。

在线查询

数据分片与分布式查询

  • 数据分片是将数据进行横向切分,这是一种在面对海量数据的场景下,解决存储和查询瓶颈的有效手段,是一种分治思想的体现。
  • ClickHouse提供了本地表(Local Table)与分布式表(Distributed Table)的概念。一张本地表等同于一份数据的分片。而分布式表本身不存储任何数据,它是本地表的访问代理,其作用类似分库中间件。借助分布式表,能够代理访问多个数据分片,从而实现分布式查询。
  • 例如在业务系统上线的初期,数据体量并不高,此时数据表并不需要多个分片。所以使用单个节点的本地表(单个数据分片)即可满足业务需求,待到业务增长、数据量增大的时候,再通过新增数据分片的方式分流数据,并通过分布式表实现分布式查询。

相关文章

网友评论

    本文标题:ClickHouse的核心特性

    本文链接:https://www.haomeiwen.com/subject/uznudltx.html