写点什么

Yelp 的数据管道开源了

  • 2016-12-06
  • 本文字数:1390 字

    阅读完需:约 5 分钟

在过去的几个月里,Yelp 一直在不断地向大家分享着他们的数据管道的情况(文章列表见页尾)。这是一套基于 Python 的工具,可以实时地将数据流向需要它们的服务,并随之加以必要的数据处理。这一系列的文章讲述了如何从 MySQL 中将消息复制出来、如何跟踪模式的变化及演进、并最终分享了如何把数据接入到 Redshift 和 Salesforce 等不同类型的目标存储。

幸好 Yelp 非常慷慨,他们不只是分享了自己的设计思路和经验,更是赶在圣诞节之前向大家献上了一份大礼,把主要模块开源出来了!

在读过了所有这些关于我们的数据管道的文章之后,可能你会觉得我们这些 Yelp 的人不过是像一个孩子在向大家炫耀他的新玩具一样,肯定会自己捂得严严的,不会和大家分享。但是和大多数有了新玩具又不会分享的孩子一样,我们愿意分享——所以我们最终决定要把我们的数据管道的主体部分开源出来,然后大家就可以开心地迎来新年假期了。

闲话少说,下面这些就是 Yelp 为大家的假期准备的圣诞礼物:

  • MySQL Streamer 会不断地查看 MySQL 的 binlog,得到最新的表变更操作。Streamer 负责捕获 MySQL 数据库上的单条数据更改操作,并把它封装成 Kafka 消息,发布到 Kafka 的某个 Topic 中。如果有必要,也会做模式转换。
  • Schematizer 服务会跟踪每一条消息所使用的模式信息。在有新模式出现时,Schematizer 会处理注册消息,并为下游的表生成更改计划。
  • Data Pipeline clientlib 为生产和消费 Kafka 消息提供了非常易用的接口。有了 clientlib,就再也不必关心 Kafka 的 Topic 名字、加密或消费者程序的分区情况了。你可以站在表和数据库的角度去考虑问题,不必关心其它细节。
  • Data Pipeline Avro utility 包提供了读写 Avro 模式的 Python 接口。它也可以为表的主键等模式信息提供枚举类,这一点 Yelp 在实践中发现非常有用。
  • Yelp Kafka 库扩展了 Kafka-python 包,并提供了多重处理消费者组等新功能。这个库可以帮助大家非常高效地与 Kafka 进行交互。这个库也让用户可以判断出 Yelp 内部的 Kafka 跨区域部署情况。

数据管道中不同组成部分的概览图。单个服务用方形表示,而共享包用圆角表示。

这些项目每个都有 Docker 化的服务,你可以很容易地把它们用到你的架构中。我们希望对于每个用 Python 构建实时流处理程序的开发者来说,它们都能有用。

有了之前的文章介绍,现在又有了开源的代码,相信有许多数据处理工程师的圣诞假期都会过得无比充实了。

Yelp 的系列文章深度讲解了他们如何用“确保只有一次”的方式把 MySQL 数据库中的改动实时地以流的方式传输出去,他们如何自动跟踪表模式变化、如何处理和转换流,以及最终如何把这些数据存储到 Redshift 或 Salesforce 之类的数据仓库中去。

第一篇:一天几十亿条消息:Yelp 的实时数据管道。(英文
第二篇: Yelp 的实时流技术之二:将 MySQL 表数据变更实时流到 Kafka 中。(英文
第三篇: Yelp 的实时流技术之三:不止是模式存储服务的 Schematizer 。(英文
第四篇: Yelp 的实时流技术之四:流处理器 PaaStorm 。(英文
第五篇: Yelp 的实时流技术之五:数据管道之 Salesforce Connector 。(英文
第六篇: Yelp 的实时流技术之六:近实时地将 Kafka 中的数据流入 Redshift 。(英文


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-12-06 18:004947
用户头像

发布了 152 篇内容, 共 71.3 次阅读, 收获喜欢 64 次。

关注

评论

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

零一万物 Yi-Lightning:超越 GPT-4o 冲击全球榜单;阿里国际 Marco 翻译大模型发布丨 RTE 开发者日报

声网

得物iOS函数调用栈及符号化调优实践|得物技术

得物技术

ios

云桌面解决方案:为何远程办公需要它们

青椒云云电脑

云桌面 云桌面系统 云桌面技术

淘宝 app 商品详情数据接口:让你轻松掌握优惠价、视频和到手价,助力电商决策

tbapi

淘宝商品详情接口 淘宝app详情接口 淘宝详情数据接口 淘宝优惠券接口 淘宝到手价接口

国外巨头们纷纷开始“抄”国产技术了!

Geek_2305a8

离了大谱,和HR互怼后被开了!

王磊

软件测试学习笔记丨宠物商店-接口自动化测试实战

测试人

软件测试

QCA9882 2x2 MIMO 5GHz Wi-Fi Solution with 80MHz Bandwidth and MMCX Connectors

wallyslilly

QCA9882

1688跨境代采集运系统

tbapi

1688代采系统 1688代购系统 1688跨境代采系统

淘宝商品详情数据接口:解锁电商数据分析新密码

tbapi

淘宝商品详情数据接口

推荐给远程办公用户的云桌面服务

青椒云云电脑

云桌面 云桌面厂家 云桌面系统

公链技术开发之路:从概念到实现的公链开发全攻略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 代币开发 海外推广

完全指南:如何高效进行业务应用开发?

NocoBase

开源 低代码 开发工具 无代码 业务应用开发

RUM性能优化之图片加载

乘云数字DataBuff

前端监控 可观测性 JavaScrip RUM

博睿数据首届“观测先锋 · 2024 可观测平台创新应用案例大赛”现已启动!

博睿数据

实时语音交互的游戏队友——网易伏羲AI Agent创新应用 | DataFunSummit2024演讲实录

网易伏羲

人工智能 AI 语音 网易伏羲 游戏AI

AIGC加速商业化落地,抖音开放平台如何打造新ToB商业模式?

ToB行业头条

什么政府网站一定要安装SSL证书吗?应该选择哪种SSL证书?

国科云

k8s-NFS系统配置

不在线第一只蜗牛

Kubernetes 容器 云原生

有哪些常见的云桌面套餐比较推荐?

青椒云云电脑

云桌面 云桌面厂家 云桌面方案

一图为你揭秘云数据库GaussDB管理平台亮点

华为云开发者联盟

云原生 GaussDB 智能运维 数据库·

大数据存储计算平台EasyMR:大数据集群动态扩缩容,快速提升集群服务能力

袋鼠云数栈

鸿蒙开发案例:绘制中国象棋棋盘与棋子的技术教程

zhongcx

如何评估云桌面套餐的性价比?

青椒云云电脑

桌面云 云桌面 云桌面厂家 云桌面系统

阿里云EMR StarRocks X Paimon创建 Streaming Lakehouse

Apache Flink

大数据 flink StarRocks EMR

云桌面适合哪些类型的工作

青椒云云电脑

云桌面

MySQL 通过 Next-Key Locking 技术(行锁+间隙锁)避免幻读问题

EquatorCoco

MySQL 数据库

NIPs 平台:Mint Blockchain 推动 NFT 创新的新平台

NFT Research

NFT\ #Web3

这十年我与广告不共戴天练就的十八般武艺 #PC去广告 #手机去广告

EquatorCoco

手机 广告 PC

百度搜索2024考研大数据:北方考生“南移”成潮流

Geek_2d6073

AI+云原生时代,高校该如何创新教育模式

Tp_jh

云计算 软件工程 计算机 大学 #云原生

Yelp的数据管道开源了_语言 & 开发_足下_InfoQ精选文章