写点什么

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

评论

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

云行| 龙云展翼 智绘未来,天翼云助力黑龙江打造数智产业新高地!

天翼云开发者社区

人工智能 云计算

让存储绿“翼”盎然,天翼云HBlock入选工信部目录!

天翼云开发者社区

云计算 存储 天翼云 中国电信

数字先锋| “药”上云!天翼云助力国药数科加速建设“国药云”

天翼云开发者社区

云计算 架构 云生态大会

linux各个目录的作用

天翼云开发者社区

Linux 目录

YashanDB携手宏杉科技助力国产软件生态发展

极客天地

刷新方盒子最快10万销量纪录 捷途旅行者何以颠覆越野市场?

极客天地

手把手教你用Spring Boot搭建AI原生应用

百度Geek说

企业号 6 月 PK 榜 AI原生应用 Spring AI

大模型应用之基于Langchain的测试用例生成

京东科技开发者

浅谈Redis的三种集群策略及应用场景

天翼云开发者社区

集群 redis 底层原理

MySQL Shell 使用指南

Simon

MySQL mysqlshell

怎么画ER关系图?这个在线ER图软件值得推荐!

彭宏豪95

职场 ER图 在线白板 办公软件 绘图软件

更懂外贸老板的智能客服,XTransfer上线智能小秋2.0

XTransfer技术

AI 智能客服

Junit4遇上chatGPT

京东科技开发者

大数据与人工智能初了解

天翼云开发者社区

人工智能 大数据

欧特克汽车创新论坛:一汽大众和东研智慧展示最新数字化方案

E科讯

基于SkyEye运行Qt:著名应用程序开发框架

DevOps和数字孪生

qt SkyEye

国云注智,聚力向新!天翼云打造五位一体智算云能力体系!

天翼云开发者社区

云计算 算力 数字中国 云生态大会

GPT-4o初体验:视觉、听觉跨越式升级

蓉蓉

ChatGPT gpt4o

为什么要制定流程规范?

老张

质量保障 checklist 流程规范

一文搞懂 Spring 循环依赖

江南一点雨

Java spring

K8s的Pod资源对象如何实现微服务架构?

OSCTraining

pod #k8s 源来如此公开课

jenkins源代码管理+接入钉钉api发送接口自动化测试报告

测吧(北京)科技有限公司

测试

淘宝按关键字搜索API返回值应用指南:电商运营的得力助手

技术冰糖葫芦

API Explorer api 货币化 API 文档

从数据到决策:拼多多商品详情API在市场分析中的应用

Noah

大模型在推荐系统中的精准推荐策略与实践

京东科技开发者

云主机(操作系统:CentOS7版本)安装nfs客户端,挂载文件系统

天翼云开发者社区

云计算 操作系统 云主机

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