使用外部系統存取 Databricks 數據
本文提供 Azure Databricks 管理及控管數據供其他系統使用的功能概覽和建議。
這些模式著重於組織需要將受信任的工具或系統整合到 Azure Databricks 數據的案例。 如果您要尋找在組織外部共享數據的指引,請參閱 與其他組織中使用者安全地共享數據和 AI 資產。
Azure Databricks 支援哪些外部存取?
Azure Databricks 建議使用 Unity 目錄來管理所有數據資產。
下表提供 Unity Catalog 物件支援格式和存取模式的概觀。
Unity Catalog 物件 | 支援的格式 | 存取模式 |
---|---|---|
受控數據表 | 達美湖,冰山 | 憑證發行、Iceberg REST 目錄、Delta 共用 |
外部數據表 | Delta Lake | 認證販賣、Iceberg REST 目錄、Delta 共用、雲端 URI |
外部數據表 | CSV、JSON、Avro、Parquet、ORC、text | 雲端 URI |
外部磁碟區 | 所有數據類型 | 雲端 URI |
注意
Iceberg 支援描述使用 Delta Lake 但已啟用 Iceberg 讀取 (UniForm) 的 Azure Databricks 所撰寫的數據表。
如需這些 Unity 目錄物件的詳細資訊,請參閱下列各項:
Unity 目錄認證自動販賣
Unity Catalog 認證分發允許使用者配置外部客戶端,繼承 Azure Databricks 管控的資料的權限。 如需外部系統存取權憑證,請參閱 Unity Catalog 。
使用 Iceberg 用戶端讀取數據表
Azure Databricks 為 Iceberg 用戶端提供註冊至 Unity 目錄之數據表的唯讀支援。 支援的用戶端包括 Apache Spark、Apache Flink、Trino 和 Snowflake。 請參閱 從 Iceberg 用戶端讀取 Databricks 數據表。
跨網域共用唯讀數據表
您可以使用 Delta Sharing,允許跨網域和支持的系統對管理的或外部的 Delta 表進行唯讀存取。 支援差異共享數據表零複製讀取的軟體系統包括 SAP、Amperity 和 Oracle。 請參閱 與其他組織中使用者安全地共享資料和 AI 資產。
注意
您也可以使用 Delta Sharing 將唯讀存取權授與客戶或合作夥伴。 Delta Sharing 也支持使用 Databricks Marketplace分享數據。
讀取和寫入外部 Delta 數據表
您可以使用雲端物件記憶體 URI 和認證,從外部 Delta Lake 讀取器和寫入器用戶端存取 Delta Lake 所支援的 Unity 目錄外部數據表。
Unity 目錄不會控管直接從外部系統針對雲端物件記憶體執行的讀取和寫入,因此您必須在雲端帳戶中設定其他原則和認證,以確保數據控管原則會受到 Azure Databricks 外部的尊重。
注意
Azure Databricks 文件會根據 Databricks Runtime 版本和平台功能列出限制和相容性考量。 您必須確認客戶端支援的讀取器和寫入器通訊協議和資料表功能。 請參閱 delta.io。
使用外部數據表存取非 Delta Lake 表格式數據
Unity 目錄外部數據表支援 Delta Lake 以外的許多格式,包括 Parquet、ORC、CSV 和 JSON。 外部數據表會將所有資料檔儲存在數據表建立期間提供的雲端 URI 所指定的雲端物件儲存位置目錄中。 其他系統會直接從雲端物件記憶體存取這些數據檔。
Unity 目錄不會控管直接從外部系統針對雲端物件記憶體執行的讀取和寫入,因此您必須在雲端帳戶中設定其他原則和認證,以確保數據控管原則會受到 Azure Databricks 外部的尊重。
從多個系統讀取和寫入外部數據表可能會導致一致性問題和數據損毀,因為 Delta Lake 以外的格式沒有提供交易保證。
Unity Catalog 可能無法識別寫入以非 Delta Lake 格式支援的外部表的新分割區。 Databricks 建議定期執行 MSCK REPAIR TABLE table_name
,以確保 Unity 目錄已註冊外部系統寫入的所有數據檔。
使用外部磁碟區存取非表格式數據
Databricks 建議除了 Azure Databricks 之外,還使用外部磁碟區來儲存由外部系統讀取或寫入的非表格式數據檔。 請參閱 什麼是 Unity 目錄磁碟區?。
Unity 目錄不會控管直接從外部系統針對雲端物件記憶體執行的讀取和寫入,因此您必須在雲端帳戶中設定其他原則和認證,以確保數據控管原則會受到 Azure Databricks 外部的尊重。
磁碟區提供 API、SDK 和其他工具來從磁碟區中取得檔案,並將檔案放入磁碟區。 請參閱 管理磁碟區中的檔案。
注意
Delta Sharing 可讓您將磁碟區共享至其他 Azure Databricks 帳戶,但不會與外部系統整合。