Azure Databricks 中的資料庫物件
Azure Databricks 使用兩個主要安全性實體對象來儲存和存取數據。
- 數據表 會控管表格式數據的存取權。
- 磁碟區 會控管對非表格式數據的存取。
本文說明這些資料庫物件如何與 Azure Databricks 中的目錄、架構、檢視和其他資料庫物件產生關聯。 本文也提供資料庫物件如何在整體平台架構內容中運作的高階簡介。
什麼是 Azure Databricks 中的資料庫物件?
資料庫物件是可協助您組織、存取及控管數據的實體。 Azure Databricks 使用三層階層來組織資料庫物件:
- 目錄:最上層容器包含架構。 請參閱什麼是 Azure Databricks 中的目錄?。
- 架構 或資料庫:包含數據物件。 請參閱 什麼是 Azure Databricks 中的架構?。
- 可包含在架構中的數據物件:
- 磁碟區:雲端物件記憶體中非表格式數據的邏輯磁碟區。 請參閱Unity Catalog 磁碟區是什麼?。
- 數據表:數據列和數據行所組織的數據收集。 請參閱 什麼是數據表和檢視?。
- 檢視:針對一或多個數據表儲存的查詢。 請參閱 什麼是檢視?。
- 函式:會傳回純量值或數據列集的已儲存邏輯。 請參閱 Unity 目錄中的使用者定義函式 (UDF)。
- 模型:使用 MLflow 封裝的機器學習模型。 請參閱在 Unity 目錄中管理模型生命週期。
目錄會在帳戶層級管理的中繼存放區中註冊。 只有系統管理員直接與中繼存放區互動。 請參閱 中繼存放區。
Azure Databricks 提供其他資產來處理數據,其中所有資產都可以使用工作區層級訪問控制或 Unity 目錄,Databricks 數據控管解決方案:
- 工作區層級的數據資產,例如筆記本、作業和查詢。
- Unity 目錄安全性實體物件,例如記憶體認證和差異共用,主要控制記憶體或安全共用的存取。
如需詳細資訊,請參閱 資料庫物件與工作區安全性實體數據資產 和 Unity 目錄安全性實體認證和基礎結構。
使用 Unity 目錄管理資料庫物件的存取權
您可以在階層中的任何層級授與和撤銷資料庫物件的存取權,包括中繼存放區本身。 除非撤銷存取權,否則物件的存取權會隱含地授與該物件的所有子系相同的存取權。
您可以使用一般 ANSI SQL 命令來授與和撤銷 Unity 目錄中物件的存取權。 您也可以使用目錄總管來管理資料物件許可權的 UI 驅動。
如需在 Unity 目錄中保護物件的詳細資訊,請參閱 Unity 目錄中的安全性實體物件。
Unity 目錄中的預設物件許可權
根據您的工作區建立和啟用 Unity 目錄的方式,您的使用者可能會有自動布建目錄的默認許可權,包括 main
目錄或 工作區目錄 (<workspace-name>
)。 如需詳細資訊,請參閱 預設用戶許可權。
如果您的工作區已手動啟用 Unity 目錄,它就會在目錄中包含名為 default
main
的預設架構,可供工作區中的所有使用者存取。 如果您的工作區自動啟用 Unity 目錄並包含目錄,該目錄會包含 <workspace-name>
名為 default
的架構,可供工作區中的所有使用者存取。
資料庫物件與工作區安全性實體數據資產
Azure Databricks 可讓您與資料庫物件一起管理多個數據工程、分析、ML 和 AI 資產。 您不會在 Unity 目錄中註冊這些數據資產。 相反地,這些資產是在工作區層級管理,使用控制清單來管理許可權。 這些數據資產包括下列各項:
- Notebooks
- 儀表板
- 工作
- 管線
- 工作區檔案
- SQL 查詢
- 實驗
大部分的數據資產都包含與資料庫物件互動的邏輯,以查詢數據、使用函式、註冊模型或其他常見工作。 若要深入了解保護工作區數據資產,請參閱 訪問控制清單。
注意
存取計算是由訪問控制清單所控管。 您可以使用存取模式設定計算,並新增額外的雲端許可權,以控制使用者存取數據的方式。 Databricks 建議使用計算原則,並將叢集建立許可權限限為數據控管最佳做法。 請參閱存取模式。
Unity 目錄安全性實體認證和基礎結構
Unity 目錄會使用在中繼存放區層級註冊的安全性實體物件來管理雲端物件記憶體、數據共享和查詢同盟的存取權。 以下是這些非數據安全性實體對象的簡短描述。
將 Unity 目錄連線到雲端物件記憶體
您必須定義記憶體認證和外部位置,才能建立新的受控儲存位置,或註冊外部數據表或外部磁碟區。 這些安全性實體物件會在 Unity 目錄中註冊:
- 記憶體認證:提供雲端記憶體存取權的長期雲端認證。
- 外部位置:使用配對記憶體認證存取的雲端物件記憶體路徑參考。
請參閱 使用 Unity 目錄連線到雲端物件記憶體和服務。
Delta Sharing
Azure Databricks 會在 Unity 目錄中註冊下列 Delta Sharing 安全性實體物件:
- 共享:數據表、磁碟區和其他數據資產的唯讀集合。
- 提供者:共用數據的組織或實體。 在 Databricks 對 Databricks 共用模型中,提供者會在收件者的 Unity 目錄中繼存放區中註冊為其中繼存放區標識碼所識別的唯一實體。
- 收件者:從提供者接收共享的實體。 在 Databricks 對 Databricks 共用模型中,收件者會以其唯一的中繼存放區標識符來識別給提供者。
Lakehouse 同盟
Lakehouse 同盟可讓您建立外部目錄,以提供位於 PostgreSQL、MySQL 和 Snowflake 等其他系統中數據的只讀存取權。 您必須定義與外部系統的連線,才能建立外部目錄。
線上:Unity 目錄安全性實體物件會指定路徑和認證,以存取 Lakehouse 同盟案例中的外部資料庫系統。
請參閱 什麼是 Lakehouse 同盟?。
受控磁碟區和數據表的受控儲存位置
當您建立數據表和磁碟區 Azure Databricks 時,您可以選擇將其 設定為受控 或 外部。 Unity 目錄會管理從 Azure Databricks 存取外部數據表和磁碟區,但不會控制基礎檔案或完全管理這些檔案的儲存位置。 另一方面,受控數據表和磁碟區完全由 Unity 目錄管理,並儲存在 與包含架構相關聯的受控儲存位置 。 請參閱 在 Unity 目錄中指定受控儲存位置。
Databricks 建議針對大部分工作負載使用受控磁碟區和受控數據表,因為它們可簡化設定、優化和治理。
Unity 目錄與舊版 Hive 中繼存放區
Databricks 建議使用 Unity 目錄來註冊和管理所有資料庫物件,但也為 Hive 中繼存放區提供舊版支援來管理架構、數據表、檢視和函式。
如果您要與使用Hive中繼存放區註冊的資料庫物件互動,請參閱 舊版Hive中繼存放區中的資料庫物件。