admin 管理员组文章数量: 1086019
2024年6月2日发(作者:css入场动画)
从Hadoop到ClickHouse,现代BI系统
有哪些问题?如何解决?
2006年开源项目Hadoop的出现,标志着大数据技术普及的开始,大数据技术真正开始走向
普罗大众。长期以来受限于数据库处理能力而苦不堪言的各路豪杰们,仿佛发现了新大陆,
于是一轮波澜壮阔的技术革新浪潮席卷而来。
从某种角度来看,以使用Hadoop生态为代表的这类非传统关系型数据库技术所实现的BI
系统,可以称为现代BI系统。换装了大马力发动机的现代BI系统在面对海量数据分析的场
景时,显得更加游刃有余。
然而Hadoop技术也不是银弹,在现代BI系统的构建中仍然面临诸多挑战。在海量数据下
要实现多维分析的实时应答,仍旧困难重重。(现代BI系统的典型应用场景是多维分析,
某些时候可以直接使用OLAP指代这类场景。)
Hadoop最初指代的是分布式文件系统HDFS和MapReduce计算框架,但是它一路高歌猛进,
在此基础之上像搭积木一般快速发展成为一个庞大的生态(包括Yarn、Hive、HBase、Spark
等数十种之多)。在大量数据分析场景的解决方案中,传统关系型数据库很快就被Hadoop
生态所取代,我所处的BI领域就是其中之一。
传统关系型数据库所构建的数据仓库,被以Hive为代表的大数据技术所取代,数据查询分
析的手段也层出不穷,Spark、Impala、Kylin等百花齐放。Hadoop发展至今,早已上升成
为大数据的代名词,仿佛一提到海量数据分析场景下的技术选型,就非Hadoop生态莫属。
虽然Hadoop生态化的属性带来了诸多便利性,例如分布式文件系统HDFS可以直接作为其他
组件的底层存储(例如HBase、Hive等),生态内部的组件之间不用重复造轮子,只需相互
借力、组合就能形成新的方案。
但生态化的另一面则可以看作臃肿和复杂。Hadoop生态下的每种组件都自成一体、相互独
立,这种强强组合的技术组件有些时候显得过于笨重了。与此同时,随着现代化终端系统对
实效性的要求越来越高,Hadoop在海量数据和高时效性的双重压力下,也显得有些力不从
心了。
我从2012年正式进入大数据领域,开始从事大数据平台相关的基础研发工作。2016年我所
在的公司启动了战略性创新产品的规划工作,自此我开始将工作重心转到设计并研发一款具
备现代化SaaS属性的BI分析类产品上。为了实现人人都是分析师的最终目标,这款BI产
品必须至少具备如下特征。
▪
一站式:下至数百条数据的个人Excel表格,上至数亿级别的企业数据,都能够在系统内部
被直接处理。
▪
▪
自服务,简单易用:面向普通用户而非专业IT人员,通过简单拖拽或搜索维度,就能完成
初步的分析查询。分析内容可以是自定义的,并不需要预先固定好。
▪
▪
实时应答:无论数据是什么体量级别,查询必须在毫秒至1秒内返回。数据分析是一个通过
不断提出假设并验证假设的过程,只有做到快速应答,这种分析过程的路径才算正确。
▪
▪
专业化、智能化:需要具备专业化程度并具备智能化的提升空间,需要提供专业的数学方法。
▪
为了满足上述产品特性,我们在进行底层数据库技术选型的时候可谓是绞尽脑汁。
以Spark为代表的新一代ROLAP方案虽然可以一站式处理海量数据,但无法真正做到实时应
答和高并发,它更适合作为一个后端的查询系统。而新一代的MOLAP方案虽然解决了大部分
查询性能的瓶颈问题,能够做到实时应答,但数据膨胀和预处理等问题依然没有被很好解决。
除了上述两类方案之外,也有一种另辟蹊径的选择,即摒弃ROLAP和MOALP转而使用搜索引
擎来实现OLAP查询,ElasticSearch是这类方案的代表。ElasticSearch支持实时更新,在
百万级别数据的场景下可以做到实时聚合查询,但是随着数据体量的继续增大,它的查询性
能也将捉襟见肘。
难道真的是鱼与熊掌不可兼得了吗?直到有一天,在查阅一份Spark性能报告的时候,我不
经意间看到了一篇性能对比的博文。
Spark的对手是一个我从来没有见过的陌生名字,在10亿条测试数据的体量下,Spark这个
我心目中的绝对王者,居然被对手打得落花流水,查询响应时间竟然比对手慢数90%之多。
而对手居然只使用了一台配有i5 CPU、16GB内存和SSD磁盘的普通PC电脑。
我揉了揉眼睛,定了定神,这不是做梦。ClickHouse就这样进入了我的视野。
1. 天下武功唯快不破
我对ClickHouse的最初印象极为深刻,其具有ROLAP、在线实时查询、完整的DBMS、列式
存储、不需要任何数据预处理、支持批量更新、拥有非常完善的SQL支持和函数、支持高可
用、不依赖Hadoop复杂生态、开箱即用等许多特点。
特别是它那夸张的查询性能,我想大多数刚接触ClickHouse的人也一定会因为它的性能指
标而动容。在一系列官方公布的基准测试对比中,ClickHouse都遥遥领先对手,这其中不
乏一些我们耳熟能详的名字。
所有用于对比的数据库都使用了相同配置的服务器,在单个节点的情况下,对一张拥有133
个字段的数据表分别在1000万、1亿和10亿三种数据体量下执行基准测试,基准测试的范
围涵盖43项SQL查询。
在1亿数据集体量的情况下,ClickHouse的平均响应速度是Vertica的2.63倍、InfiniDB
的17倍、MonetDB的27倍、Hive的126倍、MySQL的429倍以及Greenplum的10倍。
详细的测试结果可以查阅:
/
2. 社区活跃
ClickHouse是一款开源软件,遵循Apache License 2.0协议,所以它可以被免费使用。同
时它的开源社区也非常跃度,其在全球范围内约有400位贡献者。
ClickHouse版本发布频率惊人,基本保持着每个月发布一次版本的更新频率。友好的开源
协议、活跃的社区加上积极的响应,意味着我们可以及时获取最新特性并得到修复缺陷的补
丁。
版权声明:本文标题:从Hadoop到ClickHouse 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1717291077a704326.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论