在百花齐放的交互式分析领域,ClickHouse 绝对是后起之秀,它虽然年轻,却有非常大的发展空间。本文将分享 PB 级分析型数据库 ClickHouse 的应用场景、整体架构、众多核心特性等,帮助理解 ClickHouse 如何实现极致性能的存储引擎,希望与大家一起交流。
一、交互式分析之 ClickHouse
1. 交互式分析简介
交互式分析,也称 OLAP(Online Analytical Processing),它赋予用户对海量数据进行多维度、交互式的统计分析能力,以充分利用数据的价值进行量化运营、辅助决策等,帮助用户提高生产效率。
交互式分析主要应用于统计报表、即席查询(Ad Hoc)等领域,前者查询模式较固定,后者即兴进行探索分析。代表场景例如:移动互联网中 PV、UV、活跃度等典型实时报表;互联网内容领域中人群洞察、关联分析等即席查询。
交互式分析是数据分析的一种重要方式,与离线分析、流式分析、检索分析一起,共同组成完整的数据分析解决方案,在互联网、物联网快速发展的背景下,从不同维度满足用户对海量数据的全方位分析需求。 相比专注于事务处理的传统关系型数据库,交互式分析解决了 PB 级数据分析带来的性能、扩展性问题。 相比离线分析长达 T + 1 的时效性、流式分析较为固定的分析模式、检索分析受限的分析性能,交互式分析的分钟级时效性、灵活多维度的分析能力、超高性能的扫描分析性能,可以大幅度提高数据分析的效率,拓展数据分析的应用范围。
从数据访问特性角度来看,交互式分析场景具有如下典型特点:
大多数访问是读请求。
写入通常为追加写,较少更新、删除操作。
读写不关注事务、强一致等特性。
查询通常会访问大量的行,但仅部分列是必须的。
查询结果通常明显小于访问的原始数据,且具有可理解的统计意义。
2. 百花齐放下的 ClickHouse
近十年,交互式分析领域经历了百花齐放式的发展,大量解决方案爆发式涌现,尚未有产品达到类似 Oracle / MySQL 在关系型数据库领域中绝对领先的状态。 业界提出的开源或闭源的交互式解决方案,主要从大数据、NoSQL 两个不同的方向进行演进,以期望提供用户最好的交互式分析体验。下图所示是不同维度下的代表性解决方案,供大家参考了解:
其中,ClickHouse 作为一款 PB 级的交互式分析数据库,最初是由号称 “ 俄罗斯 Google ” 的 Yandex 公司开发,主要作为世界第二大 Web 流量分析平台 Yandex.Metrica(类 Google Analytic、友盟统计)的核心存储,为 Web 站点、移动 App 实时在线的生成流量统计报表。 自 2016 年开源以来,ClickHouse 凭借其数倍于业界顶尖分析型数据库的极致性能,成为交互式分析领域的后起之秀,发展速度非常快,Github 上获得 12.4K Star,DB-Engines 排名近一年上升 26 位,并获得思科、Splunk、腾讯、阿里等顶级企业的采用[1]。下面是 ClickHouse 及其他开源 OLAP 产品的发展趋势统计:
性能是衡量 OLAP 数据库的关键指标,我们可以通过 ClickHouse 官方