Yelp的数据管道开源了

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
+关注继续查看

在过去的几个月里,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构建实时流处理程序的开发者来说,它们都能有用。

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


本文作者:佚名

来源:51CTO

相关文章
|
7月前
|
NoSQL Shell Linux
如何使用 Flupy 构建数据处理管道
如何使用 Flupy 构建数据处理管道
76 0
|
12月前
|
自然语言处理 搜索推荐 算法
亿级用户的平台是如何使用词嵌入来建立推荐系统的
亿级用户的平台是如何使用词嵌入来建立推荐系统的
69 0
亿级用户的平台是如何使用词嵌入来建立推荐系统的
|
存储 自然语言处理 前端开发
IM跨平台技术学习(六):网易云信基于Electron的IM消息全文检索技术实践
在IM客户端的使用场景中,基于本地数据的全文检索功能扮演着重要的角色,最常用的比如:查找聊天记录、联系人等。 类似于IM中的聊天记录查找、联系人搜索这类功能,有了全文检索能力后,确实能大大提高内容查找的效率,不然,让用户手动翻找,确实降低了用户体验。 本文将要分享的是,网易云信基于Electron的PC端是如何实现IM客户端全文检索能力的。
158 0
IM跨平台技术学习(六):网易云信基于Electron的IM消息全文检索技术实践
|
数据采集 人工智能 程序员
使用Python将任正非400+篇演讲批量转化为语音
作为菊长的合作公司,任总在2019年第一封电邮讲话中,说到了华为今年将全面提升工程能力,并对产品高质量进行重点关注。对此电邮讲话,公司要求各部门认真学习。当时我心血来潮,使用python把文章用jieba进行了词频分析,最终将文章转化为语音分享给同事们。 回忆起这茬,那么这次的400多篇文章,我岂不是可以如法炮制的都转化成mp3文件,丢到手机里每天上下班坐车的时候慢慢听?说干就干!
144 0
|
SQL 消息中间件 开发框架
如何利用.NETCore向Azure EventHubs准实时批量发送数据?
Azure事件中心的基础用法 .NET Core准实时分批向Azure事件中心发送数据,其中用到的TPL Dataflow以actor模型:提供了粗粒度的数据流和流水线任务,提高了高并发程序的健壮性。
如何利用.NETCore向Azure EventHubs准实时批量发送数据?
|
存储 缓存 安全
开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6
开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6
228 0
开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6
|
Java Unix Linux
开源项目推荐:IM开源即时通讯软件收集,请重点关注Telegram/野火/flamingo
开源项目推荐:IM开源即时通讯软件收集,请重点关注Telegram/野火/flamingo
3049 0
|
存储 NoSQL 关系型数据库
亿级规模的 Feed 流系统,如何轻松设计?
阿里妹导读:互联网进入移动互联网时代,最具代表性的产品就是各种信息流,像是朋友圈、微博、头条等。这些移动化联网时代的新产品在过去几年间借着智能手机的风高速成长。这些产品都是Feed流类型产品,由于Feed流一般是按照时间“从上往下流动”,非常适合在移动设备端浏览,最终这一类应用就脱颖而出,迅速抢占了上一代产品的市场空间。
5716 0
|
机器学习/深度学习 存储 人工智能
Facebook 开源高速大规模图嵌入工具 PBG
比起一般的嵌入软件,表现更快,同时能产出与先进模型相当的嵌入质量。
551 0
|
存储 NoSQL 数据库
朋友圈不知你看到的那么简单,千万Feed流系统的存储技术解密
阿里巴巴高级技术专家木洛在2018云栖大会·深圳峰会中就Feed流的概念介绍、概念架构以及TableStore场景的Timeline模型等方面的内容做了深入的分析。本文带领大家一起了解并学习如何通过存储系统的性能特性,通过Feed流中的消息存储和推送机制支撑起千万Feed流的并发。
8890 0
推荐文章
更多