本文屬于【Azure 架構師學習筆記】系列。
本文屬于【Azure Databricks】系列。
接上文 【Azure 架構師學習筆記】- Azure Databricks (12) – Medallion Architecture簡介
前言
上文已經介紹了關于Medallion的知識,本文開始用ADB 來實現, 但是基于內容較多,所以分為兩篇。
前面 【Azure 架構師學習筆記】- Azure Databricks (11) – UC搭建中已經創建了一個空白的ADB 并啟用了UC。
從下圖可以大概看出ADB 在Azure上的架構,這里有個大概了解即可:
接下來稍微介紹一下ADB 集群的一些重要選項,并創建一個集群。
- Access Mode:有下面3中模式,但是從解釋可以看出只有前兩種支持UC ,這里選擇默認的single即可。
, - Databricks Runtime:決定了Spark的版本,一般使用最新版即可。
- Worker Type:決定了節點所使用的VM 類型。
- Number Worker Nodes:節點隨壓力增減的幅度。
完成這部分配置之后,我們快速搭建一個ADLS Gen2 來作為medallion的存儲。這次使用Terraform來搭建,詳見【Azure 架構師學習筆記】- Terraform創建Azure 資源
為了滿足medallion 架構,在ADLS 上創建3個container分別為bronze, silever和gold,另外再加一個landing,用于提高可擴展性,最終的樣子為這樣:
至此,我們的ADB 一共有兩個ADLS,一個是用于metadata,另外一個則是上面的用于存儲業務數據的。
配置UC 與外部ADLS
為了讓ADB 能夠訪問這個新建的ADLS, 還需要把ADB 的connector授權到這個ADLS 上(外部)。同時還需要在UC中創建“External Locations”(內部)。
打通 ADB UC 與 ADLS
把前面創建的“Access Connector for Azure Databricks”授予“Storage Blob Data Contributor”到新建的ADLS 中。如果ADLS 根據業務需求限制網絡訪問,那么還可能需要把ADB 的private subnet和public subnet 在ADLS 中進行白名單。
配置External location
External location實際上就是databricks內部的對象在外部ADLS上的映射。
但是由于“external location”是需要一個storage credential,所以我們先點下面一個“create a credential”創建憑證:
其中Access Connetctor ID 可以從資源Access connector 處復制:
有了這個credential之后,ADB UC 就可以正式與ADLS 連接上了。
創建external location, 注意下面的格式
錯誤出現了,很明顯要授權:
檢查當前權限,確實沒有:
勾選報錯中提到的權限,在后續會出現很多權限不足的問題,你可以逐個添加,但是要記錄下來以便后續正式環境時減少錯誤。
按照這個方式,把前面所有的container都建好external location:
到此, 我們的基礎環境已經搭建好,接下來將開始UC 內部具體的配置。