限时!亚马逊云科技云从业者认证考试五折,未过免费补考!更有好礼相送! 了解详情
写点什么

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:007897

评论

发布
暂无评论

14年软件开发经历IT:低代码已成为企业管理的核心引擎

一只大光圈

钉钉 低代码 IT 数字化 钉钉宜搭

【深度分享】阿里云架构师解读四大主流游戏架构

阿里云弹性计算

游戏

内网渗透(蚁剑+MSF)

喀拉峻

网络安全 WEB安全 内网渗透

百度文心大模型「技术天团」首次亮相!首场技术开放日、AI创意派决赛来啦~

百度大脑

易观分析:三大协会发声NFT,未来监管走向几何?

易观分析

区块链 NFT

在线CSV转SQL工具

入门小站

工具

Docker 实战教程之从入门到提高 (五)

汪子熙

Docker 容器 虚拟化 容器镜像 4月月更

QIP 25周年

亚马逊云科技 (Amazon Web Services)

量子计算 量子技术 量子纠错

一文带你使用 Apache IoTDB 系统监控模块

Apache IoTDB

3月券商App行情刷新及交易体验评测报告,国泰君安再夺领导者冠军

博睿数据

JS/TS项目里的Module都是什么?

华为云开发者联盟

js Module loaders bundlers

linux之iconv命令

入门小站

Linux

实例解析山路十八弯的Flutter 2.0路由

岛上码农

flutter ios 安卓开发 4月月更 跨平台开发

Tiger DAO VC:将你的风险投资变成DAO组织协同

BlockChain先知

2022年全新FFmpeg/WebRTC/RTMP/RTSP/HLS/RTP播放器-音视频流媒体高级开发学习大纲

赖猫

音视频开发 音视频技术

coreldraw2022订阅版本最新版本简介

茶色酒

cdr2022

读《Software Engineering at Google》(06)

术子米德

架构师成长笔记

让我们开始使用 Amazon Lambda

亚马逊云科技 (Amazon Web Services)

Serverless 云原生 亚马逊云科技 云技能

揭露sealer背后实现整个集群一键交付的奥秘 | 龙蜥技术

OpenAnolis小助手

开源 sealer 龙蜥技术 镜像集群

社区动态|Apache Doris 迎来第 300 位 Contributor !

ApacheDoris

大数据 开源 OLAP MPP apache doris

在线字节转换工具

入门小站

工具

虎符研究院|币圈后浪MetaAds——现实与元宇宙的展示平台

区块链前沿News

虎符交易所

审核和审批的区别

秋去冬来春未远

智慧零售产业应用实战,30分钟上手的高精度商品识别

百度大脑

飞桨EasyDL助力资讯网站实现信息自动分类

百度大脑

这款神器大大提升了协作效率!

Liam

后端 Jmeter Postman swagger Mock

16 张图 | Nacos 架构原理①:一条注册请求会经历什么?

悟空聊架构

nacos 注册中心 4月日更 悟空聊架构 4月月更

自研消息队列之消息队列数据库表设计

晨亮

「架构实战营」

程序员=沉闷无趣?都是刻板印象…

LigaAI

程序员人生 程序猿

同事删库跑路后,我连表名都不能修改了?

码农参上

数据库 数据恢复 权限 删库 4月月更

博睿数据入选首批欧拉技术测评方案,为欧拉生态开发者应用体验保驾护航

博睿数据

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