写点什么

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:004993
用户头像

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

关注

评论

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

一种DWS迁移Oracle的CONNECT BY语法的方案

华为云开发者联盟

数据库 华为云 华为云开发者联盟 企业号 5 月 PK 榜

【FAQ】视频编辑服务常见问题及解答

HarmonyOS SDK

HMS Core

腾讯Java大牛整理推荐的(Spring AOP/IOC思维导图源码笔记)

做梦都在改BUG

Java spring aop ioc

华为Atlas 200I DK A2开箱!

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 5 月 PK 榜

人工智能与大模型主题师资培训落地,飞桨持续赋能AI人才培养

飞桨PaddlePaddle

paddle 百度飞桨

IPP Swap孵化器系统开发之LP算力挖矿模型

薇電13242772558

智能合约 dapp开发

使用taro+canvas实现微信小程序的图片分享功能 | 京东云技术团队

京东科技开发者

taro 京东云 企业号 5 月 PK 榜

架构师日记-从代码到设计的性能优化指南 | 京东云技术团队

京东科技开发者

技术架构 京东云 企业号 5 月 PK 榜

开源赋能 普惠未来|百度寄语2023开放原子全球开源峰会

开放原子开源基金会

阿里蚂蚁金服4面面经(已拿Offer)附答案!突如其来的意外之喜

Java你猿哥

Java 算法 ssm 并发 面经

二面蚂蚁金服(交叉面),已拿Offer,Java岗定级阿里P6

Java你猿哥

Java ssm 并发 java面试 面经

美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

Java你猿哥

MySQL redis Spring Boot 并发编程 JVm虚拟机

Springboot 一行代码实现文件上传 20个平台!少写代码到极致

Java你猿哥

Java spring Spring Boot ssm

低代码赋能生物药企数字化

明道云

浅谈微服务中限流熔断降级的方法论

做梦都在改BUG

Java 微服务 限流 熔断降级

面试必备:四种经典限流算法讲解

做梦都在改BUG

Java 算法 限流

Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log、App、徽章、插画、头像场景生成,各种风格选择:科技风、运动风

汀丶人工智能

人工智能 AI绘画 MidJourney 文生图 prompt learning

宝武中南钢铁借助飞桨让钢筋超限监控有了“火眼金睛”

飞桨PaddlePaddle

百度飞桨 图像分割 PaddleSeg

阿里p8架构师耗时一年整理SpringBoot,从构建小系统到架构大系统

做梦都在改BUG

Java Spring Boot 框架

降低 Spark 计算成本 50.18 %,使用 Kyligence 湖仓引擎构建云原生大数据底座,为计算提速 2x

Kyligence

开源 数据分析

GPT大语言模型Vicuna本地化部署实践(效果秒杀Alpaca) | 京东云技术团队

京东科技开发者

AI 京东云 GPT 企业号 5 月 PK 榜

周家恩:GaussDB(for MySQL)云原生数据库技术演进和挑战

NineData

MySQL 数据库 GaussDB GaussDB(for MySQL) 华为自研数据库

OpenHarmony Docker移植实践

OpenHarmony开发者

OpenHarmony

OpenFeign 如何做到 "隔空取物" ?

Java你猿哥

Java Spring Cloud ssm netflix openfeign

开源赋能 普惠未来|TencentOS Tiny诚邀您参与2023开放原子全球开源峰会

开放原子开源基金会

阿里云微服务引擎 MSE 全新升级,实用能力更普惠,最高降幅 75%

阿里巴巴云原生

阿里云 云原生 微服务引擎

Midjourney|文心一格prompt教程[Text Prompt(下篇)]:游戏、实物、人物、风景、动漫、邮票、海报等生成,终极模板教学

汀丶人工智能

人工智能 AI绘画 MidJourney 文生图 prompt learning

“前端”工匠系列(二):合格的工匠,怎么做好价值落地 | 京东云技术团队

京东科技开发者

技术架构 京东云 企业号 5 月 PK 榜

用低代码开发平台高效打造仓储管理数字生态

力软低代码开发平台

阿里巴巴最新SpringCloudAlibaba学习笔记,全程通俗易懂,一套搞懂!

架构师之道

微服务

如何让技术架构师具有预知未来业务发展的能力? | 京东云技术团队

京东科技开发者

架构师 京东云 企业号 5 月 PK 榜

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