技术深度报道:解析云器Lakehouse如何实现超越Spark 10倍性能提升

简介: 云器科技2024年末发布TPC-DS 10TB基准测试报告,Lakehouse引擎性能达Spark的10倍。核心源于四大技术:C++向量化引擎(3×)、Cascades成本优化器(2×)、DAG直连调度(1.3×)与自适应缓存(1.3×),实现全栈协同优化。(239字)

云器科技与2024年末发布TPC-DS基准测试报告:性能超Spark十倍。

在今年1月举行的GA产品发布会上,CTO关涛首次系统解读了此前发布的性能测试报告,详细阐释了云器Lakehouse引擎如何实现“10倍”的技术路径。

本报道对云器的技术解读进行总结呈现,帮助业内人士了解这一性能突破背后的技术细节

云器Lakehouse公布的性能报告显示比开源Spark引擎快约10倍,具体测试对比在TPC-DS 10TB基准测试使用128核计算资源,同时保持相同的数据准确性和兼容性。详情请见性能测试报告。

https://www.yunqi.tech/resource/blogs/lakehouse-performance

十倍性能提升从何而来?

在技术竞争的喧嚣中,我们常见各种性能指标的发布和对比,甚至争吵。然而,正如云器首席架构师CTO关涛所言:“指标是表面的,背后技术是真实的。”指标可以通过多种手段进行“优化”,包括测试方法调整、特定场景优化甚至选择性展示。本文希望通过解读这些表面数字背后的技术点,真正帮读者拆解了解实现这些改进点的差异价值。

本文旨在揭开表象看本质,直接审视支撑这些性能的核心技术创新。通过解析云器Lakehouse系统架构的关键技术点,我们将看到这些十倍性能提升究竟源自何处,以及这些技术如何在实际业务场景中转化为真实价值。只有理解了技术本质,才能真正判断性能提升的含金量和可持续性。

一、从技术进步说起:硬件、软件与网络技术的协同进化

在详解具体的技术优化点之前,让我们先从宏观上分析哪些大的技术进步带来性能红利。这些技术进步包括:硬件的进步,以及硬件供应链的提升。

1. 近年来硬件与基础设施的进步

数据处理性能的提升离不开底层硬件与基础设施的革新。关涛分享了过去十年间,计算环境经历了几项关键变革:

计算能力显著增强:服务器CPU从单核高频向多核架构演进,现代处理器可集成数百核心。同时,SIMD指令集(如AVX-512)提供了强大的向量化计算能力,使数据引擎从“一次处理一个值”转向“一次处理一批值”。这种向量化趋势已成为主流,几乎所有现代分析引擎都采用此技术。

存储性能迭代升级:存储系统经历了从机械硬盘到固态硬盘再到持久化内存的演进。虽然机械硬盘仍未被完全取代,但混合存储架构已成为标准配置。单盘容量持续增加,同时价格持续下降,为大规模数据处理创造了条件。

网络架构全面革新:数据中心网络完成了向Spine-Leaf架构的升级,实现了全网点对点高带宽且一致的连接特性。这解决了传统网络带宽不平衡的问题,使存算分离架构成为可能,数据能够更加自由地流动。

2. 云计算带来的基础设施变革

云计算的普及彻底重塑了硬件供应链,为数据处理系统创造了新的优化空间:

资源弹性显著提升:硬件供应周期从“月”级别压缩到“分钟”级别,企业可以根据实际需求快速调整资源配置,大幅提高资源利用效率。

硬件选择多样化:云平台提供了丰富的硬件组合选项,数据系统可以为不同工作负载匹配最适合的硬件,实现“软件适应硬件”的灵活部署模式。

云原生架构兴起:基于云的“南北分层”架构逐渐成熟,通过合理利用按需实例、Spot实例等资源模型,系统可以在保持高性能的同时优化成本结构。

这些变化为软件系统优化创造了新机会。

除了乘上了软硬件网络的技术红利,云器采用了哪些特别的技术方案优化性能呢?

二、核心技术解析:云器性能优化的四个乘数

10倍性能的详细拆解

云器Lakehouse的性能提升来自多个技术共同作用。关涛用一个简单公式说明:2×3×1.3×1.3≈10.14,把10倍性能分成四部分:

特别的,两个系统在测试中都应用了相同的数据组织优化策略,包括适当的分桶、排序处理以及统计信息增强(Analyze)。

1. C++向量化引擎:3倍提升的核心引擎

C++向量化引擎是云器Lakehouse性能提升的最大来源,单独带来约3倍性能提升。关涛展示了数据对比:同一查询在传统引擎需要15秒,在C++向量化引擎只需5秒,资源用量减少60%。这是由于云器采用了全Native C++实现的Columnar与Codegen结合的执行引擎,充分利用现代CPU的AVX512向量化指令集。——在上一段我们提到CPU架构从单核心高频向多核心转变,SIMD指令集成为主流,这正是向量化引擎的技术基础。

下表展示了基于JVM的Spark引擎与C++向量化引擎在处理大规模数据时的主要差异:

存储层设计与优化

同时,云器Lakehouse在存储层采用了现代湖仓一体化设计,基于自研的C++ Iceberg/Parquet读取器,直接消除了Java原生接口带来的JNI转换开销。

2. 高级查询优化器:2倍提升

关涛介绍的另一个关键技术是云器的高级查询优化器,这部分单独贡献了约2倍性能提升。

“查询优化本质上是个NP完全问题,”关涛解释,“一个包含10个表的Join查询,理论上有超过17万种可能的Join顺序。这种复杂性使得寻找最优执行计划异常困难,尤其在统计信息不足的情况下。”

传统大数据引擎如Spark和Flink主要依赖规则基础优化器(RBO),预定义转换规则如谓词下推、列裁剪等。“规则优化在简单查询上效果尚可,但面对复杂SQL时完全无法胜任。它不能根据数据特征动态调整策略,无法评估不同执行路径的实际成本差异。”

云器团队选择了自研基于Cascades模型的成本优化器(Cost Based Optimzer)方案。“这是一直以来很有挑战的题目”关涛表述,“我们团队花了两年时间才打造出生产级实现,支持精确成本评估和优化。”

云器的Cascades优化器将查询处理分为逻辑优化和物理优化两阶段,使用特殊的备忘录结构高效探索庞大的计划空间。关涛展示了部分TPC-DS中的实际测试效果:

在Q4查询中,优化器通过SubTree Merge合并了6组重复计算,降低了6倍计算量;通过Agg Pushdown将聚合操作下推,减少了91.31%的数据量,带来10倍以上加速。

在Q51查询中,Shuffle Removal技术合并并节省了5个Shuffle过程,贡献了约5倍性能提升。

“我们实现了动态过滤的四种算法和五种过滤函数组合,能针对不同数据特征选择最优方案。”相比之下,即使启用AQE功能,Apache Spark的优化器在执行计划层面仍然无法进行这种深度优化,经常出现多读和重复读的情况,导致性能差距明显。

最后,面对复杂多变的实际环境,云器还引入了学习型优化(LBO)作为补充。“当统计信息不够准确时,基于历史执行的学习模型可以弥补缺陷,”。

3. DAG直连调度:系统效率的精细优化,1.3倍提升

直连调度和自适应缓存技术各自为系统性能带来约1.3倍的提升。

直连调度模式

传统Spark采用BSP(Bulk Synchronous Parallel)模式,每个阶段完成后才开始下一阶段,中间结果需写入磁盘。直连调度引入了MPP架构的数据流特性,使数据能够在节点间直接流动,避免不必要的落盘操作。

该技术实现了三个关键优化:

  • 流水线执行:多个算子可并行工作
  • 直接内存传输:减少数据序列化/反序列化开销
  • 异步I/O处理:提高CPU利用率

云器Lakehouse同时支持BSP和MPP两种调度架构并可灵活切换。BSP模式(GP模式)适合大作业,具有更好的故障恢复能力;MPP模式(AP模式)适合小作业,性能更高。在TPCDS-10TB测试中,通过网络直连实现的MPP模式显著降低了shuffle读写操作,相比BSP模式单独提升了约30%的性能。

关涛认为,“一套引擎融合两种调度模式的架构有望成为行业未来的主流方向。”

自适应缓存:

通过在存储层之上,构建自适应的缓存层,提升IO吞吐和响应速度,能在一定程度提升性能。云器Lakehouse自带基于NVME存储的缓存系统,该系统自动根据负载加载和释放缓存。实践证明,大多数数据访问都遵循二八原则,高速缓存热数据,能有效提升性能。

本次基准测试,数据并未预先加载到缓存(cold run),而是在测试运行过程中,随数据访问逐步加载。实验结果表明,相比完全关闭缓存,上述自适应缓存能带来30%的提升。

技术发展与未来方向

回顾本文对云器Lakehouse各层优化的剖析,我们可以清晰看到其十倍性能提升并非源自单一技术突破,而是全栈式创新的综合结果。从存储层的格式优化与自研读取器,到智能数据缓存机制,再到运行时的多项关键改进,每一环节都经过精心设计与调优。

如果将这一性能突破放在大数据技术演进的历史背景中,“我们认为这是Lambda架构范式向Kappa架构,传统批处理到更有时效数据的处理——基于通用增量计算范式的转变。关涛谈到“之前,从Hadoop到Spark的演进带来了约10倍性能提升。如今,从Spark到新一代引擎同样实现了10倍提升,但路径更加多元化,涉及全栈优化。这反映了大数据技术的成熟度提升,创新不再来自单一突破,而是系统工程的整体提升。”

据关涛透露,云器团队正在研发更多性能优化技术,包括GPU加速、自适应执行计划、机器学习辅助优化等方向,预计未来两年内将带来额外2-3倍的性能提升。

“性能优化是永无止境的旅程,云器Lakehouse的10倍性能只是一个里程碑,而非终点。”

最后,就像关涛在演讲中引用Clickhouse的报告中的一段话,“TLDF: All Benchmarks are Liars”。性能指标是针对特定场景的测试。而真正重要的是在用户实际场景中体现的性能。云器Lakehouse在国内外多云上提供服务,欢迎大家试用,用自己的场景和数据,验证上述性能优化。

相关文章
|
2月前
|
存储 JSON 算法
云器Lakehouse基于增量计算+实时湖仓构建小红书实验数仓生产新范式
小红书联合云器科技,基于增量计算与Iceberg数据湖构建近实时实验数仓:分钟级延迟、资源降耗64%、数据一致性达99%+,支持秒级OLAP查询与灵活扩维,实现流批一体、成本与时效双赢。
173 0
|
2月前
|
人工智能 弹性计算 安全
阿里云/本地部署 OpenClaw 步骤+免费大模型接入指南,新手必装下载量 TOP30 Skill精选分享
OpenClaw的能力边界完全由Skill体系决定,面对ClawHub中数量庞大的技能列表,新手往往难以判断哪些真正具备长期使用价值。本文基于2026年3月最新下载量排行,筛选出30款经过大量用户验证的实用技能,按通用能力、效率增强、垂直场景三层分类整理,同时提供2026年阿里云ECS、MacOS、Linux、Windows11全平台部署流程,以及阿里云百炼Coding Plan免费大模型API配置方法,所有命令可直接复制执行,无冗余表述,帮助用户快速搭建稳定高效的智能体环境。
421 0
|
4月前
|
SQL 存储 人工智能
AI 能力揭秘(五):Apache Doris 原生向量检索的设计及实现
随着大模型和多模态 AI 的快速发展,向量已成为文本、图像、音视频等多元数据的通用语义表示。在这种背景下,检索增强生成(RAG)技术成为连接私有知识与大模型的核心桥梁,而高效的向量检索则是其关键支柱。 与将向量检索视为独立外挂服务的方案不同,Apache Doris 4.0 选择将向量检索能力深度集成于其 MPP 分析型数据库内核。实现向量检索与 SQL 计算、实时分析和事务保障的无缝融合。 本文旨在深入剖析 Doris 向量检索的系统级设计与工程实践,展示其如何在性能、易用性与规模扩展之间取得的平衡。
636 0
AI 能力揭秘(五):Apache Doris 原生向量检索的设计及实现
|
流计算 Java 监控
如何分析及处理 Flink 反压?
反压(backpressure)是实时计算应用开发中,特别是流式计算中,十分常见的问题。反压意味着数据管道中某个节点成为瓶颈,处理速率跟不上上游发送数据的速率,而需要对上游进行限速。
如何分析及处理 Flink 反压?
|
9月前
|
存储 人工智能 NoSQL
万字解码 Agentic AI 时代的记忆系统演进之路
本文深入探讨了在 Agentic AI 时代,记忆(Memory) 作为智能体核心能力的定义、构建与技术演进。
2638 9
万字解码 Agentic AI 时代的记忆系统演进之路
|
10月前
|
人工智能 前端开发 机器人
10+热门 AI Agent 框架深度解析:谁更适合你的项目?
选型Agent框架不等于追热门!要选真正能跑得稳、适配团队能力与业务需求的框架。架构选错,轻则性能差,重则项目难推进。本文详解10大热门框架对比、5大新兴框架推荐及四步选型法,助你高效落地AI应用。
|
存储 缓存 算法
Flink RocksDB 状态后端参数调优实践
RocksDB 的配置也是极为复杂的,可调整的参数多达百个,没有放之四海而皆准的优化方案。如果仅考虑 Flink 状态存储这一方面,我们仍然可以总结出一些相对普适的优化思路。本文先介绍一些基础知识,再列举方法。
Flink RocksDB 状态后端参数调优实践
|
6月前
|
数据采集 人工智能 自然语言处理
大模型微调「数据集构建」保姆级教程(超全)
2024年是“行业大模型元年”,但超80%微调失败源于数据问题。本文揭示从数据收集、清洗到增强的全流程方法论,强调“数据优先”而非“算法崇拜”,结合实战案例与工具推荐,助你构建高质量数据集,真正释放大模型业务价值。
3038 2
大模型微调「数据集构建」保姆级教程(超全)
|
机器学习/深度学习 人工智能 自然语言处理
【专栏】Python在人工智能领域的应用现状、优势及未来趋势
【4月更文挑战第27天】本文探讨了Python在人工智能领域的应用现状、优势及未来趋势。Python作为数据科学、机器学习、深度学习和自然语言处理的首选语言,拥有丰富的库如NumPy、Pandas、TensorFlow和NLTK等。其简洁易学、跨平台和活跃社区等特点促进了AI的普及和发展。未来,Python将在强化深度学习、融合新兴技术、提高可解释性和人才培养等方面持续发挥关键作用。
3257 2
|
Java 测试技术 数据库
使用benchmarksql测试数据库处理能力
传统的OLTP业务,应用系统使用 java 开发,并且不建议使用存储过程,使用 benchmarksql 压测数据库最公平,既可以测试数据库性能,也可以测试JDBC驱动
911 88