大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

评论

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

随着数字资产的增长,香港推进稳定币监管

TechubNews

AI智能体的开发

北京木奇移动技术有限公司

软件外包公司 AI技术应用 AI技术外包

YashanDB支持的多租户管理功能介绍

数据库砖家

YashanDB数据库备份恢复策略与实操指南

数据库砖家

YashanDB数据库备份与恢复最佳实践指南

数据库砖家

YashanDB数据库多版本控制功能介绍与应用

数据库砖家

YashanDB数据库多副本部署与数据一致性保障教程

数据库砖家

《HarmonyOSNext性能暴增秘籍:Node-API多线程通信从阻塞到丝滑的4大方案实战》

Turing_010

《HarmonyOSNext三方库神装手册:一网打尽炫酷动效开发》

Turing_010

xHistory for Mac:Mac 终端记录管理的得力助手

晨光熹微

YashanDB支持的开发语言与工具:提升开发效率

数据库砖家

YashanDB支持的数据导入导出工具介绍

数据库砖家

YashanDB数据库备份策略及灾难恢复方案解析

数据库砖家

SSD指南:理解固态硬盘及透明压缩技术的影响

ScaleFlux

数据中心 数据压缩 企业存储 企业级NVMeSSD

YashanDB数据库动态扩展能力及实现方式介绍

数据库砖家

《独立开发工具 • 半月刊》 第 012 期

Immerse

YashanDB支持的多种索引类型及应用场景

数据库砖家

YashanDB支持的扩展功能如何提升用户体验

数据库砖家

YashanDB支持的异地多活部署方案详解

数据库砖家

YashanDB支持哪些数据类型?全面解析其数据模型

数据库砖家

YashanDB支持的主流开发框架与工具

数据库砖家

YashanDB数据库备份恢复流程全攻略

数据库砖家

YashanDB数据库备份与恢复的实战经验分享

数据库砖家

DrugCLIP:AI驱动超高通量虚拟筛选引擎,开启后AlphaFold时代创新药物发现新篇章

智源研究院

人工智能 科技 药物 AI+

YashanDB支持的国际标准和合规性分析

数据库砖家

ZBrush for Mac:释放 Mac 上的数字雕刻潜能

晨光熹微

YashanDB支持的存储格式及压缩技术解析

数据库砖家

华为智能穿戴十年,一场智能手表的健康革命

脑极体

AI

YashanDB数据库备份与恢复的最佳实践

数据库砖家

YashanDB支持的缓存机制如何提高性能?

数据库砖家

什么是子域名?子域名需要单独注册吗?

防火墙后吃泡面

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