在之前的文章中,我們介紹了資料工程的入門知識和基礎技能,接下來繼續探讨進階技能。
資料工程指南系列:
《資料工程指南:初學者入門》
《資料工程指南:基礎技能》
《資料工程指南進階技能:如何選擇資料平台》
《資料工程指南進階技能: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密鑰