共用方式為


搭配 Unity 目錄使用自動載入器

自動載入器可以從使用 Unity 目錄設定的外部位置安全地內嵌資料。 若要深入瞭解使用 Unity 目錄安全地連接記憶體,請參閱 使用 Unity 目錄連線到雲端物件記憶體。 自動載入器依賴結構化串流來進行累加處理;如需建議和限制,請參閱 使用 Unity 目錄搭配結構化串流

注意

在 Databricks Runtime 11.3 LTS 和更新版本中,您可以使用自動載入器搭配標準或專用存取模式(先前共用和單一使用者存取模式)。

預設支援目錄清單模式。 只有使用專用存取模式的計算才支援檔案通知模式。

使用自動載入器從 Unity 目錄管理的外部位置擷取數據

您可以使用自動載入器,從 Unity 目錄所管理的任何外部位置內嵌資料。 您必須具有外部位置READ FILES 的權限。

注意

Azure Data Lake Storage 是唯一 Unity 目錄支援的 Azure 記憶體類型。

指定 Unity Catalog 中 Auto Loader 資源的位置

Unity 目錄安全性模型假設工作負載中參考的所有儲存位置都會由 Unity 目錄管理。 Databricks 建議一律將檢查點和架構演進資訊儲存在 Unity 目錄所管理的記憶體位置。 Unity Catalog 不允許您在數據表目錄下將檢查點或結構推斷和演化檔案嵌套。

範例

下列範例假設執行中的使用者具有目標數據表的擁有者許可權,以及下列設定和授與:

儲存位置 授予
abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data 讀取檔案
abfss://dev-bucket@<storage-account>.dfs.core.windows.net 讀取檔案、寫入檔案、CREATE TABLE

使用 Auto Loader 將資料載入到 Unity Catalog 管理的表格

checkpoint_path = "abfss://dev-bucket@<storage-account>.dfs.core.windows.net/_checkpoint/dev_table"

(spark.readStream
  .format("cloudFiles")
  .option("cloudFiles.format", "json")
  .option("cloudFiles.schemaLocation", checkpoint_path)
  .load("abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data")
  .writeStream
  .option("checkpointLocation", checkpoint_path)
  .trigger(availableNow=True)
  .toTable("dev_catalog.dev_database.dev_table"))