天天看点

数据工程指南高级技能:连接和缓冲器

在之前的文章中,我们介绍了数据工程的入门知识和基础技能,接下来继续探讨高级技能。

数据工程指南系列:

《数据工程指南:初学者入门》

《数据工程指南:基础技能》

《数据工程指南高级技能:如何选择数据平台》

《数据工程指南高级技能:Hadoop平台》

原文来源于Github开源项目《The Data Engineering Cookback》

作者:Andreas Kretz

感兴趣可以查看:Data Engineering Cookbook

连接

REST API

API:即应用程序接口(Application Programming Interface),是大数据平台的基石。

好平台都应该提供一个强大和稳定的API,我在这期播客中讨论了创建API的重要性。

Twitter API是一个非常好的参考,查看它们的文档:Twitter API

有效载荷压缩攻击(Payload Compression Attacks)

压缩炸弹(Zip Bombs):入门教程

如何用压缩炸弹保护你的服务器:入门教程

如何创建API

关于如何设计和创建API,参考下方教程:

  • Jersey入门
  • 用Java, Jersey和Spring实现REST API
  • Swagger入门教程
  • Jsersey和Swagger的区别
  • Spring框架
  • 什么时候使用Spring或Jersey

Apache Nifi

我认为Nifi是非常有潜力的工具,它简化了创建数据管道的流程。

假设你想从Rest API获取数据并发布到Kafka,然后从Kafka读取数据并存到数据库,Nifi可以实现这一点。

Nifi功能很强大,还可以在GUI界面进行操作。

参考教程:

  • 官方文档
  • Data in Motion

除Nifi外,还有很多工具可以帮助我们创建数据管道,比如:

  • Logstash
  • FluentD
  • Apache Flume
  • Sqoop
  • Azure IoTHub

缓冲器

为什么要使用缓冲器(即消息队列)?

缓冲器背后的思想是为传入的数据建立一个中间系统。

它的工作原理是,从数据源获取数据,发布到消息队列中,数据“缓存”在这里直到被其它程序消费。

如果没有缓冲区,直接将数据写入存储库可能会遇到问题,因为总会遇到一些数据峰值,导致系统宕机。

比如说,现在是午休时间,你的App的使用量突然大增,产生了更多的数据,以至于超过了系统的存储处理能力。

有了缓冲区,你就可以缓冲传入的数据,分析时再提取尽可能多的数据,这样就不会对整个系统构成巨大的性能压力。

缓冲区对于构建数据管道也非常有用。

例如你可以从kafka先取出数据,进行预处理再放回kafka,然后通过另一个程序将清洗后的数据取出并放入数据库。

常用工具包括:

  • Apache Kafka
  • Redis
  • AWS kinesis
  • Google Cloud PubSub

你们的点赞和收藏是我们最大的创作动力,我们每天都会为大家带来数据科学和量化交易领域的精品内容。

蜂鸟数据:开源金融数据接口,一个API连接世界金融市场。

蜂鸟数据团队由业界顶尖的数据工程师,数据科学家和宽客组成,我们正努力构建一个开源的金融数据库,并提供API接口,目标是令金融数据开源化和平民化。

浏览并测试我们接口吧,目前覆盖股票,外汇,商品期货,数字货币和宏观经济领域,包括实时报价(tick)和历史数据(分钟),提供REST API和Websocket两种接入方式,能够满足金融分析师,量化交易和理财app的需求。

蜂鸟数据API接口文档

登录蜂鸟官网,注册免费获取API密钥