Azure Databricks大數據構建營 小試牛刀,大數據常用的技術組件-ESG跨境

Azure Databricks大數據構建營 小試牛刀,大數據常用的技術組件

來源網絡
來源網絡
2022-04-29
點贊icon 0
查看icon 859

Azure Databricks大數據構建營 小試牛刀,大數據常用的技術組件Azure Databricks大數據構建營 小試牛刀看過美劇《絕命毒師》(Breaking Bad)的童鞋,恐怕都會對「老白」的化學知識和運用這些知識的能力留下深刻印象。畢竟,生活中一些常見的物品,通過對它們的成分進行一定組合往往能制造出......

Azure Databricks大數據構建營 小試牛刀,大數據常用的技術組件





Azure Databricks大數據構建營 小試牛刀

看過美劇《絕命毒師》(Breaking Bad)的童鞋,恐怕都會對「老白」的化學知識和運用這些知識的能力留下深刻印象。畢竟,生活中一些常見的物品,通過對它們的成分進行一定組合往往能制造出很「不一般」的東西。

所以接下來你面對了一個新需求,老板要你實現(xiàn)這樣的功能:一家連鎖藥店,希望通過抽樣的方式檢查止咳糖漿的銷量,如果發(fā)現(xiàn)有人一次性購買10瓶以上就進行實時告警。你準備怎么做?

基于Azure Databricks的流計算就可以輕松實現(xiàn)。一起來看看吧。

本次《Azure Databricks大數據構建營》系列文章,將主要圍繞Azure Databricks以及其他配套服務,通過一系列實戰(zhàn)教程告訴大家如何基于Azure云打造完全運行在云端的閉環(huán)大數據平臺。

內容涵蓋:Azure Databricks的基礎知識,以及如何借助Azure Databricks實現(xiàn)流計算(Structure Streaming)、批處理(Spark SQL)、安全訪問控制以及機器學習能力等。

本系列的第一篇文章概括介紹了有關Azure Databricks的基礎知識,錯過的童鞋可以點擊這里回看。而本篇,將帶領大家小試牛刀,基于Azure Databricks開發(fā)上文提到的那種實時告警系統(tǒng)。準備好,我們這就開始。

流計算架構說明

本篇涉及到的服務全都部署在中國區(qū)Azure上。根據模擬場景的描述,首先我們可以設計出如下所示的架構:

該解決方案將用到如下的產品和服務:

Azure虛擬機:作為數據源,扮演Producer生產者,通過Python代碼模擬客戶購買行為,生成示例數據并通過SDK發(fā)快遞數據到Azure EventHub。

Azure EventHub:消息隊列,做上下游生產者消費者服務的解耦,Entity ingestion負責接收Producer發(fā)快遞的數據,Entity alerting接收經過Databricks實時計算后的數據。

Azure Databricks:訂閱EventHub Entity ingestion作為數據源,通過Structure Streaming對數據進行實時處理后發(fā)快遞給Entity alerting。

Azure LogicApp:訂閱EventHub Entity alerting并做郵件實時告警。

完整過程中的數據流是這樣的:

1.Producer生產者發(fā)快遞數據

2.EventHub Entity ingestion(Ingestion實體)

3.Databricks Structured Streaming(流計算框架)

4.EventHub Entity alerting(Alerting實體)

5.Logic App

Azure Databrick Structure Streaming的實現(xiàn)

1.Terraform自動化部署

通過Terraform部署的服務組件包括Azure虛擬機、Azure Databricks、EventHub、Logic App,具體的tf文件和變量可參見這里。每項服務Terraform Azure Provider都由Resource支持,具體可參考官方文檔。部署完成后的資源清單如下圖所示,所有資源都部署在中國北二區(qū)域。

2.Producer代碼發(fā)布

模擬的生產者代碼通過虛擬機發(fā)布,通過調用Azure EventHub的SDK將消息寫入,具體代碼可見這里,幾個重要配置簡單說明下:

azure.eventhub:Azure EventHub SDK包,需要通過pip3 install azure.eventhub來指定安裝。

createbatch():通過該方法批量發(fā)快遞數據,本次示例以1條消息為1個批次發(fā)國際快遞EventHub Entity ingestion。

CONNECTIONSTR:Azure EventHub Endpoint,該連接字符串可以在門戶上Shared access policies的Connection string–primary key中查看。

EVENTHUBNAME:寫入的EventHub Entity Name。

3.Azure Databricks集群配置及Structure Streaming Notebook的集成

Azure Databricks的創(chuàng)建過程是:首先在Azure上創(chuàng)建一個Databricks實體,然后在此基礎上在實體內部創(chuàng)建Workspace以及Cluster,再提交Job。每個Databricks資源都有唯一的ID和Endpoint與之對應,以便能夠進行Restful API調用,集群通過Databricks門戶創(chuàng)建即可。

本示例將創(chuàng)建1個Driver和2個Worker,共計3個節(jié)點的Standard Cluster,Databricks版本為6.4(包含Apache Spark 2.4.5、Scala 2.11)。如果需要做機器學習相關計算,可啟用集成GPU/ML框架的版本,詳細說明見官方文檔,這里不做贅述。

集群狀態(tài)變?yōu)镽unning就意味著就緒可以使用了。不過在導入Python Notebook之前,需要通過Maven Central安裝com.microsoft.azure:azureeventhubsspark庫文件,以便安裝Spark連接Azure EventHub Connector,需要注意庫文件的版本要匹配。

Notebook可以直接在門戶里新建寫入,也可以在VS Code等IDE中編寫完之后發(fā)布。本文采用第二種模式,原因是IDE豐富的插件可以提高效率。具體的Notebook本文不做展示,放在這里,有需要的童鞋可以自行查看。通過import導入后,附上導入后的截圖并做幾點說明:

整個Notebook分為三個階段:

第一階段:從EventHub Entity ingestion讀取Producer寫入的數據,通過Streaming DataFrames的spark.readStream()創(chuàng)建。

第二階段:通過DataFrame豐富的函數做字段篩選,篩選出來我們需要的字段。

第三階段:回寫EventHub Entity alerting,通過Streaming DataFrames的spark.writeStream()流式寫入,注意利用Checkpoint方便任務終止再運行。

當Producer運行起來后,EventHub就會不斷有數據寫入,所以能看到Spark的Input Records圖像。對于每一個Job,都能看到對于該任務分配的資源和Spark參數配置項。

4.Logic APP配置郵件告警

經過Azure Databricks的數據篩選后,篩選出來的Messages都寫入了EventHub Entity alerting中,此時通過LogicApp來定義一個自動化的工作流來進行郵件告警。具體創(chuàng)建過程選擇Blank,然后自己創(chuàng)建Step即可,當然Azure門戶上的示例模板也可以用來參考,如下圖所示:

第一步訂閱EventHub Entity alerting,第二步集成Outlook郵件接口發(fā)快遞告警郵件。所以當目標消息被篩選出來之后,LogicApp就按照定義的郵件內容(本文是消息內容和時間戳)來發(fā)快遞郵件,發(fā)快遞郵件的截圖如下:

總結

總體上,一個通過消息隊列Azure EventHub以及Databricks做流計算處理的示例就完成了。

如果消息生產者Producer不斷產生消息,那么整個任務就會一直運行下去,當出現(xiàn)目標消息的時候就會不斷的持續(xù)告警。在Spark推出Structure Streaming后,也解決了Spark Streaming micro batch的局限性。

本文開頭提及的需求已經順利實現(xiàn)!

有關如何借助Azure Databricks實現(xiàn)流計算(Structure Streaming)的內容就是這些了。隨后的內容中,我們還將介紹如何實現(xiàn)批處理(Spark SQL)、安全訪問控制和機器學習能力。通過這些真實場景中的最佳實踐分享,也能幫助大家更清楚地認識到Azure Databricks的價值。敬請期待!


文章推薦
Facebook做廣告推廣還能這樣來1,facebook廣告推廣步驟與技巧
Google AD廣告教程Google Shopping邏輯,谷歌推廣怎么添加廣告系列
「Shopify」可以增加電子商務銷售的9個最佳比較購物引擎,中國賣家的shopify可以使用shop pay嗎
Google游戲峰會演講視頻——2020游戲增長三大挑戰(zhàn)及應對策略,2020google play app排名


特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發(fā)表后的30日內與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進群
美國賣家交流群
加入
美國賣家交流群
掃碼進群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
ESG獨家招商-PHH GROUP賣家交流群
加入
ESG獨家招商-PHH GROUP賣家交流群
掃碼進群
《TikTok官方運營干貨合集》
《TikTok綜合運營手冊》
《TikTok短視頻運營手冊》
《TikTok直播運營手冊》
《TikTok全球趨勢報告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺篇》
《開店大全-東南亞篇》
《CD平臺自注冊指南》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經理服務
運營實操指導
運營提效資源福利
平臺官方專屬優(yōu)惠
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機入駐更便捷

icon icon

返回頂部