HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

大数据读性能 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:365619

评论

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

加速布局,用友为国产化替代保驾护航!

用友BIP

国产替代

科研类项目核算的“法、术、器”(一)

用友BIP

项目云

快速提效,便捷易用 | 嘉为蓝鲸数字化运营中心全方位体验升级

嘉为蓝鲸

运维 IT weops

几天不写React,已经看不懂语法了

伤感汤姆布利柏

科兴未来|第二届T-MAX“科创太仓”国际创新创业--先进材料专场赛

科兴未来News

飞桨和硬件伙伴们在WAIC 2023!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

用友iuap亮相全球数字经济大会助力企业升级数智化底座

用友BIP

数智底座

新能力提升全面预算管理效率和效力

用友BIP

全面预算

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年6月刊

墨天轮

MySQL 数据库 oracle postgresql 国产数据库

华为开发者大会:软件开发小白的华为云云上初体验

华为云PaaS服务小智

云计算 软件开发 华为云 华为开发者大会2023

户外led显示屏常见规格有哪些

Dylan

广告 屏幕亮度 像素 LED显示屏 户外LED显示屏

Kurator v0.4.0版本更新4大内容,满足多云环境的复杂需求

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

业务创新的利器:探索Flutter与小程序容器的融合应用

FinClip

京东统一头尾管理系统探索实践 | 京东云技术团队

京东科技开发者

管理系统 企业号 7 月 PK 榜 头尾管理

阿里云瑶池数据库出席2023可信数据库发展大会,PolarDB荣获多项评测证书

科技热闻

智能电视APP鲜时光,如何应用AB测试打造极致的用户观看体验?

字节跳动数据平台

IT运维的福音!WeOps综合服务让运维更简单

嘉为蓝鲸

运维 IT weops

gRPC 接口调试利器,让你成为高效开发者

Apifox

程序员 gRPC RPC 开发 RPC 协议实现原理

手把手教学构建农业知识图谱:农业领域的信息检索+智能问答,命名实体识别,关系抽取,实体关系查询

汀丶人工智能

人工智能 深度学习 nlp 知识图谱 智能问答

数智化赋能企业,开启全新商业模式

用友BIP

国产替代

活动预告|7月29日 Streaming Lakehouse Meetup·北京站

Apache Flink

大数据 flink 实时计算 信息推送

新兴技术与禅坐 | 聊聊经验 | 社区征文

写程序的小王叔叔

经验分享 年中技术盘点

万字好文:大报文问题实战 | 京东物流技术团队

京东科技开发者

MySQL 网关 报文 企业号 7 月 PK 榜 大报文

Pytorch: 数据读取机制Dataloader与Dataset

timerring

人工智能

深度剖析之由浅入深揭秘JavaScript类型转换(最全总结篇)

Immerse

JavaScript 类型转换 隐式转换 类型 强制类型转换

Git操作不规范,战友提刀来相见!

树上有只程序猿

基于知识图谱的《红楼梦》人物关系可视化及问答系统(含码源):命名实体识别、关系识别、LTP简单教学

汀丶人工智能

人工智能 深度学习 nlp 知识图谱 智能问答

一份保姆级的Stable Diffusion部署教程,开启你的炼丹之路 | 京东云技术团队

京东科技开发者

人工智能 AI绘画 Stable Diffusion 企业号 7 月 PK 榜

《2022-2023年中国大数据市场研究年度报告》正式发布,腾讯云位列领导者行列

Geek_2d6073

王海峰最新发声!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

万字血书React—走近React

不在线第一只蜗牛

React 教程分享

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