前言:
在数据量日益增长的当下,传统数据库的查询性能已满足不了业务需求。而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处理日志可以将服务器成本降低一半。
二、Clickhouse特点
1.列式储存,以下表为例
- 如果为行式存储,在磁盘上的结构为:
适合查某个人所有的属性,通过一次磁盘查找+顺序读取就可以;如果查所有人的年龄,则需要全表扫描或者不停的查找,遍历很多不需要的数据。
- 如果为列式存储,在磁盘上的结构为:
Clickhouse列式存储的好处:
- 对列的聚合、计数、求和等统计操作优于行式存储
- 由于某一列的数据类型是相同的,针对数据存储更容易压缩。每一列选择更优的数据压缩算法,大大提高了数据的压缩比重。
- 数据压缩比更好,节省了磁盘空间,另一方面对于cache有了更大的发挥空间。
2.完备的DBMS 功能
涵盖了大部分标准SQL的语法,包括DDL和DML,以及配套的函数,用户管理及权限管理,数据备份和恢复。
3.支持多样化引擎
clickhouse 和 mysql 类似,把表及存储引擎插件化,根据表不同的需求可以设置不同存储引擎。包括合并树、日志、接口和其他20多种引擎。
三、好用的ClickHouse管理工具
目前,ClickHouse虽陆续被众多商业公司或研究机构应用到了其生产环境。但它也有不足之处,比如:
- 不支持事务、异步删除与更新。
- 不擅长根据主键按行粒度进行查询(虽然支持)。
- 不适用高并发场景。
为了方便企业更好地对ClickHouse进行管理,擎创科技自主研发了一款管理工具——ClickHouse CKman(ClickHouse Manager)。它的前端采用Vue框架,后端使用Go语言编写,主要用来管理ClickHouse集群、节点以及数据监控等,致力于服务ClickHouse分布式的操作以及管理,同时提供简单的数据查询窗口。(下附安装视频)
本系列文章将逐步介绍ckman从安装到使用的详细教程,如果您感兴趣或有任何问题,欢迎随时联系我们~
系列教程1
擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司致力于协助企业客户提升对运维数据的洞见能力,优化运维效率,充分体现科技运维对业务运营的影响力。
行业龙头客户的共同选择