数据分析引擎黑马 ClickHouse 最新技术的实践与应用

导语 | ClickHouse 在近几年是大数据分析引擎界的一匹黑马,从默默无闻到一路起飞,在 DB engine Rank 上进入前50名,成为全球数据引擎界耀眼的一颗明星。在全球范围内,ClickHouse 单表查询比其他引擎要快数倍以上,在过去的4年以来未曾有对手。ClickHouse 为什么会这么快实际使用当中如何应用这样一个引擎有哪些让人振奋和欣喜的feature将会发布文由易观CTO、腾讯云TVP 郭炜在 Techo TVP开发者峰会「数据的冰与火之歌——从在线数据库技术,到海量数据分析技术」的《ClickHouse最新技术的实践与应用》演讲分享整理而成,为大家详尽介绍最新的 ClickHouse Feature 和实战应用。

点击可观看精彩演讲视频

一、ClickHouse 的前世今生

我今天主要讲四件事,第一是讲讲 ClickHouse 的前世今生;第二是给大家讲讲实战应用,因为很多小伙伴觉得 ClickHouse 很好,但到底该怎么使用还并不了解;第三介绍比较新的一些Feature,会挑几个我比较感兴趣的和大家聊一聊;最后是对未来的一些畅想。

1. ClickHouse 的诞生与腾飞

先说 ClickHouse 是谁lickHouse 其实是源自俄罗斯黑科技的一个引擎,它最早是用于Yandex 公司的工具 Metrica。ClickHouse 一直基于自身新的独立架构的核心在不断演进,它能够在服务器集群很大的情况下依然保持稳定。目前在国内被腾讯、今日头条、新浪等多家公司所使用。

2018 年的时候,我们也做了一个和常见的 OLAP 引擎的横向比对测试。看右边的图会发现浅蓝色的柱子,就是 ClickHouse,在单表查询时非常快,相比其它引擎如传统的 Hive、Spark-SQL,那是几十倍的快,Join它稍微慢一些。所以基于场景来讲,它不是 Snowflake,它现在解决的还是一些单表的场景,Join的时候它跟普通引擎差不多,没有那么快,所以如果做宽表这种单表查询,它是目前大家用得最多的。

我相信很多做数据的小伙伴都会遇到这个问题,经常领导说这个事要查一下,或者运营人员说给我出一个东西,你好不容易做了一个中间表、宽表,出一个结果表,过完以后发现这个表只用了一次,其实 ClickHouse 的出现就是解决这个问题,让大家立刻出数据,而且现在有很多数据分析人员包括运营人员已经会写SQL,所以我们告诉他这个东西是怎么样的,在上面加一个 Superset 或其他的数据工具,直接搭上 ClickHouse,业务分析人员就可以直接出数据而不用研发人员再做ETL。技术人员还是在原来的底层数据、中间表等数据里多花精力,那些临时的即席查询需求就不需要技术人员浪费时间每天开发ETL和数据脚本了,直接用 ClickHouse 就可以查询。

2. 新浪

新浪当时实践时,面临的问题是每天 300 亿条数据,查询特别多,达到800 万次。因为它提供的是系统 API,所以很痛苦,后来用了 ClickHouse 快速查询,单表查询以最快的方式完美地解决这个问题。它其实做了几件事:第一个是 ClickHouse 在入库的时候是非常快的,所以它直接利用了这个特性,做了实时入库,原始数据库可以随便查,因为最后过去还得ETL加汇总层,先原子层、后汇总层、最后再上去,现在直接就到最底层把要的数据当时查出,缩短整个数据处理的路径,ETL也容易扩容,资源大大降低。它的使用还是从 kafka开始,把复杂的ETL自己做了一层 kafka,最后从 kafka 直接进了 ClickHouse,从 ClickHouse 开始,有些数据的结果提取进入了 MySQL,通过 Superset 做了一个DashBoard,通过 Adhoc 界面直接查明细。前两天 Grafana 比较热闹,它改了协议,最后通过 Grafana 把这个数据用 ClickHouse 查出来,因为 MySQL 数据量比较大以后就出不来了,所以 ClickHouse 在这里是通过日志查询和这种基础来帮助做这件事。

4. 趣头条

趣头条2019年的实践应用遇到的挑战是千亿数据,21万次的巨大查询,用 ClickHouse 的特性完美解决。千亿数据,100多台机器,32核128G,80%的查询,一秒内搞定。它的玩法也比较有特点的,先从 kafka 进 Flink,一部分数据进了 HDFS,ClickHouse 的查询优势在于宽表和单表,Join的时候它可能没有那么快,这个时候趣头条做了一个创新的方法:引入 presto。presto 可以跨库查询,在做Join的时候,它把一些数据放到 HDFS 里,通过 presto 和 ClickHouse 做Join,通过这种方式解决一些问题。它做了两个集群,满足整个日志查询和其它的查询,一个是APM查询的集群,另一个是给分析师用的集群。

6. 苏宁

苏宁做的是另一个场景:用户画像。它需要精准识别每一个用户的标签是什么、降低计算成本,所以做了物化视图,用去重解决了用户画像的问题。具体来说,因为在做用户画像时很多标签加工是离线计算的,这个标签不需要实时打上,但是查询或推送的时候会需要,所以苏宁一开始把所有相关的标签在 HDFS 里存了,在 MySQL 里存了维度表,把 ClickHouse 当作最后一步给用户画像平台使用的场景。现在我看到很多的传统用户也是这么使用 ClickHouse 的——当作用户的查询平台,因为它的查询是最快的。

8. 虎牙直播

虎牙做日志查询的基本做法是,通过几个 kafka 集群把所有的日志信息都放到 ClickHouse 里,进行快速查询。

第二个是刚才说的 Projections。Projections 的特点是可以做预聚合,而且这和以前的 Vertica 是不一样的,Vertica 过去只支持一些聚合函数的预聚合,而 Projections 支持所有的函数。

对于未来畅想,刚才提到了很多的 Roadmap,ClickHouse 会在具体深入场景和结合解决客户使用数据最后一公里上做非常多的工作。在中国我们遇到了非常多用户和客户提出的想法和需求,所以现在中国 区也考虑是不是将来有机会能成为 ClickHouse 商业化的公司和俄罗斯一起把 ClickHouse 做大做好。

讲师简介

数据分析引擎黑马 ClickHouse 最新技术的实践与应用

郭炜

易观CTO、腾讯云TVP

易观CTO,腾讯云TVP,全球顶级开源基金会 – Apache基金会正式 Member,Apache DolphinScheduler 发起人 & PMC,ClickHouse 中国 区发起人,中国软件行业协会智能应用服务分会副主任委员,中国开源 区最佳 33 人。郭炜先生毕业于北京大学,曾任联想研究院大数据总监,万达电商数据部总经理,先后在中金、IBM、Teradata任大数据方重要职位,对大数据前沿研究做出卓越贡献。2015年加入易观后,推动易观大数据技术架构及体系搭建,易观混合云架构搭建;2018年提出大数据IOTA架构(Big Data IOTA)并提出企业“数据河”(Data River)的概念,带领团队打造秒算数据计算引擎,进行了架构验证,同时在易观开源Dolphin Scheduler,在2019年入选Apache基金孵化器,2021年被评选为Apache Foundation Member成员。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月16日
下一篇 2021年4月16日

相关推荐