自動載入器可以從使用 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"))