0
点赞
收藏
分享

微信扫一扫

Clickhouse架构概述(一)---clickhouse的核心特性

1.完备的DBMS功能

clickhouse拥有完备的管理功能,具有DBMS的基本功能,如下所示:

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

2.列式存储与数据压缩

clickhouse就是一款使用列式存储的数据库,数据按列进行组织,属于同一列的数据会被保存在一起,列与列之间也会由不同的文件分别保存(MergeTree表引擎)。数据默认使用LZ4算法压缩,数据总体压缩比例可以达到8:1.列式存储可以降低IO和存储压力,还为向量化执行做好了铺垫

3.向量化执行引擎

利用CPU的SIMD指令。即用单条指令操作多条数据,现代计算机系统概念中,是通过数据并行以提高性能的一种实现方式,原理是在cpu寄存器层面实现数据的并行操作。离CPU越近,数据访问速度越快
数据级别的并行

关系模型与SQL查询

clickhouse完全使用sql语言作为查询语言,使用关系模型描述数据并提供了传统数据库的概念(数据库,表,视图和函数等)。具有更好的描述能力,能够更清晰地表述实体间的关系。在olap领域,将构建的传统关系型数据库或数据仓库之上的系统迁移到clickhouse成本会变的更低

多样化的表引擎

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

多线程与分布式

多线程处理就是通过线程级并行的方式实现了性能的提升。clickhouse在数据存取方面,既支持分区(纵向扩展,利用多线程原理),也支持分片(横向扩展,利用分布式原理),可以说将多线程和分布式技术应用到极致。

多主架构

clickhouse采用多主架构,即群众每个节点角色对等,客户端访问任意一个节点都能得到相同的效果。规避了单节点故障的问题,非常适合于多数据中心、异地多活的场景。

在线查询

clickhouse又快又开源,基本即时查询

数据分片与分布式查询

数据分片是将数据进行横向切分,在海量数据场景下,解决存储和查询瓶颈的有效手段,是一种分治思想的体现。clickhouse支持分片,而分片依赖集群。每个集群由1到多个分片组成,而每个分片则对应的clickhouse的1个服务节点。分片的数量上限取决于节点数量。

clickhouse并不像提供本地表(local table)与分布式表(distributed table)的概念。一张本地表等同于一份数据的分片。而分布式表本身不存储任何数据,是本地表的代理,作用类似于分库中间件。借助分布式表,能够代理访问多个数据分片,从而实现分布式查询。

举报

相关推荐

0 条评论