本篇文章探讨了大数据分析之解决Hadoop的短板,实时大数据分析引擎ClickHouse解析,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。
一、背景
提到大数据不得不提Hadoop,当下的Hadoop已不仅仅是当初的HDFS + MR(MapReduce)这么简单。基于Hadoop而衍生的Hive、Pig、Spark、Presto、Impala等一系列组件共同构成了Hadoop生态体系。Hadoop生态为今天的大数据领域提供着稳定可靠的数据服务。
Hadoop生态体系解决了大数据界的大部分问题,当然其也存在缺点。Hadoop体系的最大短板在于数据处理时效性。基于Hadoop生态的数据处理场景大部分对时效要求不高,按照传统的做法一般是 T + 1 的数据时效。即 Trade + 1,数据产出在交易日 + 1 天。
ClickHouse的产生就是为了解决大数据量处理的时效性。>>>>二、概述
Clickhouse,专为在线数据分析而设计。官方提供的文档表明,ClickHouse 日处理记录数“十亿级”。
1.特性采用列式存储
数据压缩
基于磁盘的存储,大部分列式存储数据库为了追求速度,会将数据直接写入内存,按时内存的空间往往很小
CPU利用率高,在计算时会使用机器上的所有CPU资源
支持分片,并且同一个计算任务会在不同分片上并行执行,计算完成后会将结果汇总
支持SQL,SQL几乎成了大数据的标准工具,使用门槛较低
支持联表查询
支持实时更新
自动多副本同步
支持索引
分布式存储查询
2.性能
根据官方提供的数据,性能表现大致如下:低延迟:对于数据量(几千行,列不是很多)不是很大的短查询,如果数据已经被载入缓存,且使用主码,延迟在50MS左右
并发量:虽然ClickHouse是一种在线分析型数据库,也可支持一定的并发。当单个查询比较短时,官方建议100 Queries / second
写入速度:在使用MergeTree引擎的情况下,写入速度大概是50 - 200M / s,如果按照1 K一条记录来算,大约每秒可写入50000 ~ 200000条记录每秒。如果每条记录比较小的话写入速度会更快
3.接口对外提供Http,JDBC两种接口方式
对内各模块间使用TCP连接通信
4.与Hadoop的区别Hadoop体系是一种离线系统,一般很难支持即席查询。ClickHouse可以支持即席查询
Hadoop体系一般不支持实时更新,都采用批量更新和写入。ClickHouse支持实时数据更新
Hadoop体系一般采用行记录存储,数据查询需要扫描所有列,当表很宽时会扫描很多用不到的列。ClickHouse是列式存储,查询只需要加载相关的列。>>>>三、引擎
Clickhouse提供了丰富的存储引擎,存储引擎的类型决定了数据如何存放、如何做备份、如何被检索、是否使用索引。不同的存储引擎在数据写入/检索方面做平衡,以满足不同业务需求。
本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!