ClickHouse场景和未来的一些发展方向

Posted 果汁华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClickHouse场景和未来的一些发展方向相关的知识,希望对你有一定的参考价值。

一、ClickHouse 现在有哪些最新场景应用呢?

ClickHouse 过去最常见的场景有三个:

  • 用户行为分析:在采集用户行为日志之后,进行 PV、UV、留存、转化漏斗等操作,例如头条、快手、喜马拉雅等。

  • 用户画像圈选:每个公司都拥有大量的用户和用户画像标签,如何快速从用户画像标签里圈选出某几类标签的人群,例如阿里、喜马拉雅等。

  • 机器日志监控 & 查询:每台机器都产生大量日志,如何快速监控、查询机器日志,以确保整体服务没有问题。基本上所有的互联网公司都在这样使用 ClickHouse 的。

目前还有一些场景:

  • IOT 场景:一些钢铁厂用 ClickHouse 采集、监控、分析自己内部 IOT 数据。我知道的最大的集群超过 100 台了。

  • 政府大数据:ClickHouse 赋能政府合作伙伴,针对政府大量结构化和非结构化数据,进行大量数据质量整理和搜索。

  • 网管监控:针对一些特殊 APP、特殊网站的日志,快速分析和快速报警。

事实上,ClickHouse 解决的是“数据分析的最后一公里”,解决了很多数字化转型企业数据分析的效率问题,包括:

  • 大数据建设完成后最终产出了大量的 BI 报表、OLAP 分析,数据驱动距离业务远
  • 有经验的业务分析人员无法快速获得需要的数据,或者需要复杂 NoSQL 技术。

  • 数据驱动还是“人”驱动,还有大量的提数、出报表的需求,而很多报表往往只用一次。

  • 业务快速变化要求更新速度高,数据流无法让业务人员上手。

我举例的这些都是企业在数据化升级当中遇到的问题,因为越来越多的运营、产品、决策都需要用到灵活查询的一手明细数据,过去传统的层层数据仓库,OLAP 已经不能满足这些需求了,这正是 ClickHouse 的拿手好戏。

二、ClickHouse 素以迭代快著称,能简单聊聊从去年到今年 ClickHouse 主要实现了哪些功能的迭代吗?

  • Projection:预聚合。这是今年发布的非常重要的一个特性,它进一步提高了常用并发度和汇总查询的速度,同时还保证了数据表和表内设计的一致性,非常方便地提供了类似下图中的可以实时更新的 Cube 查询:

  • JIT(just-in-time compilation):开启 JIT 优化后,根据社区小伙伴的评测,ClickHouse 在一些一元运算、二元运算、逻辑运算等方面性能提高了 1.5-3 倍,聚合步骤方面性能提升了 1-2 倍。

  • UDF(UserDefine Function):用户自定义函数。我特别期待其中 v21.11 里增加的对于各种语言 UDF 的支持,它大大减少了不同语言的开发者使用 ClickHouse 的学习成本,对于 ClickHouse 进一步发展有着重要意义。

  • Windows Function:开窗函数。这是高级 SQL 里最常用的一个特性。有了开窗函数,ClickHouse 就可以和 Oracle、DB2 等商业级别的数据仓库拥有一样的特性,对于本身速度又非常快的 ClickHouse 来说,简直是如虎添翼。

 所谓开窗函数就是定义一个行为列,简单讲,就是在你查询的结果上,直接多出一列值(可以是聚合值或是排序号),特征就是带有over()。

开窗函数也叫分析函数,有两类:一类是聚合开窗函数,一类是排序开窗函数。

三、ClickHouse 解决的是“数据分析最后一公里”的问题,其他问题需要和上下游的伙伴共建生态,这些伙伴具体指的是谁?

如前面所述,ClickHouse 并不是数据仓库,它也不是数据导入和调度工具,它需要很多合作伙伴,包括:

  • 数据仓库:可以用 Hadoop 生态来存储更多的冷数据,也可以用 Greenplum 来存储关系型数据,当然也可以用一些商业数据仓库来存储大量 3NF 数据;

  • 关联查询:可以用 Presto、Doris 来弥补 ClickHouse 关联查询不强的问题。现在京东、趣头条都使用了 Presto 或者 Doris 的小集群来做关联查询,用 ClickHouse 的大集群来做日常非关联的分析;

  • 数据导入:Sea Tunnel(原 Waterdrop)可解决 ClickHouse 数据导入不方便、容易不一致的问题。它可以从各种不同数据源里抽取数据,最终放到 ClickHouse 或者其他数据源里。唯品会和滴滴都在用这种方案。这个具体方案在我们 2022 的 QCon+ 会有分享。

  • 其他:多任务时可以使用 DolphinScheduler 进行调度,展现时可以使用 E-Chart 等等。

开源组件一定是在自己最擅长的领域里做到最好才会有市场。一个上下游友好完整的生态,能够够极大地赋能开源组件,让它发挥出自己最大的作用。

四、 ClickHouse 未来五年发展的重点将放在哪里?有什么值得广大用户期待的吗?

未来 ClickHouse 最值得期待的就是云化支持和场景扩展了。

ClickHouse 云支持的痛点,我前面已经讲过了。开源 ClickHouse 有非常多的创新设计(例如向量计算、向量存储、压缩算法等方面的创新设计),这些设计保证了它在它常用的场景里是全球最快。一些引擎虽然引用了它的代码,在一些测试场景优化后跑得快一些,但是实际使用起来依然无法超越 ClickHouse 的速度和稳定性。这样的创新如何在云时代实现新的飞跃是我非常期待的。这既然是 ClickHouse 未来的方向,也将是一场引领整体 OLAP 计算引擎的云原生革命。

而场景化是 ClickHouse 天然的属性,大家能看到今年 ClickHouse 还在推出新的表引擎。如前文所述,ClickHouse 的特长就是在细分场景里,面对超大规模数据查询和插入做到极致的快。而面对场景的 OLAP 引擎是我非常认同的。现在 ClickHouse 仍然在不断根据不同场景推出自己的表引擎,这些表引擎还在不断地创新,我相信它在未来会给我们更多的惊喜。

以上是关于ClickHouse场景和未来的一些发展方向的主要内容,如果未能解决你的问题,请参考以下文章

ClickHouse

深度学习核心技术精讲100篇(三十)-ClickHouse在字节跳动广告业务中的应用

加工制造业供应链智能管理系统:联通加工制造业上下游供应链,覆盖全场景业务

医疗行业供应链管理系统打通供应链上下游,助推医疗行业发展

唯品会基于 Clickhouse 存储日志的实践

大数据ClickHouse进阶:ClickHouse使用场景和集群安装