什么是Azure Databricks?
Azure Databricks是一個(gè)完全托管的、基于云的大數(shù)據(jù)分析和機(jī)器學(xué)習(xí)平臺(tái),通過簡化搭建企業(yè)級(jí)生產(chǎn)環(huán)境數(shù)據(jù)應(yīng)用程序的流程,使開發(fā)人員能夠加速導(dǎo)入數(shù)據(jù)智能和應(yīng)用創(chuàng)新。Azure Databricks是由Apache Spark的創(chuàng)始團(tuán)隊(duì)和微軟共同打造的,它為數(shù)據(jù)科學(xué)和數(shù)據(jù)工程團(tuán)隊(duì)提供了一個(gè)用于大數(shù)據(jù)處理和機(jī)器學(xué)習(xí)的統(tǒng)一平臺(tái)。
通過將Databricks的強(qiáng)大功能與微軟Azure平臺(tái)的企業(yè)級(jí)和安全性相結(jié)合,Azure Databricks簡化了大規(guī)模Spark工作負(fù)載的運(yùn)營。Databricks是一款端到端的、可管理的、針對(duì)云優(yōu)化的Apache Spark平臺(tái)。Azure Databricks提供了一個(gè)交互式工作區(qū),支撐數(shù)據(jù)工程師、數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)工程師之間的協(xié)作。Azure Databricks系統(tǒng)架構(gòu)如下圖所示:
Azure Databricks中的Spark生態(tài)
Azure Databricks包含完整的開源Apache Spark群集技術(shù)和功能。Azure Databricks中的Spark包括以下組件:
·Spark SQL和DataFrames:Spark SQL是用于處理結(jié)構(gòu)化數(shù)據(jù)的Spark模塊。DataFrames是基于列存儲(chǔ)的分布式數(shù)據(jù)集合。它在概念上相當(dāng)于關(guān)系型數(shù)據(jù)庫中的表,或R/Python中的DataFrames。
·流式處理(Streaming):實(shí)時(shí)數(shù)據(jù)處理和分析,適用于分析與交互式應(yīng)用程序??梢耘cHDFS、Flume和Kafka集成。
·MLlib:由常見學(xué)習(xí)算法和實(shí)用工具(包括分類、回歸、群集、協(xié)作篩選、維數(shù)約簡以及底層優(yōu)化基元)組成的機(jī)器學(xué)習(xí)庫。
·GraphX:圖形和圖形計(jì)算,適用于從認(rèn)知分析到數(shù)據(jù)探索的廣泛用例。
·Spark Core API:包含對(duì)R、SQL、Python、Scala和Java的支持。
將Azure Databricks應(yīng)用于企業(yè)的關(guān)鍵能力解讀
Azure Databricks的架構(gòu)可以保證跨功能團(tuán)隊(duì)的安全協(xié)作,同時(shí)保留由Azure Databricks管理的大量后端服務(wù),這樣使用者就可以專注于數(shù)據(jù)科學(xué)、數(shù)據(jù)分析和數(shù)據(jù)工程任務(wù)。
盡管架構(gòu)可能因自定義配置而有所不同(例如,當(dāng)Azure Databricks工作區(qū)部署到自己的虛擬網(wǎng)絡(luò)時(shí),也稱為VNet注入),下面的架構(gòu)圖表示了Azure Databricks最常見的結(jié)構(gòu)和數(shù)據(jù)流。
Azure Databricks企業(yè)級(jí)數(shù)據(jù)安全設(shè)計(jì)
控制平面包括Azure Databricks在其自身的Azure帳戶中管理的后端服務(wù)。用戶運(yùn)行的任何命令都將存在于控制平面中,而用戶的代碼將完全加密。保存的命令駐留在數(shù)據(jù)平面中。
數(shù)據(jù)平面由用戶的Azure帳戶管理,它是用戶數(shù)據(jù)駐留的地方。這也是處理數(shù)據(jù)的地方。此圖假設(shè)數(shù)據(jù)已經(jīng)被攝入到Azure數(shù)據(jù)庫中,但是用戶可以從外部數(shù)據(jù)源攝入數(shù)據(jù),例如事件(Event)數(shù)據(jù)、流(Streaming)數(shù)據(jù)、物聯(lián)網(wǎng)(IoT)數(shù)據(jù)等等。用戶也可以使用Azure Databricks連接器連接到Azure帳戶之外的外部數(shù)據(jù)源進(jìn)行存儲(chǔ)。
用戶的數(shù)據(jù)總是駐留在數(shù)據(jù)平面的Azure帳戶中,而不是控制平面,因此用戶總是保持對(duì)數(shù)據(jù)的完全控制和所有權(quán),而不需要鎖定。
Azure Databricks典型數(shù)據(jù)分析應(yīng)用場景
在微軟云Azure中進(jìn)行大數(shù)據(jù)分析時(shí),原始或結(jié)構(gòu)化的數(shù)據(jù)將通過Azure數(shù)據(jù)工廠以批量的形式引入Azure,或者通過Apache Kafka、事件中心(Event Hub)或IoT中心進(jìn)行準(zhǔn)實(shí)時(shí)的流式傳輸。這些數(shù)據(jù)攝入模式將數(shù)據(jù)將駐留在數(shù)據(jù)湖(Data Lake)的各種存儲(chǔ)位置中。在運(yùn)行分析工作流時(shí),用戶可以使用Azure Databricks從數(shù)據(jù)湖的各種數(shù)據(jù)源讀取數(shù)據(jù),并使用Spark將數(shù)據(jù)進(jìn)行處理,再將之放入Azure Cosmos DB,Azure SQL,Azure DB for MySQL或Azure SQL數(shù)據(jù)倉庫等服務(wù)中,以便于被下游各種數(shù)據(jù)消費(fèi)者消費(fèi)。參考架構(gòu)如下圖所示。
Azure Databricks能力清單
Azure Databricks擁有一個(gè)安全的云上高可用生產(chǎn)環(huán)境,由Spark專家進(jìn)行管理和提供支持。用戶可以:
·在幾秒鐘內(nèi)創(chuàng)建群集。
·動(dòng)態(tài)自動(dòng)擴(kuò)展和縮減群集并在團(tuán)隊(duì)中共享群集。
·通過調(diào)用REST API以編程方式使用群集。
·使用基于Spark的安全數(shù)據(jù)集成功能,在不用集中化的情況下統(tǒng)一數(shù)據(jù)。
·及時(shí)獲得每個(gè)版本中的最新Apache Spark功能。
Azure Databricks工作區(qū)(Workspace)
構(gòu)建在完整的Spark功能基礎(chǔ)之上,提供一個(gè)完全托管的云平臺(tái),其中包括:
·完全托管的Spark群集
·用于探索和可視化的交互式工作區(qū)
·一個(gè)為現(xiàn)有的Spark應(yīng)用程序提供支持的平臺(tái)
Databricks運(yùn)行時(shí)(Runtime)
·Azure Databricks運(yùn)行時(shí)構(gòu)建在Apache Spark的基礎(chǔ)之上,是Spark創(chuàng)始團(tuán)隊(duì)專門針對(duì)Azure云以原生方式構(gòu)建和優(yōu)化的的。
·Azure Databricks通過高度抽象化徹底消除了基礎(chǔ)結(jié)構(gòu)復(fù)雜性,無需專業(yè)知識(shí)就能設(shè)置和配置大數(shù)據(jù)分析基礎(chǔ)設(shè)施。
·對(duì)于性能敏感的生產(chǎn)作業(yè)而言,Azure Databricks通過I/O層和處理層(Databricks I/O)的各種優(yōu)化提供了一個(gè)優(yōu)于開源版本20-50倍的Spark引擎。
云上大數(shù)據(jù)協(xié)同分析
·通過協(xié)作和集成式環(huán)境,Azure Databricks簡化了在Spark中瀏覽數(shù)據(jù)、制作原型和運(yùn)行數(shù)據(jù)驅(qū)動(dòng)型應(yīng)用程序的過程。
·通過簡單的數(shù)據(jù)瀏覽確定如何使用數(shù)據(jù)。
·在以R、Python、Scala或SQL編寫的筆記本中記錄進(jìn)度。
·幾步內(nèi)即可實(shí)現(xiàn)數(shù)據(jù)可視化,可以使用熟悉的工具,例如Matplotlib、ggplot或d3。
·使用交互式儀表板創(chuàng)建動(dòng)態(tài)報(bào)告。
·在使用Spark的同時(shí)與數(shù)據(jù)交互。
參考:
https://docs.microsoft.com/zh-cn/azure/databricks/getting-started/overview
https://docs.microsoft.com/zh-cn/azure/databricks/scenarios/what-is-azure-databricks-ws
https://docs.microsoft.com/zh-cn/azure/databricks/scenarios/what-is-azure-databricks