“大數(shù)據(jù)”,這早已不是什么新概念,相關(guān)的產(chǎn)品和應(yīng)用相信大家已經(jīng)非常熟悉,甚至已經(jīng)在很多項(xiàng)目中獲得了實(shí)踐運(yùn)用。然而隨著云計(jì)算技術(shù)的快速發(fā)展和進(jìn)一步完善,“云”已經(jīng)從互聯(lián)網(wǎng)應(yīng)用上云的1.0時(shí)代逐漸演變成Cloud+AI+5G的2.0時(shí)代。伴隨著的是企業(yè)云化程度加深、核心業(yè)務(wù)上云,同時(shí)對(duì)于云計(jì)算1.0時(shí)代遺留問題的改造也都提上了日程。
現(xiàn)如今,各行各業(yè)都在加速數(shù)字化轉(zhuǎn)型,數(shù)據(jù)對(duì)企業(yè)的價(jià)值更是不言而喻了??扇绻麛?shù)據(jù)只保存不分析,那再多的數(shù)據(jù)也是徒勞,除了增加成本外毫無價(jià)值可言。數(shù)據(jù)要想有價(jià)值,就需要找到合適的、好的工具,把收集的數(shù)據(jù)有機(jī)結(jié)合起來做分析,從數(shù)據(jù)源頭跟蹤到最后有價(jià)值的輸出。這就好比天然礦場(chǎng)需要通過冶煉等工具和技術(shù)最終方能得到價(jià)值連城的稀有金屬一樣,不經(jīng)過這些提煉恐怕得到更多的是泥土。
隨著企業(yè)需求和技術(shù)環(huán)境的變化,數(shù)據(jù)平臺(tái)本身也在不斷演化和完善。我們看到了近幾年Hadoop大數(shù)據(jù)分析平臺(tái)的蓬勃發(fā)展,但是,隨著數(shù)據(jù)量越來越大,在數(shù)據(jù)中發(fā)現(xiàn)價(jià)值的要求越來越高,上一代大數(shù)據(jù)分析平臺(tái)已逐漸無法滿足企業(yè)數(shù)據(jù)分析需求。面對(duì)這種情況,以Spark為基礎(chǔ)的企業(yè)級(jí)統(tǒng)一數(shù)據(jù)分析平臺(tái)Databricks躍然而出,通過超高性能的大數(shù)據(jù)計(jì)算引擎、功能全面的數(shù)據(jù)存儲(chǔ)技術(shù),以及針對(duì)各種開發(fā)工具和運(yùn)行時(shí)的靈活支持,通過一個(gè)統(tǒng)一平臺(tái)滿足了不同行業(yè)組織在大數(shù)據(jù)處理和分析方面的各項(xiàng)需求。
微軟也在隨著技術(shù)社區(qū)的發(fā)展趨勢(shì),為用戶提供與時(shí)俱進(jìn)的數(shù)據(jù)平臺(tái)和分析解決方案,以靈活、完善的產(chǎn)品滿足用戶有關(guān)數(shù)據(jù)分析和洞察的全新需求。從早些年基于Hadoop技術(shù)提供的Azure HDInsight,到Apache Spark,再到最近基于Spark全新推出的Azure Databricks服務(wù),相關(guān)服務(wù)的不斷演化與革新通過全新功能與能力賦能企業(yè)更好地駕馭數(shù)據(jù)威力。
本次《Azure Databricks大數(shù)據(jù)構(gòu)建營(yíng)》系列文章,將主要圍繞Azure Databricks以及其他配套服務(wù),通過一系列實(shí)戰(zhàn)教程告訴大家如何基于Azure云打造完全運(yùn)行在云端的閉環(huán)大數(shù)據(jù)平臺(tái)。
內(nèi)容涵蓋:Azure Databricks的基礎(chǔ)知識(shí),以及如何借助Azure Databricks實(shí)現(xiàn)流計(jì)算(Structure Streaming)、批處理(Spark SQL)、安全訪問控制以及機(jī)器學(xué)習(xí)能力等。
本期,我們就一起來看看Azure Databricks是什么,都可以幫助我們些什么。
什么是Azure Databricks
目前在數(shù)據(jù)分析領(lǐng)域已經(jīng)出現(xiàn)了很多成熟的方案和技術(shù),如數(shù)據(jù)倉(cāng)庫(kù)Azure Synapse、Impala、Presto;數(shù)據(jù)計(jì)算框架Spark、Flink等。每項(xiàng)技術(shù)都有自己所擅長(zhǎng)解決的問題和場(chǎng)景,用戶完全可以根據(jù)實(shí)際需求靈活選擇。
而Azure云平臺(tái)上最新發(fā)布的Azure Databricks,是“一款基于純Spark技術(shù)棧的大數(shù)據(jù)解決方案”。Azure Databricks很早前已經(jīng)在全球版Azure中正式發(fā)布,最近剛剛開始在中國(guó)版Azure提供了預(yù)覽版服務(wù),暫時(shí)需要申請(qǐng)才能使用。
Azure Databricks是一種基于Apache Spark的分析平臺(tái),并針對(duì)Microsoft Azure云服務(wù)進(jìn)行了優(yōu)化。Databricks是由Spark原作者團(tuán)隊(duì)創(chuàng)辦的一家做Spark的商業(yè)化產(chǎn)品公司。微軟通過與其合作,將Databricks與Azure集成,借此提供一鍵式部署等簡(jiǎn)化工作,從而幫助用戶更專注于基于業(yè)務(wù)的數(shù)據(jù)分析或科學(xué)計(jì)算。
Azure Databricks和原生云服務(wù)產(chǎn)品的集成方式如下所示:
可見:Azure Databricks可以和很多Azure云服務(wù)集成,支持如Azure Blob、DataLake、CosmosDB、Synapse、Eventhub等作為其上下游服務(wù)進(jìn)行對(duì)接。通過Spark計(jì)算框架提供的流批計(jì)算技術(shù)進(jìn)行大數(shù)據(jù)計(jì)算,同時(shí)也可以集成機(jī)器學(xué)習(xí)來提取并探索數(shù)據(jù)中所包含的見解。
Azure Databricks按照層次結(jié)構(gòu)劃分由底而上大致分為:
Databricks IO:Databricks的I/O模塊,又稱DBIO,利用垂直集成堆棧顯著提高Spark在云上的性能。
Databricks Runtime:除原生Spark外,還提供其他組件來提高大數(shù)據(jù)分析的可用性、性能和安全性。
Databricks Workspace:工作區(qū)是可以提供訪問所有Azure Databricks資源的一組環(huán)境,包括Notebook、Libraries、Experiments等對(duì)象組織到文件夾中,并提供其對(duì)數(shù)據(jù)對(duì)象和計(jì)算資源的訪問權(quán)限。
Databricks Enterprise Security:Databricks企業(yè)安全(DBES)模塊添加了諸如靜態(tài)和動(dòng)態(tài)數(shù)據(jù)加密、細(xì)粒度數(shù)據(jù)訪問控制和審核等功能,以滿足標(biāo)準(zhǔn)合規(guī)性(如HIPAA、SOC2)和最嚴(yán)格的安全要求。
同時(shí),Azure Databricks也100%兼容Apache Spark提供的集群技術(shù)和功能,具體所包含的Spark組件如下圖所示:
Spark SQL:SparkSQL是用于處理結(jié)構(gòu)化數(shù)據(jù)的Spark模塊,基于Spark DataFrames分布式數(shù)據(jù)集合,可以把它在概念上理解為關(guān)系型數(shù)據(jù)庫(kù)中的表。
Streaming:實(shí)時(shí)數(shù)據(jù)處理和分析,適用于實(shí)時(shí)分析與交互式應(yīng)用程序以及構(gòu)建實(shí)時(shí)數(shù)倉(cāng),可與HDFS、Flume和Kafka等集成。
MLlib:由常見機(jī)器學(xué)習(xí)算法和工具(包括分類、回歸、篩選、維數(shù)約簡(jiǎn)以及底層優(yōu)化基元等)組成的機(jī)器學(xué)習(xí)庫(kù)。
GraphX:圖形和圖形計(jì)算,適用于從認(rèn)知分析到數(shù)據(jù)探索的廣泛用例。
Spark Core API:包含對(duì)R、SQL、Python、Scala和Java的支持。
Azure Databricks的架構(gòu)及特性
Azure Databricks是基于Apache Spark的快速、簡(jiǎn)單、協(xié)作型分析服務(wù),具體架構(gòu)如下圖所示:
Azure Databricks整體可分為控制平面(Control Plane)和數(shù)據(jù)平面(Data Plane)。其中控制平面由Azure托管,負(fù)責(zé)管理集群主節(jié)點(diǎn)、提交的任務(wù)調(diào)度、賬號(hào)權(quán)限等;數(shù)據(jù)平面交由用戶管理,可通過Databricks提供的接口來對(duì)集群進(jìn)行操作,常見的一般有UI、API、CLI。
具體來說,當(dāng)啟動(dòng)Azure Databricks集群時(shí),需要指定要使用的虛擬機(jī)類型和數(shù)量,同時(shí)部署出來集成VNet、NSG、存儲(chǔ)賬戶的托管資源組。部署完畢后,用戶就可以通過Azure Databricks UI來管理集群。所有元數(shù)據(jù)(如計(jì)劃作業(yè))都存儲(chǔ)在具有異地復(fù)制功能的Azure數(shù)據(jù)庫(kù)中。
值得一提的是,Azure Databricks和容器的集成也逐漸深度了起來,在創(chuàng)建集群時(shí)也可以指定容器鏡像,方便用戶打包自己的定制化鏡像從而進(jìn)行集成以及CI/CD的可能性。
總體上說,目前Databricks和Azure的集成基本上可提現(xiàn)為以下幾個(gè)方面:
虛擬機(jī)類型的多樣性:可集成所有現(xiàn)有虛擬機(jī)類型,例如CPU優(yōu)化的F系列、內(nèi)存優(yōu)化的E系列、通用的D系列等。
網(wǎng)絡(luò)拓?fù)涞撵`活性:提供Azure Databricks與VNET集成來滿足多樣化的基礎(chǔ)架構(gòu)網(wǎng)絡(luò)的訪問需求。
Azure存儲(chǔ)和數(shù)據(jù)湖集成:通過DBFS向Databricks公開,以提供對(duì)現(xiàn)有數(shù)據(jù)的緩存和優(yōu)化分析。
Azure Power BI:可使用JDBC將Power BI直接連接到Azure Databricks來進(jìn)行大規(guī)模交互方式查詢數(shù)據(jù)。
Azure AD:通過Azure AD來做集群的訪問控制和權(quán)限認(rèn)證。
Azure SQL數(shù)據(jù)倉(cāng)庫(kù)、Azure SQL DB和Azure Cosmos DB:可與Azure上其余數(shù)據(jù)服務(wù)進(jìn)行快速便捷地集成,方便用戶快速建立端到端的云上數(shù)據(jù)架構(gòu)。
有關(guān)Azure Databricks的簡(jiǎn)單介紹就是這些。如您希望進(jìn)一步了解該服務(wù),還請(qǐng)查閱官方文檔。后續(xù),我們將通過更多企業(yè)場(chǎng)景的最佳實(shí)踐分享,幫助大家更清楚了解Azure Databricks在大數(shù)據(jù)分析領(lǐng)域的強(qiáng)大能力。敬請(qǐng)期待!