前言:

在数据量日益增长的当下,传统数据库的查询性能已满足不了业务需求。而Clickhouse在OLAP(On-Line Analysis Processing——即一种在线分析处理的,用于数据分析的计算方法)领域的应用,可以助力企业打造完备的运维管理平台,从而实现降本增效的目标。


●注解:ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。

一、为什么选择Clickhouse

  • 写入吞吐量大。单服务器日志写入量在50MB到200MB/s,每秒写入超过60w记录数,是ES的5倍以上。在ES中比较常见的写Rejected导致数据丢失、写入延迟等问题,在ClickHouse中不容易发生。
  • 支持快速即时查询。官方宣称数据在pagecache中,单服务器查询速率大约在2-30GB/s;没在pagecache的情况下,查询速度取决于磁盘的读取速率和数据的压缩率。经测试ClickHouse的查询速度比ES快5-30倍以上。
  • 相较于其他服务器成本更低。一方面ClickHouse的数据压缩比比ES高,相同数据占用的磁盘空间只有ES的1/3到1/30,节省了磁盘空间的同时,也能有效的减少磁盘IO,这也是ClickHouse查询效率更高的原因之一;另一方面ClickHouse比ES占用更少的内存,消耗更少的CPU资源。预估用ClickHouse处理日志可以将服务器成本降低一半。

Es clickhouse es clickhouse 并发写_clickhouse

二、Clickhouse特点

1.列式储存,以下表为例

Es clickhouse es clickhouse 并发写_clickhouse_02

  • 如果为行式存储,在磁盘上的结构为:

Es clickhouse es clickhouse 并发写_Es clickhouse_03

适合查某个人所有的属性,通过一次磁盘查找+顺序读取就可以;如果查所有人的年龄,则需要全表扫描或者不停的查找,遍历很多不需要的数据。

  • 如果为列式存储,在磁盘上的结构为:

Es clickhouse es clickhouse 并发写_数据_04

Clickhouse列式存储的好处:

  • 对列的聚合、计数、求和等统计操作优于行式存储
  • 由于某一列的数据类型是相同的,针对数据存储更容易压缩。每一列选择更优的数据压缩算法,大大提高了数据的压缩比重。
  • 数据压缩比更好,节省了磁盘空间,另一方面对于cache有了更大的发挥空间。

2.完备的DBMS 功能

涵盖了大部分标准SQL的语法,包括DDL和DML,以及配套的函数,用户管理及权限管理,数据备份和恢复。

3.支持多样化引擎

clickhouse 和 mysql 类似,把表及存储引擎插件化,根据表不同的需求可以设置不同存储引擎。包括合并树、日志、接口和其他20多种引擎。

三、好用的ClickHouse管理工具

目前,ClickHouse虽陆续被众多商业公司或研究机构应用到了其生产环境。但它也有不足之处,比如:

  • 不支持事务、异步删除与更新。
  • 不擅长根据主键按行粒度进行查询(虽然支持)。
  • 不适用高并发场景。

为了方便企业更好地对ClickHouse进行管理,擎创科技自主研发了一款管理工具——ClickHouse CKman(ClickHouse Manager)。它的前端采用Vue框架,后端使用Go语言编写,主要用来管理ClickHouse集群、节点以及数据监控等,致力于服务ClickHouse分布式的操作以及管理,同时提供简单的数据查询窗口。(下附安装视频)