硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

评论

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

华为云数据灾备方案,做好企业数据的坚硬后盾

YG科技

华为云数据灾备,满足企业数据安全及业务连续性需求

YG科技

薪资结构重铸: Zebec将业务范围扩大到Web2薪资管理领域

西柚子

从原理聊JVM(一):染色标记和垃圾回收算法

京东科技开发者

Java JVM 三色标记 垃圾回收器 企业号 4 月 PK 榜

和 if else说再见,SpringBoot 这样做参数校验才足够优雅!

Java你猿哥

Java spring Spring Boot ssm if-else

Java 依赖注入(DI)

HoneyMoose

跨平台应用开发进阶(五十二):安全合规之Android APP完整性校验机制探究

No Silver Bullet

android 安全合规 跨平台应用开发 三周年连更 APP完整性

技术探讨 | YMatrix 如何将 TPC-H 性能提升 10 倍?

YMatrix 超融合数据库

数据库 开源数据库 性能提升 超融合数据库

《一文带你看懂:如何进行一次高质量CR》

后台技术汇

代码评审 三周年连更

直播预告 | 时序数据处理的云端利器:TDengine Cloud 详解与演示

TDengine

tdengine 时序数据库 云服务

J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨

HoneyMoose

Unity常用生命周期函数解析 - 超级详细,不服来辩

陈言必行

Unity 三周年连更

容易忽视的细节:Log4j 配置导致的零点接口严重超时

vivo互联网技术

问题排查 接口超时 线程block

全栈开发实战|​人事管理系统的设计与实现(Spring Boot + Vue 3 + MyBatis)

TiAmo

Spring Boot mybatis Vue 3 全栈开发 三周年连更

Spring Boot过滤器实现项目内接口过滤

Java你猿哥

Java Spring Boot SSM框架

某程序员:被裁了要求公司足额补缴全部公积金,一次补二十多万!

Java你猿哥

Java 程序员 SSM框架

华为云数据灾备解决方案,助力企业守好安全防线

YG科技

什么是 API 接口测试

AREX 中文社区

测试 自动化测试 接口测试 回归测试

求你看完再去面试!涨薪必备分布式事务小抄,狂怼面试官

程序知音

Java 分布式 后端 java架构 Java进阶

右键助手:MouseBoost PRO mac激活版

真大的脸盆

Mac Mac 软件 鼠标增强工具 鼠标辅助软件

企业微信接入系列-上传附件资源

六月的雨在InfoQ

企业微信 三周年连更 企业微信接入 企微上传附件

行业分析| 新的学习方式——在线自习室

anyRTC开发者

音视频 在线教育 视频直播 直播连麦 在线自习室

【数据中台商业化】数据中台微前端实践

京东科技开发者

数据中台 微前端 iframe 微前端框架

[杂谈]谷歌浏览器 XSwitch 插件 - 解决本地请求转发

alexgaoyh

浏览器 插件 请求转发 本地请求 xswitch

有没有那么一瞬间,你也曾有过“失业焦虑”呢?| 社区征文

架构精进之路

技术创新 职业发展 三周年征文 三周年连更

什么是前端开发领域的 Cumulative Layout Shift 问题

汪子熙

typescript 前端开发 angular web socket 三周年连更

Spring Boot如何使用Undertow容器?超级详细,建议收藏

bug菌

Spring Boot 三周年连更 Undertow

音视频开发_获取媒体文件的详细信息

DS小龙哥

三周年连更

Qz学算法-数据结构篇(稀疏数组、队列)

浅辄

数据结构 队列 稀疏矩阵 三周年连更

Android事件分发-基础原理和场景分析

京东科技开发者

android Activity View 企业号 4 月 PK 榜 ViewGroup

从原理聊JVM(一):染色标记和垃圾回收算法

小小怪下士

Java 程序员 后端 JVM

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