什麼是Auto Loader?
Auto Loader在新數據文件到達雲存儲時可以增量高效地處理它們,無需任何額外設置。
關於自動加載程序
當新的數據文件到達雲存儲時,Auto Loader增量和高效地處理它們。Auto Loader可以從AWS S3 (s3: / /
)、Azure數據湖存儲Gen2 (ADLS Gen2)、abfss: / /
),雲存儲(GCS,g: / /
)、Azure Blob存儲(wasbs: / /
)、ADLS Gen1 (adl: / /
)、Databricks文件係統(DBFS、dbfs: /
).自動加載器可以攝入JSON
,CSV
,拚花
,AVRO
,獸人
,文本
,BINARYFILE
文件格式。
自動加載器提供一個結構化流源稱為cloudFiles
.給定雲文件存儲上的輸入目錄路徑,則cloudFiles
Source在新文件到達時自動處理它們,還可以選擇處理該目錄中的現有文件。Auto Loader在Delta Live表中支持Python和SQL。
您可以使用Auto Loader來處理數十億個文件,以遷移或回填一個表。自動加載器的規模,以支持接近實時攝入數百萬個文件每小時。
檢查點與自動加載器
當文件被發現時,它們的元數據被保存在可擴展的鍵值存儲(RocksDB)中檢查點位置你的Auto Loader管道。這個鍵值存儲確保數據隻被處理一次。
在失敗的情況下,Auto Loader可以從它離開的地方通過存儲在檢查點位置的信息恢複,並繼續在將數據寫入Delta Lake時提供精確一次的保證。您不需要自己維護或管理任何狀態來實現容錯或完全一次的語義。
開始
Databricks建議在Delta Live Tables中使用Auto Loader來進行增量數據攝取。Delta Live Tables擴展了Apache Spark結構化流中的功能,允許您隻編寫幾行聲明性Python或SQL就可以部署生產質量的數據管道。
當您使用Apache Spark結構化流從雲對象存儲中獲取數據時,Databricks推薦使用Auto Loader。api在Python和Scala中可用。
要開始使用自動加載器,請參見:
與直接在文件上使用結構化流相比,自動加載器的好處
在Apache Spark中,您可以使用增量方式讀取文件spark.readStream.format (fileFormat) .load(目錄)
.Auto Loader提供了以下好處的文件源:
可擴展性:Auto Loader可以高效地發現數十億個文件。回填可以異步執行,避免浪費計算資源。
性能:使用Auto Loader發現文件的成本隨著被攝入的文件的數量而增加,而不是文件可能進入的目錄的數量。看到什麼是自動加載目錄列表模式?.
模式推斷和進化支持:Auto Loader可以檢測模式漂移,當模式發生更改時通知您,並挽救可能被忽略或丟失的數據。看到模式推理.
成本:Auto Loader使用本地雲api來獲取存儲中存在的文件列表。此外,自動加載器的文件通知模式可以幫助減少您的雲成本進一步避免目錄列表。Auto Loader可以在存儲上自動設置文件通知服務,使文件發現更便宜。