在之前的文章中,我们介绍了数据工程的入门知识和基础技能,接下来继续探讨高级技能。
数据工程指南系列:
《数据工程指南:初学者入门》
《数据工程指南:基础技能》
《数据工程指南高级技能:如何选择数据平台》
《数据工程指南高级技能: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密钥