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