阿里云 ClickHouse 企业版是一款新一代云原生 Serverless 实时数仓产品,基于 ClickHouse 开源技术构建,旨在提供实时数据分析解决方案。ClickHouse 企业版通过存算分离、秒级扩容、Serverless 弹性等技术手段,降低了资源成本,提高了查询性能和效率。同时,该产品支持跨 AZ 高可用和低成本存储,保证了数据的可靠性和经济性。此外,ClickHouse 企业版还大幅提升了易用性,无需分布式表引擎依赖,兼容社区语法及引擎,降低了用户的运维成本。本次分享将带领大家深入了解 ClickHouse 企业版的各项功能和优势,从而更好地满足实时数据分析的需求。
一、实时数仓&ClickHouse 企业版产品背景
在企业运营过程中,大量的业务数据被不断产生并积累。这些数据对于企业来说是其宝贵的资产,蕴含着巨大的价值。然而,根据 Forest 市场调研报告,数据的价值并非永恒不变,而是随着时间的推移逐渐减弱。这意味着,为了充分发掘和利用这些数据的价值,企业需要更加实时地对其进行分析。
传统的批量 BI 分析方式往往只能提供小时级、日级或月级的数据处理能力,这使得企业只能被动地分析历史数据,限制了数据价值的挖掘。相比之下,实时数据分析能够提供秒级、分钟级甚至更高级别的数据洞察,为企业带来更大的帮助。通过实时数据分析,企业可以更加主动地进行业务决策和业务分析,以应对市场的快速变化。
在这个过程中,实时数仓成为了企业不可或缺的核心技术依赖。实时数仓能够实时地收集、处理和分析数据,为企业提供即时的数据洞察和决策支持。随着企业对实时数据分析需求的增加,实时数仓的重要性日益凸显。
为了满足这一需求,ClickHouse 企业版应运而生。作为一款高性能、可扩展的列式数据库技术,ClickHouse 以其卓越的性能和扩展性,成为了企业构建实时数仓的理想选择。
ClickHouse 项目于 2009 年建立,其初衷是为了支持超大规模的 Web 分析场景。2016 年,ClickHouse 在 Apache 2.0 协议下发布开源,使得更多的开发者和企业能够受益于其高性能、列式存储等优势。随着其知名度的不断提升和广泛应用,2021 年,ClickHouse Inc. 商业化公司成立,由原创的研发团队领导。不仅支持开源社区的发展,还开始提供 ClickHouse 的商业化云服务。
ClickHouse 的企业版基于开源社区版本进行了更多的优化和增强,解决了社区版本中存在的一些问题,并提供了更加稳定、可靠和高效的服务。通过企业版,企业可以更加轻松地构建实时数仓,实现数据的实时收集、处理和分析,从而为企业带来更大的业务价值。
在上述背景下,阿里云与 ClickHouse 在 2023 年签署了一项重要的战略合作,希望将企业版的核心能力引入亚太地区,特别是为中国客户提供支持。通过与阿里云的合作,ClickHouse 企业版将面向阿里云的客户开放使用,以满足他们对高性能实时数据分析的需求。这一战略合作将推动阿里云在实时数据处理和分析领域的进一步发展,同时也为 ClickHouse 在全球范围内的推广和应用注入了新的动力。
二、ClickHouse 企业版核心特性能力介绍
ClickHouse 企业版是一款高性能的云原生 Serverless 实时数仓产品。它具备四大核心特点:
- 云原生存储与计算分离:ClickHouse 企业版采用云原生架构,实现存储与计算的分离,这意味着存储和计算资源可以独立进行秒级扩容,以满足业务对实时数据处理能力的弹性需求。
- Serverless 按需弹性伸缩:在阿里云的深度优化下,ClickHouse 企业版支持 Serverless 按需弹性伸缩。用户无需预先配置大量资源,而是可以根据实际业务需求快速调整计算资源,从而降低整体资源使用成本高达 30% 以上。
- 性能优化:提供了 Cache 和并行查询能力,将复杂 SQL 查询的性能提升一倍以上,满足用户对高性能数据分析的需求。
- 语法兼容与易用性:为了确保用户能够轻松迁移并使用企业版,ClickHouse 企业版的语法完全兼容社区版,并且去除了长期存在问题的分布式表。这使得用户在使用企业版时无需进行大量修改,降低了学习和使用成本,提高了易用性。
接下来将展开介绍 ClickHouse 企业版的核心能力及其实现。
1. 存算分离&秒级扩容
在 ClickHouse 企业版中,针对传统开源社区版存在的 MPP 架构限制进行了优化。在传统架构中,数据通过分桶和 shard 逻辑进行存储,导致存储与计算资源紧密绑定。这种绑定使得单一 shard 上的计算和存储资源在达到瓶颈时,只能通过水平扩容来解决问题,这需要同时增加计算和存储资源,可能导致资源浪费。
为了打破这一限制,在 ClickHouse 企业版中引入了全新的 SharedMergeTree 云原生引擎系列。这一引擎基于云原生内核,实现了存储与计算的解耦。在此架构下,存储和计算可以独立进行扩容。存储方面,采用共享存储模式,类似于阿里云的 OSS 对象存储,用户可以根据需求灵活使用存储资源,无需预先购买大量资源。
在计算资源方面,由于 SharedMergeTree 引擎的实现对计算节点完全无状态,因此在集群进行水平扩展时,无需进行数据迁移。每个节点都可以并行参与 SQL 请求的处理,大大提高了扩展效率,使得扩展过程达到秒级水平。
通过存算分离与秒级扩容的实现,ClickHouse 企业版为用户提供了更加灵活、高效的数据处理能力,满足了实时数据分析的迫切需求。
2. Serverless 按需弹性
在 ClickHouse 企业版中,基于阿里云深度改造了 Serverless 特性,实现了存储和计算资源的全面 Serverless 化。具体来说,用 ClickHouseKeeper 替换了社区版的 ZooKeeper,并实现了基于 Keeper 负载的自动弹性伸缩。当 Keeper 资源遇到瓶颈或计算能力闲置时,系统能够自动进行弹性调整,确保资源的充分利用。
此外,还将计算资源定义为 CCU 资源,并引入了一套智能的负载管理机制。根据集群的整体负载情况,系统能够自动进行 CCU 资源的扩展和缩减。当计算资源达到峰值时,系统会根据预设的上限进行资源成本控制;而在资源低谷时,系统则会主动进行集群缩容,提高资源使用效率。通过这一机制,能够帮助用户实现约 25% 的资源使用缩减,同时确保存储资源的按需使用(阿里云 OSS),从而为用户节省 30% 以上的成本。
值得一提的是,ClickHouse 企业版采用了高可用架构,每个节点都是无状态的,这意味着节点之间具有相互高可用的特性。与传统的通过副本支撑高可用的方式相比,企业版无需依赖额外的副本,从而降低了资源消耗。针对双副本场景,企业版能够降低超过 50% 的资源使用成本,显著提升了资源的使用效率。
3. 性能提升
ClickHouse 企业版展现出了极高的读写能力,这主要得益于其精心设计的两层技术。首先,考虑到实际数据存储依赖于对象存储(如阿里云 OSS),这不可避免地涉及到远程网络访问,导致数据存储和查询性能无法直接媲美本地存储。为了弥补这一差距,企业版在计算层增加了本地缓存(Cache)机制。每个计算节点都配备了本地缓存,用于存储读请求的数据。通过这种方式,数据可以被缓存至本地,显著提升查询效率。
根据在 TB 级 CDH 上的测试结果显示,通过本地缓存加速,整体查询效率相较于无缓存情况可提高 100% 至 400%。对于 OLAP 场景,更关键的性能瓶颈往往不在于网络带宽,而是在于 IO 带宽。因此,为 OSS 对象读取配置了高带宽,确保 IO 不会成为 OLAP 场景中数据分析的瓶颈。
ClickHouse 企业版还引入了并行查询技术。对于大型查询,系统能够智能地将请求分发到多个节点,进行并行数据处理。多个节点之间协同工作,分别读取和分析不同的数据部分,从而实现对复杂 SQL 的并行处理能力,整体提升查询性能。在实际测试中,并行 Replica 对复杂 SQL 的性能提升可达一倍以上。
另外,还通过提高缓存命中率,进一步提升查询性能。目前正在研发的“distribute cache”功能,将进一步解耦计算层的缓存与纯计算资源。通过这种方式,各个节点将像共享存储一样共享缓存,确保节点间的缓存数据完全一致。这样,无论哪个节点接收到请求,都可以访问到相同的缓存数据,从而显著提升整个集群的缓存命中率。
4. 跨 AZ 高可用&低成本
同时,ClickHouse 企业版提供了跨 AZ(可用区)的高可用性能力。在计算层,采用三可用区的部署策略来支持高可用性。具体来说,Keeper(分布式协调服务组件)会在三个可用区分别部署,以确保选举协议得到有力支持。对于 Server 层(即计算资源),会在三个可用区中选择两个进行高可用性部署。对于存储层,同样会在三个可用区中选择两个进行高可用性存储支持。
这种部署策略确保了计算资源和存储资源在同城范围内实现高可用性,而无需像开源社区中那样依赖于一对一的副本和复制方式进行资源消耗。因此,高可用性方案能够降低 50% 的整体成本。
5. 易用性大幅提升
易用性也是众多客户非常关注的一点。在将开源社区版迁移到企业版的过程中进行了精心的适配和优化。首先,在 DML(数据操纵语言)和 DDL(数据定义语言)语法层面,完全兼容了社区版的引擎。这意味着无需更改任何 SQL 语法,即可将社区版的 DDL 和 DML 语句无缝迁移到企业版中。内部进行了引擎层的适配和转换,确保了迁移的平滑性。
此外,针对社区版中经常引起用户困惑的分布式表引擎问题,在企业版中进行了改进。通过引入 SharedReplacingMergeTree 引擎,简化了分布式表引擎的使用,大大提升了用户对 ClickHouse 分布式特性的使用体验。
另外值得一提的是,企业版采用了完全云原生的架构,实现了计算资源的自动伸缩和存储的按需使用。用户无需再像使用开源社区版那样手动管理集群节点的数量、规格以及升降配等操作。这一特性极大地降低了用户的运维成本,提高了整体的易用性。
三、ClickHouse 企业版 Serverless 弹性演示
接下来,将演示 ClickHouse 企业版的 Serverless 核心功能,以展示如何通过 Serverless 技术实现资源的成本降低。首先,了解如何启用 ClickHouse 企业版。
在购买页面中,首先需要点击企业版的标签以选择它。这里提供了单个应用区和多可用区的选项。若选择多可用区,则需要指定三个可用区,并进行相应的 VPC 网络配置。Serverless 模式则允许在资源使用上实现区间性的弹性扩展。通过设定最大和最小资源限制,既可以确保在高负载时拥有足够的资源,又能在低负载时避免资源的浪费。
在选择具体的资源区间后,可以轻松创建集群,无需预购资源。这个区间设置本身不会产生任何资源消耗,只有当实际运行消耗资源时才会产生费用。例如,在创建集群时,可以选择从 8 CCU(计算单元)到 64 CCU 的范围,对应着从 8 核到 64 核的 CPU 资源。
集群创建后,还可以根据需要调整弹性区间的上限和下限。通过监控集群的 CCU 使用情况,可以实时了解实际消耗的资源量。假设在 DMS(数据管理系统)的实例中创建了一个数据集群表,并执行了大量的数据插入和聚合分析查询,这将导致 CCU 的显著消耗。
在查询执行过程中,CPU 使用率会大幅提升。当系统检测到 CPU 负载过高时,会自动触发资源扩展逻辑,增加计算资源以满足当前需求。从历史数据中可以看到,集群的 CCU 使用量会迅速上升,甚至达到 50 至 60 CCU 的高位。而当查询执行完毕后,CPU 使用率会下降,相应的计算资源也会自动缩减。
这种 Serverless 模式的弹性扩展功能,确保了资源在无需时能够得到有效利用,从而降低计算资源的使用成本。整个过程中,只需按秒级统计 CCU 值进行付费,无需预先购买峰值资源并长期承担高额成本。这就是 Serverless 功能为我们带来的资源使用效率和成本优化的双重优势。
四、ClickHouse 企业版售卖模型及商业化优惠
接下来介绍 ClickHouse 企业版的主要产品售卖模型,特别是在 Serverless 模式下。企业版主要包括两个计费项:计算资源和存储资源。
在计算资源方面,计费单位是 CCU(计算单元),具体为每 CCU 使用一小时的费用是 0.49987 元,即一核使用一小时的费用。这意味着,如果在一个小时内只使用了半小时,则实际费用将基于 0.5CCU·h 进行计算。这种秒级精确计费和计量的方式确保了资源的充分利用,避免了资源浪费。
对于存储资源,同样采用秒级精确计量,以 GB 为单位计算每小时的费用。单可用区和多可用区在价格上有所区别,因为多可用区涉及跨可用区的资源冗余成本。
通过 Serverless 模式,用户可以根据实际需求按需获取资源,并按实际使用量付费。为了进一步降低成本,还推出了资源包选项。用户可以通过预购资源包来抵扣按量计费的部分,类似于手机流量套餐的购买方式。在可预测的情况下,这种方式能够帮助用户获得更好的优惠和成本缩减。
那么,如何评估业务上线时的资源使用量呢?首先,需要考虑计算资源和存储资源两个方面。对于计算资源,可以基于峰值资源使用量来设定一个资源区间(最大值和最小值),并计算平均资源使用水位。通过 Serverless 的系数乘以资源峰值,可以预估整体能够缩减多少成本。对于存储资源,则需要评估一小时内或一个月内所需的存储量,并计算平均存储使用率。
现在,ClickHouse 企业版已经正式上线,并在阿里云官网推出了六折的限时优惠活动。大家可以在阿里云官网搜索 ClickHouse 或在产品目录页面点击云数据库 ClickHouse,并选择企业版进行体验。同时,请根据业务需求选择合适的可用区模式(单可用区或多可用区)来开通资源,即可开始产品体验之旅。