clickhouse 列式存储数据库介绍

Posted OkidoGreen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clickhouse 列式存储数据库介绍相关的知识,希望对你有一定的参考价值。

ClickHouse介绍

  • ClickHouse来自哪里?

俄罗斯最大的搜索公司Yandex,在clickhouse的配置文件中我们也会看到yandex的影子。

  • ClickHouse是什么?

ClickHouse是一个开源的列式数据库(DBMS),主要用于在线分析处理查询(OLAP),于2016年开源,采用C++开发。凭借优秀的性能,市场反应非常热烈。

  • 什么是列式数据库?

相对行式数据库,像mysql、Oracle、SqlServer等都是行式存储,是把同一行的数据放到相邻同一数据块种,而列式存储是把同一列的数据放到相邻同一数据块种,这样在进行计算类查询时,可以大大减少IO消耗,返回结果更快,采用列式存储后在进行数据记录写入的时候会麻烦一些。

行式存储:

列式存储:

性能测试

主要特性

  • 丰富的表引擎,主要用到以下表引擎

MergeTree引擎家族:ReplicatedMergeTree

Distributed分布式引擎

  • 矢量计算:减少调用次数,适用现代CPU的扩展指令集支持SIMD
  • 丰富的SQL和函数
  • 强有力的数据压缩:相对mysql压缩10倍
  • 分布式处理
  • 列式存储:降低io消耗
  • 数据复制完整性
  • 集群式管理
  • 可直接读取MYSQL数据

       待完善功能:

  • 不支持二级索引
  • 不支持事物:不适合OLTP
  • 低并发:不适合高QPS的KV存储
  • 对长文本支持差:建议用ES

架构:采用分布式+高可用集群

  1. Clickhouse分布式通过配置文件来实现,同一集群配置多个shard,每个shard都配置相同的配置文件;而高可用需要借助zookeeper来实现,表采用ReplicatedMergeTree引擎,共享同一个ZK路径的表,会相互同步数据;

  1. ReplicatedMergeTree,复制引擎,基于MergeTree,实现数据复制,即高可用;
  2. Distributed,分布式引擎,本身不存储数据,将数据分发汇总;
  3. app不管连接哪台shard,通过访问Distributed引擎表,读取的数据都是一致的。

官方网站:

         https://clickhouse.yandex/docs/en

以上是关于clickhouse 列式存储数据库介绍的主要内容,如果未能解决你的问题,请参考以下文章

列式存储?OLAP?ClickHouse究竟是何方神圣

列式存储?OLAP?ClickHouse究竟是何方神圣

列式存储?OLAP?ClickHouse究竟是何方神圣

[2]Clickhouse列式存储的明日之星:创建和添加数据

[1]Clickhouse列式存储的明日之星: 概述和安装

[1]Clickhouse列式存储的明日之星: 概述和安装