自動加載常見問題
有關Databricks自動加載程序的常見問題。
自動加載程序再次處理文件時,文件被追加或覆蓋?
文件隻處理一次,除非cloudFiles.allowOverwrites
啟用。如果文件被追加或覆蓋,Databricks不保證處理文件的哪個版本。Databricks建議您使用Auto Loader隻攝取不可變文件。如果這不符合您的要求,請與Databricks代表聯係。
如果我的數據文件不是連續到達,而是定期到達,例如每天到達一次,那麼我還應該使用這個源嗎?有什麼好處嗎?
在這種情況下,您可以設置一個觸發器。一次
或觸發器。AvailableNow
(在Databricks Runtime 10.2及更高版本中可用)結構化流作業和計劃在預期的文件到達時間之後運行。自動加載器工作良好,無論是不頻繁或頻繁更新。即使最終的更新非常大,Auto Loader也能很好地適應輸入大小。Auto Loader高效的文件發現技術和模式演化功能使Auto Loader成為增量數據攝取的推薦方法。
我需要事先創建事件通知服務嗎?
不。如果您選擇了文件通知方式,並提供了相應的權限,Auto Loader可以為您創建文件通知服務。看到什麼是自動加載文件通知模式?
如何清理自動加載器創建的事件通知資源?
您可以使用雲資源管理器列出和刪除資源。您還可以使用雲提供商的UI或api手動刪除這些資源。
我可以在同一個桶/容器上從不同的輸入目錄運行多個流查詢嗎?
是的,隻要它們不是父子目錄;例如,prod-logs /
而且prod-logs /使用/
不會起作用,因為/使用
的子目錄是/ prod-logs
.
自動加載器如何推斷模式?
當第一次定義DataFrame時,Auto Loader列出您的源目錄並選擇最近的(根據文件修改時間)50gb的數據或1000個文件,並使用這些來推斷您的數據模式。
Auto Loader還通過檢查源目錄結構來推斷分區列,並查找包含/ /關鍵=價值
結構。如果源目錄結構不一致,例如:
基地/道路/分區= 1 /日期= 2020-12-31 / file1。base/path/date=2020-12-31/partition=2/file2. Json //不一致,因為日期和分區目錄順序不同。base/path/partition=3/file3.json . Json //不一致,因為日期目錄缺失
Auto Loader將分區列推斷為空。使用cloudFiles.partitionColumns
顯式地解析目錄結構中的列。
什麼時候自動加載機推斷模式?它是否在每個微批處理後自動進化?
當DataFrame第一次在代碼中定義時,就會推斷出模式。在每個微批處理期間,會動態地評估模式更改;因此,您不需要擔心性能損失。當流重新啟動時,它從模式位置拾取已演進的模式,並開始執行,沒有任何推理開銷。