设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Yelp的数据管道开源了

2016-12-7 22:18| 发布者: joejoe0332| 查看: 925| 评论: 0|原作者: InfoQ|来自: InfoQ

摘要: 在过去的几个月里,Yelp一直在不断地向大家分享着他们的数据管道的情况(文章列表见页尾)。这是一套基于Python的工具,可以实时地将数据流向需要它们的服务,并随之加以必要的数据处理。这一系列的文章讲述了如何从 ...

在过去的几个月里,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之类的数据仓库中去。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部