Azure Databricks大數(shù)據(jù)構(gòu)建營 掐指一算,大數(shù)據(jù)常用的技術(shù)組件-ESG跨境

Azure Databricks大數(shù)據(jù)構(gòu)建營 掐指一算,大數(shù)據(jù)常用的技術(shù)組件

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-07-05
點贊icon 0
查看icon 709

Azure Databricks大數(shù)據(jù)構(gòu)建營 掐指一算,大數(shù)據(jù)常用的技術(shù)組件Azure Databricks大數(shù)據(jù)構(gòu)建營 掐指一算數(shù)據(jù)分析,這恐怕是任何大數(shù)據(jù)系統(tǒng)最核心的功能和目標,畢竟只有經(jīng)過妥善的分析并得出結(jié)論,才能從所積累的海量數(shù)據(jù)中獲得業(yè)務(wù)價值。那么,我們基于Azure Databricks構(gòu)建的大數(shù)據(jù)系統(tǒng)......

Azure Databricks大數(shù)據(jù)構(gòu)建營 掐指一算,大數(shù)據(jù)常用的技術(shù)組件




Azure Databricks大數(shù)據(jù)構(gòu)建營 掐指一算

數(shù)據(jù)分析,這恐怕是任何大數(shù)據(jù)系統(tǒng)最核心的功能和目標,畢竟只有經(jīng)過妥善的分析并得出結(jié)論,才能從所積累的海量數(shù)據(jù)中獲得業(yè)務(wù)價值。那么,我們基于Azure Databricks構(gòu)建的大數(shù)據(jù)系統(tǒng),除了像之前介紹過的那樣處理實時數(shù)據(jù)流之外,在海量離線數(shù)據(jù)的分析和計算方面,又具備哪些優(yōu)勢?本篇將帶領(lǐng)你見分曉。

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

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

本系列的第一篇文章概括介紹了有關(guān)Azure Databricks的基礎(chǔ)知識,錯過的童鞋可以點擊這里回看;第二篇文章介紹了如何基于Azure Databricks開發(fā)實時告警系統(tǒng),可以點擊這里回看。而本篇,主要將介紹如何對離線數(shù)據(jù)進行分析和計算,進而獲得業(yè)務(wù)所需的各類見解。

背景介紹

一般來說,離線數(shù)據(jù)的分析都會運行OLAP SQL查詢,因而下文將主要圍繞SparkSQL,一個可以通過Spark來進行SQL分析的可實時、可離線計算框架展開介紹。下文場景基于集成Azure Datalake Gen2并啟用Databricks Delta Lake作為外部存儲實現(xiàn)計算存儲分離,通過SparkSQL分析新冠肺炎實時統(tǒng)計數(shù)據(jù)。而相關(guān)資源依然會沿用之前兩篇文章的Demo所創(chuàng)建的資源組。

Delta Lake是一種可以提高數(shù)據(jù)湖可靠性的開源存儲層,由Databricks開發(fā)并開源。Delta Lake提供了ACID事務(wù)和可縮放的元數(shù)據(jù)處理,并可統(tǒng)一流處理和批數(shù)據(jù)處理。Delta Lake在現(xiàn)有Data Lake的頂層運行,并可與Apache Spark API完全兼容。

具體而言,Delta Lake提供了:

Spark上的ACID事務(wù):可序列化的隔離級別可避免讀者看到不一致的數(shù)據(jù)。

可縮放的元數(shù)據(jù)處理:利用Spark的分布式處理能力,輕松處理包含數(shù)十億文件的PB級表的所有元數(shù)據(jù)。

流式處理和批處理統(tǒng)一:Delta Lake中的表是批處理表,也是流式處理源和接收器。流式處理數(shù)據(jù)引入、批處理歷史回填、交互式查詢功能都是現(xiàn)成的。

架構(gòu)強制:自動處理架構(gòu)變體,以防在引入過程中插入錯誤的記錄。

按時間順序查看:數(shù)據(jù)版本控制支持回滾、完整的歷史審核線索和可重現(xiàn)的機器學(xué)習(xí)試驗。

更新插入和刪除:支持合并、更新和刪除操作,以啟用復(fù)雜用例,如更改數(shù)據(jù)捕獲、漸變維度(SCD)操作、流式處理更新插入等。

總的來說,Delta Lake不僅能在需要事務(wù)符合ACID特性的場景提供支持,還針對性能也做了相當大的代碼優(yōu)化,本文的實現(xiàn)也是基于Delta Lake,需要注意數(shù)據(jù)格式需要轉(zhuǎn)換成delta。

正常情況下,Azure Datalake Gen2與Delta Lake的集成需要在Spark中增加配置項spark.delta.logStore.class=org.apache.spark.sql.delta.storage.AzureLogStore,并且集群需要在lib庫中支持hadoopazuredatalake/hadoopazure/wildflyopenssl JAR,具體過程可以見這里。所以這時PaaS的優(yōu)勢就顯示出來了:Azure Databricks在集群創(chuàng)建好的同時就已經(jīng)在集群上啟用了該庫,直接調(diào)用即可。Azure Datalake Gen2的創(chuàng)建過程本文不再贅述,具體見官方文檔。

本文將介紹兩種常見的集成方式,如下圖所示,并做幾點說明:

cmd2:非掛載方式

cmd2中通過Scala代碼演示Azure Databricks集成Azure Datalake Gen2的認證配置項,通過創(chuàng)建擁有IAM角色「Storage Blob Data Contributor」的服務(wù)主體來做認證,驗證通過后就可直接調(diào)用Datalake里的文件了,注意相關(guān)變量需要替換。

cmd3:掛載方式

cmd3中通過Python代碼演示Azure Databricks如何掛載Azure Datalake Gen2,身份驗證過程和cmd2的方式一樣。這種方式的好處是直接可以把遠端的Azure Datalake掛載到Azure Databricks上,就好像在使用本地磁盤一樣使用Datalake,本文更推薦并且采用該模式,同時注意相關(guān)變量需要替換。

另外,本文的環(huán)境位于Azure中國區(qū),所以相關(guān)域名都是https://login.partner.microsoftonline.cn,如果位于全球Azure中,那么相關(guān)域名將會是https://login.microsoftonline.com。

其實從最佳實踐角度來說,本文并不是實現(xiàn)的最好方式,因為在Notebook里的認證信息全部都是明文出現(xiàn)。最好的方式應(yīng)該集成Azure密鑰保管庫來隱藏密碼,該方式不再本文贅述,有興趣的同學(xué)自行研究吧,附上鏈接供參考。

引入數(shù)據(jù)源并運行SparkSQL

前面提到,本文所采用的示例數(shù)據(jù)是和新冠肺炎實時統(tǒng)計數(shù)據(jù)相關(guān),講到這里有必要介紹一個微軟提供的開放數(shù)據(jù)集Repo,其中包含各種場景下的csv/json/parquet格式的原始和脫敏數(shù)據(jù),本文所用的新冠肺炎數(shù)據(jù)也是在這里獲取的。

選擇CSV格式數(shù)據(jù)作為數(shù)據(jù)源,下載好之后上傳到Azure DataLake,在Container data下面再創(chuàng)建一個Source文件夾作為存放原始數(shù)據(jù)的目錄徑。

原始數(shù)據(jù)確定好之后,就可以通過Notebook來做SparkSQL分析了。本文用到的示例Notebook已經(jīng)上傳到了這里,幾個重要配置簡單說明下:

COVIDDF:COVIDDF為定義的DataFrame,通過spark.read.format(“csv”)格式并指定掛載路徑引入數(shù)據(jù);

COVIDDF.write.mode(“append”).format(“delta”):通過Append追加方式寫入目標表中,注意這里的格式delta,也就是前面提到的需要做格式轉(zhuǎn)換,寫入的表也需要指定路徑,并會在Azure Dalalake中生成相應(yīng)的文件;

ChinaCOVID及ChinaCOVID1:經(jīng)過上面的建表過程后就可以運行SparkSQL來做SQL查詢了。

總結(jié)

一個通過集成Azure Datalake Gen2作為外部存儲并采用Delta Lake格式進行SparkSQL分析的示例就完成了,本文基本上使用了PySpark來實現(xiàn),其實除此之外通過SQL或者Scala也是一樣可以實現(xiàn)的,有興趣的同學(xué)可以自己再深入研究下吧。

有關(guān)如何通過SparkSQL實現(xiàn)數(shù)據(jù)的離線分析和計算,就是這樣了。隨后的內(nèi)容中,我們還將繼續(xù)介紹如何實現(xiàn)安全訪問控制和機器學(xué)習(xí)能力。通過這些真實場景中的最佳實踐分享,也能幫助大家更清楚地認識到Azure Databricks的價值。敬請期待!


文章推薦
AppLovin告訴你如何在合成類游戲脫穎而出,游戲介紹帶你快速了解游戲新玩法
ASO、ASM、SEO、SEM是什么
Google AdWords和Google SEO,谷歌平臺seo
AWS的工程師如何開發(fā)和維護他們的內(nèi)部技術(shù),aws內(nèi)部如何研發(fā)


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

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

平臺顧問

平臺顧問 平臺顧問

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

icon icon

小程序

微信小程序

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

icon icon

返回頂部