什麼是自動載入器?
當新資料檔案到達雲雲端儲存體時,自動載入器會以增量方式有效率地處理新資料檔案,無需任何額外設定。
自動載入器如何運作?
自動載入器可在新資料檔案抵達雲端儲存時,逐步有效地進行處理。 它提供名為 cloudFiles
的結構化串流來源。 在雲端檔案記憶體上指定輸入目錄路徑, cloudFiles
來源會在新檔案送達時自動處理新檔案,並可選擇同時處理該目錄中的現有檔案。 自動載入器同時支援 DLT 中的 Python 和 SQL。
您可以使用自動載入器來處理數十億個檔案,以移轉或回填數據表。 Auto Loader 可調整以支援每小時接近於即時擷取數百萬個檔案。
支援的自動載入器來源
自動載入器可以從下列來源載入資料檔:
Amazon S3 (
s3://
)Azure Data Lake Storage Gen2 (ADLS Gen2,
abfss://
)Google Cloud Storage (GCS,
gs://
)Azure Blob 儲存體(
wasbs://
)注意
舊版 Windows Azure 儲存體 Blob 驅動程式 (WASB) 已被取代。 ABFS 對 WASB 有許多好處。 請參閱 ABFS 上的 Azure 文件。 如需使用舊版 WASB 驅動程式的文件,請參閱使用 WASB 連線到 Azure Blob 儲存體 (舊版)。
ADLS Gen1 (
adl://
)注意
Azure 已宣布即將淘汰 Azure Data Lake Storage Gen1。 Databricks 建議將所有數據從 Azure Data Lake Storage Gen1 遷移至 Azure Data Lake Storage Gen2。 如果您尚未移轉,請參閱從 Azure Databricks 存取 Azure Data Lake Storage Gen1。
Databricks 檔案系統 (DBFS,
dbfs:/
)。
自動載入器可以匯入JSON
、CSV
、XML
、PARQUET
、AVRO
、ORC
、TEXT
和BINARYFILE
檔案格式。
自動載入器如何追蹤擷取進度?
當檔案被發現時,它們的元數據會儲存在位於自動載入器管線檢查點位置的可擴展鍵值存放區(RocksDB)中。 此索引鍵/值存放區可確保資料恰好處理一次。
如果發生故障,自動載入器可以利用儲存在檢查點位置的信息來恢復執行,並在將數據寫入 Delta Lake 時繼續提供精確一次的保證。 您不需要自行維護或管理任何狀態,即可達成容錯或精確一次的語意。
使用自動載入工具與 DLT 進行增量擷取
Databricks 建議 DLT 中的自動載入器進行累加式數據擷取。 DLT 擴展 Apache Spark 結構化串流中的功能,並可讓您只需撰寫幾行宣告式 Python 或 SQL,即可使用以下專案來部署生產級的數據管線:
您不需要提供架構或檢查點位置,因為 DLT 會自動管理管線的這些設定。 請參閱 使用 DLT 載入資料。
每當您使用 Apache Spark 結構化串流從雲端物件記憶體擷取數據時,Databricks 也會建議自動載入器。 API 可在 Python 和 Scala 中使用。
開始使用 Databricks 自動載入器
請參閱下列文章,以開始使用自動載入器搭配 DLT 來設定累加式數據擷取:
- 教學課程:使用範例數據在 Databricks 上執行您的第一個 ETL 工作負載(Python、SQL 筆記本)
- 使用自動載入器將資料從雲端物件記憶體載入串流資料表(Notebook:Python、SQL)
範例:常見的自動載入器模式
如需常見自動載入器模式的範例,請參閱 常見的數據載入模式。
設定自動載入器選項
您可以根據數據量、多樣性和速度調整自動載入器。
如需自動載入器選項的完整清單,請參閱:
如果您遇到非預期的效能,請參閱 常見問題。
設定自動載入器檔案偵測模式
自動載入器支援兩種 檔案偵測模式。 請參閱:
自動載入器相較於直接在檔案上使用結構化串流的優勢
在 Apache Spark 中,您可以使用spark.readStream.format(fileFormat).load(directory)
逐步讀取檔案。 自動載入器相較於檔案來源提供以下優勢:
- 延展性:自動載入器可以有效率地探索數十億個檔案。 您可以異步執行回填,以避免浪費任何計算資源。
- 效能:使用自動載入器來探索檔案的成本,會隨著要進入的檔案數目變化,而不是檔案可能落入的目錄數目。 請參閱 什麼是自動載入器目錄清單模式?。
- 架構推斷和演進支援:自動載入器可以偵測架構漂移、在架構變更發生時通知您,以及拯救本來會被忽略或遺失的數據。 請參閱 自動載入器架構推斷如何運作?。
- 成本:自動載入器會使用原生雲端 API 來取得記憶體中存在的檔案清單。 此外,自動載入器的檔案通知模式可藉由完全避免目錄清單,協助進一步降低雲端成本。 自動載入器可以在記憶體上自動設定檔案通知服務,讓檔案探索更便宜。