AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

评论

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

5分钟速读之Rust权威指南(十三)

wzx

rust

人生算法:愿景,设计人生导航系统

石云升

读书笔记 愿景 5月日更

大数据采集和常见问题

数据社

大数据 数据采集 5月日更

通证经济— 激励机制、社会生产、后资本主义

CECBC

模块五作业

c

架构实战营

不含敌意的坚决|靠谱点评

无量靠谱

IoT系列,树莓派监控开关状态

IT蜗壳-Tango

IT蜗壳 IT蜗壳教学 5月日更

智慧光伏能源-园区光伏发电能源管控可视化

一只数据鲸鱼

数据可视化 智慧园区 智慧能源 能源管理 光伏发电

Logstash-数据流引擎

进击的梦清

大数据 Linux 运维 后端 Logstash

react源码解析2.react的设计理念

全栈潇晨

React React Hooks react源码

网络攻防学习笔记 Day31

穿过生命散发芬芳

5月日更 网络攻防

6000 字 |Redis 分布式锁|从青铜到钻石的演进方案

悟空聊架构

redis 缓存 分布式锁 redis分布式锁 6月日更

自制文件系统 —— 1 什么文件系统

奇伢云存储

Linux 文件系统 Go 语言

【Flutter 专题】116 图解 PhysicalModel & PhysicalShape 裁切小组件

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

在 Python 中解析和修改 XML,你会么?

华为云开发者联盟

Python xml 字符串 Python XML 解析器

百度爱番番与Servicemesh不得不说的故事

百度Geek说

99% 的同学写不出好代码,都是因为这个问题!

程序员鱼皮

Java c++ Python 自学编程 经验分享

iOS基础原理题目汇总

程序员 面试 iOS 知识体系

架构之:软件架构漫谈

程序那些事

架构 系统架构 软件设计 程序那些事

不愧是Alibaba技术官,Kafka的精髓全写这本“限量笔记”里,服了

Java 大数据 架构 面试

深入剖析 MySQL 自增锁

leonsh

MySQL 数据库

HTTP协议

IT视界

网络协议 HTTP 网络通信协议

聊一聊我最近使用的uniCloud是个什么玩意

麦洛

uniapp unicloud

dex优化对Arouter查找路径的影响

vivo互联网技术

android mongodb

《面试官:谈谈你对索引的认知》之B-树

架构精进之路

MySQL 索引结构 6月日更

从外包到拿下阿里offer,这2年5个月13天到底发生了什么?

Java 程序员 架构 面试

ModelArts的雪中送炭,让我拿下CCF BDCI华为Severless工作负载预测亚军

华为云开发者联盟

modelarts 工作负载 大赛 severless lstm架构

Dubbo 服务治理

青年IT男

dubbo

文本分析基本流程

Qien Z.

文本分析 5月日更

唵嘛呢叭咪吽|靠谱点评

无量靠谱

One-on-One Meeting

escray

学习 5月日更 朱赟的技术管理课

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