阿里云数据库 ClickHouse 云原生版产品解析

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: ClickHouse 介绍ClickHouse 是一款当前非常流行的开源在线分析型数据库。ClickHouse 主要应用于实时数仓构建、大数据加速分析、宽表日志分析等通用场景,服务于流量漏斗分析,用户行为分析,人群圈选,用户画像,广告投放人群评估、ABTest 、大促分析,CDP/DMP 等业务场景...

ClickHouse 介绍

ClickHouse 是一款当前非常流行的开源在线分析型数据库。ClickHouse 主要应用于实时数仓构建、大数据加速分析、宽表日志分析等通用场景,服务于流量漏斗分析,用户行为分析,人群圈选,用户画像,广告投放人群评估、ABTest 、大促分析,CDP/DMP 等业务场景,在电商平台,新零售、游戏、广告、社交应用,在线旅游,本地生活,交通物流等行业都有广泛典型的应用案例,国内大厂阿里,字节,腾讯,快手,携程,京东,小红书等都有大规模的业务使用。

ClickHouse 开源关注度增长非常迅速,在 DBEngine 网站公布的2022 年RDBMS 产品类目产品关注度排行榜上,ClickHouse 年度关注度排名提升30名,整体排名28位。 以下是当前在线分析数据库/实时数仓领域的几款高热度产品的流行关注度趋势,ClickHouse 和 Greenplum 为开源产品,其他几款为闭源商业产品。

1.png

ClickHouse 之所以得到这么高的关注度,主要由两个核心的因素决定:

一是市场驱动。当前企业客户整体业务数量规模增大,而业务实时分析决策的需求明显,触发了对在线分析型数据库/实时数仓的需求增强;

二是产品选型,流量和用户的竞争激烈的大环境下,促使业务行为和决策更有时效性,从而提高留存率和转化,因此对数据分析引擎的性能响应要求越来越高。同时业务分析维度增多,分析数据来源多,分析数据规模膨胀,对成本控制的需求也非常明显。ClickHouse 基于列式存储,向量化执行引擎和SIMD(单指令多数据流),稀疏索引,分布式计算,多核并行等核心技术以及优秀的工程实现,实现了高压缩比数据存储,高效的数据写入吞吐和亿级记录95%查询秒级返回的优异性能。

社区官网公布的性能测试结果显示。ClickHouse 相比 MySQL 在分析性能上有500倍以上的提升,相较于 Greenplum 等分析引擎在聚合分析场景也有 20倍以上的性能提升。

自建ClickHouse 使用问题

我们可以看到 ClickHouse 凭借其卓越优异的性得到广大开发者关注,并在头部的互联网企业得到了比较多的应用。但实际上从我们调研了解到,企业自建ClickHouse 在非超大型企业里生产环境普遍没有大规模使用,觉得大多数情况是在小规模创新型业务场景验证,或者还在调研测试阶段。这种情况归结起来主要是以下三类主要原因造成。

内核稳定性问题多

ClickHouse 社区迭代的非常快,版本迭代可以保持每个月一个二级版本发布,多个版本同时迭代,新版本的发布除了新feature的发布以外,通常包含大量的 bugfix ,同时这两类的功能更新也会带来大量新的bug ,导致生产环境高频的遇到功能性的bug ,而社区版本bug修复的时间又不可预期, 存在稳定性隐患,因此用户在生产环境不会轻易进行大规模的应用。

缺乏实践经验

ClickHouse 提供了非常丰富的表引擎类型。支持数据链路类的引擎如: Kafka 引擎,HDFS 外表擎。也有不同的主键聚合逻辑的引擎,支持不同的业务场景如支持主键替换的  ReplacingMergeTree,支持基于主键字段求和的 SummingMergeTree,支持自定义函数聚合的 AggregatingMergeTree 等等。  这些引擎功能丰富的同时,也增加了使用的复杂度,需要根据业务需求来选型引擎。同时ClickHose 具有一些隐含的异步操作,在数据实时性和一致性有要求时需要通过特定的强制合并逻辑和定时处理来实现实时性和一致性的要求。这些经验在社区沉淀的较少,高水平的专家实践指导优化资料比较少,那么导致缺失实践经验,自建开发成本高和业务落地周期长。

自运维成本高

ClickHouse 开源版运维支撑比较弱。遇到稳定性的问题,需要有专业的团队进行内核bug 的修复, 其次ClickHouse 作为数仓类产品需要和上下游的各个数据链路进行打通,开源版只提供基础的数据链路对接能力,链路稳定性维护的成本也随之增加,而组建独立ClickHouse 开发运维团队成本非常高。

特别要提到的是 ClickHouse 扩容问题。ClickHouse 分布式模式是基于shard 分片,如下图所示,单个shard节点包含计算资源和存储资源,计算资源和存储资源耦合绑定在同一个shard节点。水平扩展会遇到两个问题:

如果遇到某个shard 节点的磁盘打满或者计算资源不足的时候,需要通过增加计算节点,分担数据存储和计算负载。基于开源版本架构设计,需要单独进行计算扩容或者存储扩容时,因为存储和计算的耦合,那么必须计算资源和磁盘存储一起扩容,而这样就会造成一定程度资源浪费,资源利用率降低。

另外一个问题是,进行水平扩容后,由于增加了shard 节点,为了保持资源查询负载的均衡,那么需要将原有的shard节点的数据按在扩容后在所有的shard 节点上进行 Rebalance 。 Rebalance的过程需要进行历史数据进行迁移和重新写入,数据量大的情况下迁移周期长,影响正常业务数据写入,业务侵入性太高。

以上三方面的问题会导致不具备大规模运维系统构建和内核修复能力的企业来说,使用自建 ClickHouse的ROI 将会非常低。

云数据库ClickHouse 社区兼容版架构图

1646290592903-fc74589b-97bb-48ae-9f59-f033439d3550.png

阿里云数据库ClickHouse 云原生版本

阿里云数据库 ClickHouse 云原生版是在开源内核版本基础上,基于云的基础设施进行架构和能力升级。集成云企业级运维能力,增强易用性,降低运维成本;并进行资源解耦,提供更细粒度的资源使用控制,并提高资源的利用率和弹性效率,实现实时企业分析场景的降本增效,提高决策效率和业务收益。

云原生版运维能力

云原生版提供全面运维能力,满足企业客户 ClickHouse 运维需求,部分能力如下:

PAAS级服务,免部署轻运维,开箱即用。

企业级数据链路对接。包含离线的 OSS,ODPS ,HDFS ,HIVE ,MaxCompute 以及实时的MySQL,Kafka ,Flink 数据源对接。生产级MaterializedMySQL ,增强支持表级实时数据同步,增强容错处理和数据一致性保证。支持 DataWorks ,Spark ,SeaTunnel ,DataX 等企业级和开源数据集成和调度平台。

数据安全性全面提升,支持存储加密,HTTS/SSL 存储加密,数据备份恢复。

监控告警体系支持,提供资源层和数据库引擎层的监控告警和慢SQL的监控处理

企业级资源管理能力,支持实时升降配和扩容,支持Terraform 等。

内核稳定性支持,bug 发现后及时修复,保证稳定性。

专家服务支持,给予稳定性保障和最佳实践的支持

云原生版优势特性

云原生版本进一步实现资源解耦,实现存储计算资源解耦,提高性价比和弹性效率。具体特性如下

【存算分离】云原生版本采用存储计算解耦架构,可以根据生产需求独立进行计算或者存储计算的扩缩容,资源管控粒度更细,整体成本更加可控。1646290640958-00b2caf7-c347-45e3-bc65-b3ebddd368e8.png

【缓存加速+共享存储】

计算层加入ESSD缓存层,缓存层加速写入和查询,根据业务负载需求可弹性扩展缓存层,保证实时查询效率。

持久化数据存储使用更低成本的存储介质,按照30%的缓存和持久化存储配比,整体存储成本下降60%。

【存储使用】持久化存储使用低成本存储介质,按小时统计实际使用量,无需容量规划,存储资源使用率达到100%,更具性价比。

【计算资源池化】云原生版本计算资源采用计算组资源服务化模式,直接根据需求选择计算组规格,无需关心计算组内部节点规格和节点数量,依据业务需要进行资源扩缩容,更简单。

【高效弹性】云原生版本采用 ShareDisk 模式,计算资源扩容无持久化数据迁移过程,扩容稳定性提升,扩容效率提升10倍以上。

f64b259454c94e2498d158e46fb2585e.png

云原生版的实例购买和使用方式

第一步:选择计算资源,含内存和CPU资源。云原生版对计算资源进行的封装,用户无需选择节点规格和节点数量,只需选择整体依赖的计算资源即可。

第二步:选择缓存资源。缓存加速写入和查询,根据写入量和查询性能表现选择,实例创建后可以根据性能调节缓存大小。

第三步:进行数据写入和访问。存储资源无需提前购买,按需使用,根据实际数据写入量动态计量。

云原生版实例购买模式示例

1646809581714-d0b95e90-11e4-498a-90bd-5c5a23f04884.png

云原生版本的几个疑问

问题1 :云原生版本缓存和社区兼容版冷热分层的热数据层有什么区别?

答: 云原生版本和社区兼容版冷热数据分层都有数据分层逻辑。区别在于云原生版本的持久化层数据为全量数据, 缓存为部分数据,按照实际查询结果自动选择缓存数据。而冷热分层及多盘是预设存储分层,根据用户根据业务规则预先将数据划分为冷数据和热数据,冷热数据都是非全量数据,业务定义为冷数据的存储在冷数据层,不会根据查询热度自动转变为热数据,冷热数据转换需要修改数据定义规则或者手工搬运分区数据。

问题2:ClickHouse 使用大数据量的低成本的存储 ,能做到实时分析吗?

答:云原生版本增加了缓存层,使用ESSD盘作缓存。 数据写入过程先写入到缓存层,保证写入效率,而后写入到全量的数据持久层存储。查询依赖数据也会缓存到缓存层,提高查询速度。缓存层根据特定的算法进行数据有效性控制和淘汰的机制。缓存层资源可以基于资源使用率监控和查询效率进行手动的扩缩容操作,整体保证查询效率。

云原生版本未来的演进计划

阿里云数据库ClickHouse 云原生的版本后续的产品将朝着提高资源利用率,提高性能,智能运维三个指标方向进行迭代。

一是全面 Serverless ,实现无需进行计算资源的预设 ,根据负载实时进行动态资源的调整,充分提高资源利用率。

二是进一步资源解耦,精细化资源使用粒度,资源配比的动态调整,实现不同业务场景对不同计算资源维度的差异化需求。

三是自动化智能运维,逐步从人工定位问题到自动巡检,人工优化到自动报告建议,部分实现智自动诊断和自优化,提高智能诊断优化的问题拦截率和满意度。

目录
相关文章
|
21天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
43 3
|
20天前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
88 57
|
8天前
|
存储 Cloud Native 块存储
EBS深度解析:云原生时代企业级块存储
企业上云的策略,从 Cloud-Hosting 转向 Serverless 架构。块存储作为企业应用上云的核心存储产品,将通过 Serverless 化来加速新的计算范式全面落地。在本话题中,我们将会介绍阿里云块存储企业级能力的创新,深入解析背后的技术细节,分享对未来趋势的判断。
|
10天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
8天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 10 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
11天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生架构深度解析与实践指南####
本文深入探讨了Kubernetes作为领先的云原生应用编排平台,其设计理念、核心组件及高级特性。通过剖析Kubernetes的工作原理,结合具体案例分析,为读者呈现如何在实际项目中高效部署、管理和扩展容器化应用的策略与技巧。文章还涵盖了服务发现、负载均衡、配置管理、自动化伸缩等关键议题,旨在帮助开发者和运维人员掌握利用Kubernetes构建健壮、可伸缩的云原生生态系统的能力。 ####
|
16天前
|
Kubernetes Cloud Native 调度
云原生批量任务编排引擎Argo Workflows发布3.6,一文解析关键新特性
Argo Workflows是CNCF毕业项目,最受欢迎的云原生工作流引擎,专为Kubernetes上编排批量任务而设计,本文主要对最新发布的Argo Workflows 3.6版本的关键新特性做一个深入的解析。
|
18天前
|
监控 Cloud Native 持续交付
云原生技术深度解析:重塑现代应用开发与部署范式####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在现代软件开发中的重要性。通过剖析容器化、微服务架构、持续集成/持续部署(CI/CD)等关键技术,本文旨在揭示云原生技术如何促进应用的敏捷性、可扩展性和高可用性,进而推动企业数字化转型进程。不同于传统摘要仅概述内容要点,本部分将融入具体案例分析,直观展示云原生技术在实际应用中的显著成效与挑战应对策略,为读者提供更加丰富、立体的理解视角。 ####
|
25天前
|
人工智能 Cloud Native Java
云原生技术深度解析:从IO优化到AI处理
【10月更文挑战第24天】在当今数字化时代,云计算已经成为企业IT架构的核心。云原生作为云计算的最新演进形态,旨在通过一系列先进的技术和实践,帮助企业构建高效、弹性、可观测的应用系统。本文将从IO优化、key问题解决、多线程意义以及AI处理等多个维度,深入探讨云原生技术的内涵与外延,并结合Java和AI技术给出相应的示例。
84 1
|
25天前
|
运维 Cloud Native 持续交付
云原生技术解析:从IO出发,以阿里云原生为例
【10月更文挑战第24天】随着互联网技术的不断发展,传统的单体应用架构逐渐暴露出扩展性差、迭代速度慢等问题。为了应对这些挑战,云原生技术应运而生。云原生是一种利用云计算的优势,以更灵活、可扩展和可靠的方式构建和部署应用程序的方法。它强调以容器、微服务、自动化和持续交付为核心,旨在提高开发效率、增强系统的灵活性和可维护性。阿里云作为国内领先的云服务商,在云原生领域有着深厚的积累和实践。
52 0