金融科技复合型人才缺口持续扩大,企业如何实现内部人才“活水”? 了解详情
写点什么

Yelp 使用 Apache Beam 和 Apache Flink 彻底改造其流式架构

  • 2024-05-29
    北京
  • 本文字数:1116 字

    阅读完需:约 4 分钟

大小:523.49K时长:02:58
Yelp 使用 Apache Beam 和 Apache Flink 彻底改造其流式架构

Yelp 公司 采用 Apache Beam 和 Apache Flink 重新设计了原来的数据流架构。该公司使用 Apache 数据流项目创建了统一而灵活的解决方案,取代了将交易数据流式传输到其分析系统(如 Amazon Redshift 和内部数据湖)的一组分散的数据管道。


Yelp 在两套不同的在线系统中管理业务实体(其平台中的主要数据实体之一)的属性。平台的旧版部分将业务属性存储在 MySQL 数据库中,而采用微服务架构的较新部分则使用 Cassandra 存储数据


在过去,该公司将数据从在线数据库流式传输到离线(分析)数据库的解决方案,是由上述管理业务属性的两个区域的一些独立数据管道组成的。该方案使用  MySQL 复制处理程序 从旧系统推送数据,使用  Cassandra 源连接器 从新系统推送数据。在这两种情况下,更新都发布到 Apache Kafka,而  Redshift 连接器负责将数据同步到相应的 Redshift 表。


之前的业务属性流式传输架构(来源:Yelp 工程博客)


原有解决方案采用单独的数据管道,将数据从在线数据库流式传输到分析数据存储中,其封装性较弱,因为离线(分析)数据存储中的数据表与在线数据库中的对应表完全对应,使数据分析团队面临数据差异和数据准确性问题。此外,分析过程必须从多个表中收集数据,并将这些数据规范化为一致的格式。最后,由于在线和离线数据存储之间的表架构相同,对架构的更改必须在两处各自部署,从而带来了维护挑战。

Yelp 团队决定解决原有方案的这些问题,方法是将在线系统的内部实施细节抽象出来,并为使用分析数据存储的客户提供一致的体验。Yelp 高级数据工程师 Hakampreet Singh Pandher 解释了团队采用的方法:[...]


我们实施了一个统一的流,以一致且用户友好的格式提供所有相关的业务属性数据。这种方法可确保业务属性消费者无需处理业务属性和功能之间的细微差别,也无需了解它们的在线源数据库中数据存储的复杂性。


团队利用 Apache Beam 和 Apache Flink 作为分布式处理后端。Apache Beam 转换作业从旧版 MySQL 和较新的 Cassandra 表中获取数据,将数据转换为一致的格式并将其发布到单个统一的流中。工程师使用  Joinery Flink 作业 将业务属性数据与相应的元数据合并。另一项作业用于解决数据不一致的问题,最后在 Redshift Connector 和 Data Lake Connector 的帮助下,业务属性数据进入两个主要的离线数据存储中。


业务属性的新流式架构(来源:Yelp 工程博客)


彻底改造流式架构的总体收益是让数据分析团队能够通过单一模式访问业务属性数据,这有助于数据发现,让数据消费更简单。该团队还利用 实体 - 属性 - 值(EAV)模型,将新业务属性纳入系统,同时减少维护开销。


原文链接:


Yelp Overhauls Its Streaming Architecture with Apache Beam and Apache Flink (https://www.infoq.com/news/2024/04/yelp-streaming-apache-beam-flink/)

声明:本文为 InfoQ 翻译,未经许可禁止转载。

2024-05-29 08:007908

评论

发布
暂无评论

Nautilus Chain 推出全新 Layer3 DID 公民身份,限量 10 万枚免费发放

鳄鱼视界

C++中fork函数的使用及原理

芯动大师

PoseiSwap 将向 Zepoch 节点持有者发放新一轮空投,生态启动在即

鳄鱼视界

开心档之C++ 数组

雪奈椰子

PoseiSwap 将向 Zepoch 节点持有者发放新一轮空投,生态启动在即

大瞿科技

豫园股份基于低代码敏捷式开发的实践与落地

明道云

py基础知识点归纳总结

全栈若城

Python 学习 基础

应用在虚机和容器场景下如何优雅上下线

YG科技

Nautilus Chain 推出全新 Layer3 DID 公民身份,限量 10 万枚免费发放

股市老人

Nautilus Chain 推出全新 Layer3 DID 公民身份,限量 10 万枚免费发放

威廉META

我在AIGC和数字中台方面的架构升级设计

软件工程师-罗小东

PoseiSwap 将向 Zepoch 节点持有者发放新一轮空投,生态启动在即

威廉META

2023-07-01:redis过期策略都有哪些?LRU 算法知道吗?

福大大架构师每日一题

redis 福大大架构师每日一题

免费搭建一个有脾气的聊天机器人,1行Python代码就够了!

程序员晚枫

Python 微信 机器人

【分布式技术专题】「分布式技术架构」实践见真知,手把手教你如何实现一个属于自己的RPC框架(架构技术引导篇)

洛神灬殇

RPC 架构分析 分布式服务

PoseiSwap 将向 Zepoch 节点持有者发放新一轮空投,生态启动在即

西柚子

Python潮流周刊#9:如何在本地部署开源大语言模型?

Python猫

Python

Nautilus Chain 推出全新 Layer3 DID 公民身份,限量 10 万枚免费发放

BlockChain先知

【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)

洛神灬殇

JVM Java虚拟机 技术推荐 技术调优 开发实战

PoseiSwap 将向 Zepoch 节点持有者发放新一轮空投,生态启动在即

股市老人

专科学历,有机会转行程序员吗?

程序员晚枫

程序员 面试 转行 学习计划

PixelForce - AI绘画释放产品魅力

原力在线

Go 语言 context 都能做什么?

AlwaysBeta

Go Context go面试题

Java程序性能分析:开篇之jps

javalover123

Java 性能优化 性能 后端

es笔记四之中文分词插件安装与使用

Hunter熊

中文分词 elasticsearch

开心档之C++ 模板

雪奈椰子

高效联调,可靠发布!华为云推出CodeArts Release发布管理服务

YG科技

PoseiSwap 将向 Zepoch 节点持有者发放新一轮空投,生态启动在即

BlockChain先知

趣解领域驱动设计-从地心说到日心说

凡语

领域驱动设计

Yelp 使用 Apache Beam 和 Apache Flink 彻底改造其流式架构_架构_Rafal Gancarz_InfoQ精选文章