Yelp的数据管道开源了

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

在过去的几个月里,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

相关文章
|
搜索推荐 前端开发 测试技术
Flutter 中获取地理位置[Flutter专题61]
Flutter 中获取地理位置 如今,发现用户位置是移动应用程序非常常见且功能强大的用例。如果您曾经尝试过在 Android 中实现位置,您就会知道样例代码会变得多么复杂和混乱。
471 0
Flutter 中获取地理位置[Flutter专题61]
|
机器学习/深度学习 自然语言处理 计算机视觉
KAN结合Transformer,真有团队搞出了解决扩展缺陷的KAT
【10月更文挑战第15天】Transformer模型在深度学习中广泛应用,但其扩展性存在局限。为此,研究人员提出了Kolmogorov-Arnold Transformer(KAT)模型,通过引入理性基函数、Group KAN和方差保持初始化等创新设计,显著提升了模型的性能和扩展性。实验结果显示,KAT在图像识别、目标检测和语义分割任务中均表现出色,但在计算成本和训练资源方面仍有改进空间。
364 1
|
存储 数据库 数据安全/隐私保护
本地文件内容搜索神器AnyTXT Searcher如何搭建与远程访问
本地文件内容搜索神器AnyTXT Searcher如何搭建与远程访问
741 0
|
缓存 运维 负载均衡
什么才是真正的架构设计?架构君给你解释的一清二楚。
什么才是真正的架构设计?架构君给你解释的一清二楚。
1065 1
什么才是真正的架构设计?架构君给你解释的一清二楚。
成功解决smtplib.SMTPAuthenticationError: (535, b'Error: \xc7\xeb\xca\xb9\xd3\xc3\xca\xda\xc8\xa8\xc2\xeb
成功解决smtplib.SMTPAuthenticationError: (535, b'Error: \xc7\xeb\xca\xb9\xd3\xc3\xca\xda\xc8\xa8\xc2\xeb
|
负载均衡 应用服务中间件 Linux
万字详解Nginx技术
Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性:在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品. 这里为你揭开它的神秘面纱......
万字详解Nginx技术
|
存储 文字识别 机器人
ABBYY15简体中文汉化包OCR文字识别下载教程
自ABBYY FineReader15新版发布以来,一直好评不断,作为市场领先的OCR文字识别软件可快速方便地将扫描纸质文档、PDF文件和数码相机的图像转换成可编辑、可搜索信息。这也使很多小伙伴开始体验和使用该软件,小编亲自测试安装ABBYY FineReader 15版本,并整理教程,有需要的可以参考下。
810 0
|
算法 安全 Java
【Spring Cloud】新闻头条微服务项目:文章内容安全审核(需求分析及前期准备)
主要介绍了文章审核的流程以及如何在移动端文章微服务实现保存文章远程接口,为下一篇文章做准备。
714 0
【Spring Cloud】新闻头条微服务项目:文章内容安全审核(需求分析及前期准备)
|
存储 缓存 算法
Android Glide 缓存机制及源码
Glide的简单使用 Glide里的缓存 什么是三级缓存? 缓存机制 为何设计出活动缓存 加载流程 Glide源码 加载流程 1.Engine类 2.load方法 3.EngineKey 4.loadFromMemory 5.loadFromActiveResources 6.loadFromCache 7.getEngineResourceFromCache 8.waitForExistingOrStartNewJob 9.DecodeJob 10.DiskCacheProvider 11.DiskCache.Factory LRU是什么 内存缓存的LRU LruCache LruCache
489 0
Android Glide 缓存机制及源码
|
JSON 前端开发 数据可视化
中国版Postman
作为软件开发从业者,API 调试是必不可少的一项技能,在这方面 Postman 做的非常出色。但是在整个软件开发过程中,API 调试只是其中的一部分,还有很多事情 Postman 无法完成,或者无法高效完成,比如:API 文档定义、API Mock、API 自动化测试等等。Apifox 就是为了解决这个问题而生的。
中国版Postman