QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

大数据读性能 5 倍提升、写性能 10 倍提升,顺丰实时数据湖是如何做到的?

  • 2022-07-25
  • 本文字数:2498 字

    阅读完需:约 8 分钟

大数据读性能 5 倍提升、写性能10倍提升,顺丰实时数据湖是如何做到的?

为满足前端业务决策分钟级需求响应,顺丰科技建立了实时数据湖,实现了整个数据体系的巨大提升。我们采访了顺丰科技大数据架构负责人林国强,请他就云原生实时数据湖实践进行了分享。本文为采访整理文~

 

InfoQ:顺丰科技科技为什么要建立实时数据湖?云原生实时数据湖有哪些优势?

 

林国强:顺丰科技以前的数仓,是基于 Hive/Spark 架构,指标时效是 T+1 天,而前端的业务决策和业务运营给科技侧提出了更高的需求,希望指标时效能够做到分钟级,这是顺丰要建立实时数据湖的缘由。实时数据湖的优势非常简单,就是快,能够大大提高整个数仓体系的指标时效,为后续的业务提供更快的支撑。

 

InfoQ:顺丰科技科技实时数据湖是基于哪项数据湖框架开发的?

 

林国强:顺丰科技主要基于 Hudi 体系构建实时数据湖,同时修改了开源 Hudi 的一些内核,比如全增量混合状态的并行读,Parquet 块级别索引,读写的性能优化等。同时也修复了很多社区的 bug,让它能在大规模生产环境运行。

 

InfoQ:实时数据湖规模化落地过程中,遇到了哪些挑战?面对这些挑战,顺丰科技科技的解决方案是什么?

 

林国强:实时数据湖落地过程中,一个是技术层面的挑战,一个是业务层面挑战;

 

就技术方面而言,首先是写入性的问题。目前 Hudi 开源最新的版本乐观锁的优化,并没有解决读时混合状态的并发问题。比如,有一张 TestA 表,Hudi 先会读取此表的全量,再读此表的增量,如果这时候有一张 TestB 表进来,那么 Hudi 会先读 B 表的全量,然后才会去处理 TessA 表的增量。也就是说,即便这个时候 Test A 的增量在处理中了,它也会停下来先去读 TestB 表的全量,然后再去处理这个增量。Hudi 需要所有的表状态都到增量这个环节,它才会去做增量的同步。这对于多端混合状态的并发影响比较大。

 

其次是,Hudi 并没有搞定 Parquet 文件“块级别”的索引,我们使用 Hfile 去做。这样做的优势是,你在写的时候,可以直接定位到指定块进行更新,大家不需要对整个 Parquet 文件涉及到的块进行更新,这个时候,你的 I/O 的提高至少 10 倍以上;另外是 Hudi 本身对 Parquet 序列化与反序列化的问题。Hudi 会把某行所有列都序列化出来,然后再更新到对应的列之后,它全部都会反序回去。但实际上,我们可能只更新某行或者某列。我们做了一个优化,可以针对特定列进行更新,节省了许多 CPU 的计算性能。

 

最后,我们自研了 SQL 引擎,引擎针对 Hudi 进行了一些下推与优化,包括做了很多一些逻辑减值的优化。相较开源版本而言,读性能提升 3~5 倍。

 

就业务的挑战层面,主要是从传统数仓到实时数据湖迁移涉及的业务方较多,涉及的改造点集中在数据接入,这部分是需要找到愿意配合的业务方,逐步改造,形成示范效应后,再进行全面推广。Hudi 数据集成环节需要进行很多改造,比如,我们需要将原来 Insert overwrite 的语法,修改成 Merge into 语法,最后,我们从市场线开始合作,因为他们对于市场指标支撑的时效性要求比较高,最终完成了整个改造。

 

InfoQ:通过数据湖来构建实时数仓,大致分为了哪几个过程?

 

林国强:第一个阶段,顺丰最开始做数仓的时候,并非是用 Hudi 这种方式去做,我们使用用 Flink+Spark 这种架构去做数据仓库。本质上讲,实时计算方面,我们仍然在使用 Flink,离线方面还是在用 Spark,只是我们在工具层开发了批流合一工具。这些工具可以使得我们使用统一的分析入口,既同时做实时,又同时做离线,整个方案相当于是工具层统一,引擎层仍然是混合结构,这种方式有两个较大的问题。

 

一方面是指标一致性问题,顺丰每天约有 200TB 数据,通过实时和离线链路出来的指标,总会有一些细微的差别,哪一条链路的数据值得信赖是个较大的问题;另外一方面是计算资源的消耗问题,我们需要重复计算相关指标,算力消耗非常大。 

 

第二个过程,我们研究了整个行业大数据架构的发展,发现实时数仓、实时数据湖是一个比较好的方式。从业务角度来看,并非所有的指标都需要毫秒级别,99%的指标可能需要 10 分钟以内,可能只有 1%的指标需要达到毫秒级,针对这部分需求,我们引入了实时数仓的技术,从对于指标时效性要求比较高的业务线来进行合作。将所有生产线的实时与离线指标放到了 Hudi 体系,这样做之后,指标完全一致,能耗也降了下来,并且整个的分析性能比原来还要快一倍,时效性也可以满足市场线进行商业驱动的需求。 

 

第三阶段,除了将之使用在市场线之外,我们会在运营线、人机线、财务线等都进行复制。我们希望未来整个集团的绝大部分指标,都能够放到实时数据湖体系里面。

 

InfoQ:顺丰科技云原生实时数据湖发展的未来规划有哪些?

 

林国强:主要是会从存算分离、实时数仓湖仓一体三个方向进行深化。存算分离,是为了解决资源弹性伸缩问题,这个也是传统大数据遗留的问题,通过它可以实现大数据成本优化,按需伸缩;实时数仓,主要是提高数据从接入到应用的整体时效,希望未来能够达到 10 秒以内,这样,很多场景,很多架构会形成统一,不需要那么多异构集群;湖仓一体,主要是希望实时数据湖,未来在查询响应速度和并发能力这两部分能跟上现在的传统数仓,同时,在数据管理能力也能提上来,这样,一个湖就能覆盖一个企业的所有跟数据有关的场景,这是一个美好的未来。

 

InfoQ:顺丰科技是否输出此项技术对外服务,以什么方式输出?


林国强:顺丰科技目前是有做大数据 ToB 市场的,我们是以私有化产品和公有云 PaaS 两种方式提供云原生实时数据湖能力,同时提供一些企业构建实时数据湖所需要的咨询和架构设计服务。

 

嘉宾介绍:


林国强,顺丰科技科技大数据架构负责人,曾任职深信服及新华三大数据总监,中国最早一批大数据和人工智能玩家,拥有超过 10 项大数据发明专利,负责过 10 亿级超大规模大数据项目,全国实施超过 10000 个大数据节点,承载和分析超过 1000PB 以上数据。在云原生实时数据湖方面有深入研究和落地实践,致力于简单、易用、高效的大数据基础设施技术,推动大数据赋能全球产业数字化底盘。


活动推荐:

ArchSummit全球架构师峰会(北京站)即将在 8 月 18-19 日落地,我们设置了【云数据库架构设计】【微服务治理之基础架构】【微服务治理之业务架构】【数据库与存储技术】等专题,点击蓝色超链,可查看具体议题。

2022-07-25 18:365803

评论

发布
暂无评论
发现更多内容

DAPP 燃烧质押 TITAN 挖矿系统开发

l8l259l3365

OPPO Find N3,解码“新商务场景”

脑极体

OPPO

ES6新特性(六)

阡陌r

JavaScript import ES6 export 模块化

VMware Workstation 17安装教程:安装系统

小齐写代码

DHorse改用fabric8的SDK与k8s集群交互

tiandizhiguai

2023云栖大会议程&体验攻略

阿里云CloudImagine

云计算 云栖大会

两种情况下 不能放弃云计算! | David Hansson

B Impact

Mac系统的防病毒软件推荐Antivirus Zap - Virus Scanner 最新中文版

胖墩儿不胖y

Mac软件 杀毒软件 mac系统维护软件

原来低代码开发如此简单

树上有只程序猿

软件开发 低代码 JNPF

国外怎么传大文件到国内,这款传输软件跨国企业必备

镭速

国外传输文件 跨国传输软件

问鼎之战 蓄势待发——鲲鹏应用创新大赛2023全国总决赛即将启幕!

极客天地

Linux环境变量及作用

芯动大师

文心一言 VS 讯飞星火 VS chatgpt (124)-- 算法导论10.5 5题

福大大架构师每日一题

福大大架构师每日一题

Linux tar打包命令

芯动大师

Linux zip命令:压缩文件或目录

芯动大师

PHP/MySQL开发本地服务器 MAMP Pro for Mac

展初云

Mac软件 开发软件 MAMP

好用的全局代理客户端 Proxifier for Mac

展初云

Mac 代理 Mac软件 Proxifier

Java基础面试题【MyBatis】

派大星

Java 面试题

CodeWhisperer 初体验

亚马逊云科技 (Amazon Web Services)

Python 人工智能 sql 云上探索实验室 Amazon CodeWhisperer

快手持续落地AIGC新应用场景 开启内测“AI小快”

Geek老T

AI 短视频 AIGC

第17期 | GPTSecurity周报

云起无垠

鸿蒙OS应用开发初体验

巫山老妖

鸿蒙开发 鸿蒙系统

商业模式画布的9大模块详细解读,一文弄懂产品经理必备技能!

彭宏豪95

创业 互联网 产品经理 商业模式 在线白板

编程和数学计算软件MATLAB R2023b for Mac

展初云

Mac matlab Mac软件

大数据读性能 5 倍提升、写性能10倍提升,顺丰实时数据湖是如何做到的?_ArchSummit_林国强_InfoQ精选文章