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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 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 ,实现无需进行计算资源的预设 ,根据负载实时进行动态资源的调整,充分提高资源利用率。

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

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

目录
相关文章
|
20天前
|
自然语言处理 数据可视化 API
淘宝商品评论 API 接口:深度解析用户评论,优化产品与服务
淘宝是领先的中国电商平台,其API为开发者提供商品信息、交易记录及用户评价等数据访问服务。对于获授权的开发者和商家,可通过申请API权限、获取并解析评论数据来进行情感分析和统计,进而优化产品设计、提升服务质量、增强用户互动及调整营销策略。未授权用户可能受限于数据访问。
|
24天前
|
运维 监控 NoSQL
【MongoDB 复制集秘籍】Secondary 同步慢怎么办?深度解析与实战指南,让你的数据库飞速同步!
【8月更文挑战第24天】本文通过一个具体案例探讨了MongoDB复制集中Secondary成员同步缓慢的问题。现象表现为数据延迟增加,影响业务运行。经分析,可能的原因包括硬件资源不足、网络状况不佳、复制日志错误等。解决策略涵盖优化硬件(如增加内存、升级CPU)、调整网络配置以减少延迟以及优化MongoDB配置(例如调整`oplogSize`、启用压缩)。通过这些方法可有效提升同步效率,保证系统的稳定性和性能。
36 4
|
13天前
|
存储 SQL 缓存
数据库测试|Elasticsearch和ClickHouse的对决
由于目前市场上主流的数据库有许多,这次我们选择其中一个比较典型的Elasticsearch来和ClickHouse做一次实战测试,让大家更直观地看到真实的比对数据,从而对这两个数据库有更深入的了解,也就能理解为什么我们会选择ClickHouse。
数据库测试|Elasticsearch和ClickHouse的对决
|
17天前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
15 1
|
20天前
|
运维 Cloud Native JavaScript
云端新纪元:云原生技术深度解析深入理解Node.js事件循环及其在异步编程中的应用
【8月更文挑战第27天】随着云计算技术的飞速发展,云原生已成为推动现代软件开发和运维的关键力量。本文将深入探讨云原生的基本概念、核心价值及其在实际业务中的应用,帮助读者理解云原生如何重塑IT架构,提升企业的创新能力和市场竞争力。通过具体案例分析,我们将揭示云原生技术背后的哲学思想,以及它如何影响企业决策和操作模式。
|
22天前
|
缓存 运维 监控
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
|
4天前
|
SQL 关系型数据库 MySQL
MySQL技术安装配置、数据库与表的设计、数据操作解析
MySQL,作为最流行的关系型数据库管理系统之一,在WEB应用领域中占据着举足轻重的地位。本文将从MySQL的基本概念、安装配置、数据库与表的设计、数据操作解析,并通过具体的代码示例展示如何在实际项目中应用MySQL。
16 0
|
26天前
|
Cloud Native 关系型数据库 分布式数据库
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
28 1
|
1月前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
100 2
|
16天前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
35 0

热门文章

最新文章