理论派 | Theory
郭炜:讨论ClickHouse的未来,至少要了解它的设计理念
作者 李慧文
嘉宾 | 郭炜
几乎每一个月就更新一次的ClickHouse,在过去的2021年实现了哪些优秀的功能呢?现在的ClickHouse适合在哪些场景下使用呢?未来ClickHouse发展的重点又在哪里呢?从2019年突然火爆起来的ClickHouse作为一匹黑马,在云原生场景下,是一匹千里马,还是明日黄花呢?
基于对上述问题的好奇,我们特意邀请了ClickHouse中国社区发起人郭炜老师,请他从社区发起人的角度,聊聊飞速发展的ClickHouse在2022年有哪些最新场景应用,以及它的未来发展趋势。同时郭炜老师也是本次QCon+ 案例研习社(北京站)「ClickHouse集群版深度实践」专题的出品人,他邀请了国内ClickHouse深度使用者来分享,为大家带来ClickHouse集群版有关的实践经验,希望可以给ClickHouse使用者带来启发。
让我们一起来看看老师对ClickHouse最新场景和未来方向的思考吧。
InfoQ:ClickHouse素以迭代快著称,能简单聊聊从去年到今年ClickHouse主要实现了哪些功能的迭代吗?
•郭炜:ClickHouse今年迭代的功能非常多,我印象非常深刻的有:
• Projection:预聚合。这是今年发布的非常重要的一个特性,它进一步提高了常用并发度和汇总查询的速度,同时还保证了数据表和表内设计的一致性,非常方便地提供了类似下图中的可以实时更新的Cube查询:
依赖极致的社区,ClickHouse基本上每月都会更新一个版本。除了我上面提及的,ClickHouse 2021年还增加了物化列,ALL,ANY,EXCEPT等运算符、可以连接XML文件,新加了Executable Table等等其他的功能,大家可以去社区查看。
InfoQ:迭代了如此多实用的新功能,ClickHouse现在有哪些最新场景应用呢?
郭炜:ClickHouse过去最常见的场景有三个:
在2021年数字化转型非常热门,有很多的企业用户加入到ClickHouse社区使用者阵营,因为我们也看到一些很有意思的场景,如:
关于数字化转型,我多啰嗦两句。事实上,ClickHouse解决的是“数据分析的最后一公里”,解决了很多数字化转型企业数据分析的效率问题,包括:
我举例的这些都是企业在数据化升级当中遇到的问题,因为越来越多的运营、产品、决策都需要用到灵活查询的一手明细数据,过去传统的层层数据仓库,OLAP已经不能满足这些需求了,这正是ClickHouse的拿手好戏。
InfoQ:2021年9月份,ClickHouse成立了独立的公司,创始人Izrailevsky说组建公司的目的之一就是集中人力放在云环境中部署上。上云一直是ClickHouse的痛点,您认为ClickHouse在上云主要有哪些问题呢?有什么好的解决方案吗?
郭炜:ClickHouse的开源版本为了追求极致的性能,从底层列式存储到上层向量化计算引擎其实都没有选择存算分离、弹性扩展的技术方案,甚至于本地化机器扩容的横向数据Re-balance都需要手动或者等待新数据自动填充。
因此,如果要实现云上的可动态伸缩、存算分离,Cloud-ClickHouse需要重构底层代码,否则ClickHouse只是变成装在虚拟主机上的云本地版本,并不是真正的和Snowflake一样的云端数据服务。
当然,目前国内很多云是基于这个云本地版本模式提供ClickHouse服务的,即上层使用ClickHouse进行计算,为了实现底层云存储,有的使用性能不太高的S3接口,有的直接利用原来的格式,而底层用云存储上文件软连接方式解决存储扩展问题。
因为ClickHouse性能非常彪悍,所以这种云模式也可以带来一定的利润空间。当然,终极解决方案还是需要解决存算动态分离和动态伸缩问题,这需要俄罗斯团队携手全球社区人才共同解决。
InfoQ:业界有一些唱衰ClickHouse的声音,您怎么看待这个现象呢?
郭炜:ClickHouse的火爆除了它极致的速度还和它出现的时机有很大关系。我认为随着数据量的增大、使用场景的深入,普适性的数据计算引擎将会被细分,根据不同场景会出现各种各样不同的数据引擎。例如,用于流计算的数据库引擎、用于即席数据分析的数据引擎,用于物联网的数据引擎等等。
这是因为在巨大的数据量面前,想追求极致的性能和全部的适应性,必须在某些技术方案上进行取舍,从而达到引擎针对某些场景引擎的最大化支持。每一个引擎要在足够细分的赛道情况下要和其他引擎有数量级级别的差异。在数据暴增的情况下,过去的通用性引擎已经无法满足业务需求,所以场景性的计算引擎将会崛起。
ClickHouse是个场景引擎崛起的例子,解决的是“数据分析最后一公里”的问题,不是用来解决所有问题的。这和当年我曾经工作过的Teradata和IBM的数据引擎设计是完全不同的。所以,大家以过去数据仓库、数据库的方法来衡量ClickHouse就很难理解它的一些设计,才会产生这些唱衰的声音。
随着数据量级的持续暴增,能解决所有问题的数据引擎几乎是不会存在的,未来的数据引擎一定是百花齐放百家争鸣的局面。如何和这些数据引擎并存、快速交换数据、管理数据是ClickHouse除了云化之外,主要面临到的问题。这些问题的解决就需要依赖周边生态和上下游的合作伙伴了。
InfoQ:您聊到ClickHouse解决的是“数据分析最后一公里”的问题,其他问题需要和上下游的伙伴共建生态,这些伙伴具体指的是谁?
如前面所述,ClickHouse并不是数据仓库,它也不是数据导入和调度工具,它需要很多合作伙伴,包括:
开源组件一定是在自己最擅长的领域里做到最好才会有市场。一个上下游友好完整的生态,能够够极大地赋能开源组件,让它发挥出自己最大的作用。
InfoQ:作为ClickHouse绝对的深度用户,您已经陪伴ClickHouse五年了,您认为ClickHouse未来五年发展的重点将放在哪里?有什么值得广大用户期待的吗?
郭炜:未来ClickHouse最值得期待的就是云化支持和场景扩展了。
ClickHouse云支持的痛点,我前面已经讲过了。开源ClickHouse有非常多的创新设计(例如向量计算、向量存储、压缩算法等方面的创新设计),这些设计保证了它在它常用的场景里是全球最快。一些引擎虽然引用了它的代码,在一些测试场景优化后跑得快一些,但是实际使用起来依然无法超越ClickHouse的速度和稳定性。这样的创新如何在云时代实现新的飞跃是我非常期待的。这既然是ClickHouse未来的方向,也将是一场引领整体OLAP计算引擎的云原生革命。
而场景化是ClickHouse天然的属性,大家能看到今年ClickHouse还在推出新的表引擎。如前文所述,ClickHouse的特长就是在细分场景里,面对超大规模数据查询和插入做到极致的快。而面对场景的OLAP引擎是我非常认同的。现在ClickHouse仍然在不断根据不同场景推出自己的表引擎,这些表引擎还在不断地创新,我相信它在未来会给我们更多的惊喜。
我补充一点,大家可能不知道,前几年ClickHouse核心团队都是个位数的,所以很多架构、功能都没有办法快速实现。现在整体开发团队达到百人规模,也成立了独立的公司,必将更快的发展。
此外,ClickHouse成立公司后,Alexey-Milovidov和Ivan就像过去5年中一样,支持着中国社区用户,并没有因为公司的出现而改变初心。我相信ClickHouse会在未来5年给大家更多的惊喜。
Qcon+北京站安排了ClickHouse的专题,邀请了移动、联通、微信、唯品会、网易、云智慧等深度使用了ClickHouse的公司的技术leader和高级工程师,分享ClickHouse集群版上一些常见问题的解决方案,希望能帮助大家更好更快地进行数据查询。
嘉宾介绍:
郭炜,人称“郭大侠”,Apache Foundation Member,Apache DolphinScheduler PMC,Apache IPMC Member,ClickHouse中国开源社区发起人和首席布道师。(ClickHouse社区地址:https://clickhouse.com/docs/zh/whats-new/changelog/#new-feature)
中国软件行业协会智能应用服务分会副主任委员,TGO北京董事会学习委员,全球中小企业创业联合会副会长,人民大学大数据商业分析研究中心客座研究员。
郭大侠一直致力于让“数据能力平民化”的事业上,本人参与多个开源项目,促进多个开源社区在中国的落地以及中国开源项目在全球的发展,被评为Apache Foundation Member和2021年中国开源最佳人物之一。