clickhouse从入门到精通

本文介绍ClickHouse的库引擎和表引擎,特别聚焦于MergeTree引擎及其高效数据处理能力。文章对比了ClickHouse与Elasticsearch的不同之处,并探讨了ClickHouse如何通过优化数据存储和查询过程来提升性能。
摘要由CSDN通过智能技术生成

1、像MySQL一样,CH也有引擎,分为库引擎和表引擎
库引擎有内存,mysql,lazy等。比如建库的时候指定mysql连接,就可以在CH CLI里面操作连接到的mysql数据;表引擎有memory,log,合并树等等。引擎决定数据的存储方式,是否索引,是否能分区,是否支持副本等等
2、为什么快
底层c++开发,可以充分利用硬件优势;建立索引;使用大量算法处理数据;支持向量化处理
3、mergetree数据存储文件详解

字段.bin   存储各个字段的二进制压缩数据
字段.mrk  标记对应的 字段.bin 文件中的数据(块)的偏移量
primary.idx  主键索引(稀疏索引)
通过这上面三个文件,可以快速查询数据信息

4、浓密索引:一个索引对应一个数据
稀疏索引:一个索引对应多个数据
5、replacing合并树,有以下两个扩展功能,基于这两个功能可实现数据更新

1)分区内合并文件(optimize table)的时候,将分区内主键相同的数据去重
2)有版本号概念,只保留最大版本数据

6、建表的时候设置order by字段,排好序,那么会加快查询效率
7、mysql的主键是唯一的,但是ch的主键不唯一,只是用来做索引,排序使用
8、web展示hdfs的海量数据的方法
利用计算引擎:presto,impala,spark sql,这些计算引擎不存储数据;
利用计算存储引擎:clickhouse, es等,将数仓dm层数据导入ch,ch负责快速查询
9、ClickHouse 是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
相比HBase和Redis这类NoSQL数据库,ClickHouse使用关系模型描述数据并提供了传统数据库的概念 ( 数据库、表、视图和函数等 )。与此同时,ClickHouse完全使用SQL作为查询语言 ( 支持GROUP BY、ORDER BY、JOIN、IN等大部分标准SQL )
10、HDFS、Spark、HBase和Elasticsearch这类分布式系统,都采用了Master-Slave主从架构,由一个管控节点作为Leader统筹全局。而ClickHouse则采用Multi-Master多主架构
11、CH架构设计

  • 1)Column和Field是ClickHouse数据最基础的映射单元,内存中的一列数据由一个Column对象表示
  • 2)ClickHouse的集群由分片 ( Shard ) 组成,而每个分片又通过副本 ( Replica )组成。这种分层的概念,在一些流行的分布式系统中十分普遍。例如,在Elasticsearch的概念中,一个索引由分片和副本组成,副本可以看作一种特殊的分片。如果一个索引由5个分片组成,副本的基数是1,那么这个索引一共会拥有10个分片( 每1个分片对应1个副本 )。
    如果你用同样的思路来理解ClickHouse的分片,那么很可能会在这里栽个跟头。ClickHouse的某些设计总是显得独树一帜,而集群与分片就是其中之一。这里有几个与众不同的特性。
    ClickHouse的1个节点只能拥有1个分片,也就是说如果要实现1分片、1副本,则至少需要部署2个服务节点。
    分片只是一个逻辑概念,其物理承载还是由副本承担的。

12、ES和CH的区别

  • 1)ClickHouse比ES服务器成本更低。一方面ClickHouse的数据压缩比比ES高,相同数据占用的磁盘空间只有ES的1/3到1/30,节省了磁盘空间的同时,也能有效的减少磁盘IO,这也是ClickHouse查询效率更高的原因之一;另一方面ClickHouse比ES占用更少的内存,消耗更少的CPU资源。我们预估用ClickHouse处理日志可以将服务器成本降低一半。
  • 2)CH稳定性更好。ES中一个大查询可能导致OOM的问题;ClickHouse通过预设的查询限制,会查询失败,不影响整体的稳定性。

13、Clickhouse中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(***MergeTree)中的其他引擎。MergeTree表引擎主要用于海量数据分析,支持数据分区、存储有序、主键索引、稀疏索引、数据TTL等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值