為生產工作負載配置自動加載程序

磚建議你遵循流的最佳實踐在生產中運行自動加載程序。

磚推薦使用自動加載器在三角洲住表增量數據的攝入。三角洲住在Apache火花結構化流表擴展功能,允許您編寫幾行Python或SQL聲明式部署生產數據管道:

監控自動加載程序

查詢文件自動加載程序發現的

請注意

cloud_files_state函數是在磚運行時可用10.5及以上。

自動加載器提供了一個SQL API檢查的狀態流。使用cloud_files_state功能,你可以找到關於文件的元數據,發現了一個汽車加載程序流。簡單查詢從cloud_files_state,提供與汽車相關的檢查點位置加載程序流。

選擇*cloud_files_state(“路徑/ /檢查站”);

聽流更新

進一步監測自動加載程序流,磚建議使用Apache的火花流媒體查詢偵聽器接口

自動加載程序報告指標每批流查詢偵聽器。您可以查看有多少文件積壓,積壓在多大numFilesOutstandingnumBytesOutstanding以下指標原始數據選項卡中流儀表板查詢進展:

{“源”:({“描述”:“CloudFilesSource /道路/ /源”,“指標”:{“numFilesOutstanding”:“238”,“numBytesOutstanding”:“163939124006”}}]}

在磚運行時的10.1和以後,使用文件通知模式時,近似數的指標還包括文件在雲中事件隊列approximateQueueSizeAWS和Azure。

成本的考慮

運行時自動加載程序,你的成本會的主要來源的成本計算資源和文件的發現。

降低計算成本,磚推薦使用磚的工作安排汽車裝載機使用批處理作業Trigger.AvailableNow(在磚運行時10.1及以後)Trigger.Once而不是運行不斷,隻要你沒有低延遲的要求。

文件發現成本可以操作列表的形式存儲賬戶目錄清單模式和API請求訂閱服務,文件通知和隊列服務模式。減少文件發現成本,磚建議:

  • 提供一個ProcessingTime引發運行時自動加載程序不斷在目錄清單模式下

  • 架構文件上傳在詞法順序利用存儲賬戶增量清單在可能的情況下

  • 使用磚在目錄清單模式下運行時9.0或更高版本,尤其是深層嵌套的目錄

  • 利用文件通知當增量清單是不可能的

  • 使用資源標簽標簽資源由自動加載程序來跟蹤你的成本

使用觸發器。AvailableNow和rate limiting

請注意

僅在磚Scala 10.1運行時的可用。

在磚運行時為Python和Scala 10.2及以上。

自動加載器可以在磚調度運行工作作為批處理作業使用Trigger.AvailableNow。的AvailableNow觸發將指導汽車加載程序來處理所有的文件到達之前查詢開始時間。新文件上傳後流已經開始將被忽略,直到下一個觸發器。

Trigger.AvailableNow會發生,文件發現異步處理與數據處理和數據跨多個micro-batches率限製。自動加載程序默認流程每micro-batch最多1000個文件。您可以配置cloudFiles.maxFilesPerTriggercloudFiles.maxBytesPerTrigger配置文件或多少多少字節micro-batch應該處理。該文件限製是一個硬限製但字節限製是一個軟限製,這意味著比提供的字節可以處理maxBytesPerTrigger。當提供的選項都是在一起時,自動加載程序將處理很多文件需要達到一個極限。

事件保留

請注意

在磚運行時8.4及以上。

自動加載程序跟蹤發現文件檢查點位置使用RocksDB提供隻有一次攝入擔保。高容量的數據集,您可以使用cloudFiles.maxFileAge期權到期事件從檢查點位置降低存儲成本和汽車加載程序啟動時間。你可以設置的最小值cloudFiles.maxFileAge“14天”。刪除在墓碑RocksDB出現條目,因此你應該期待增加臨時事件的存儲使用到期之前開始平整。

警告

cloudFiles.maxFileAge提供高容量的數據集作為成本控製機製,攝取的順序每小時數以百萬計的文件。調優cloudFiles.maxFileAge錯誤可能導致數據質量問題。因此,磚不建議調整該參數,除非絕對必需。

嚐試調整cloudFiles.maxFileAge選項可能導致未加工的文件被自動忽略裝載機到期或已經處理過的文件,然後再加工造成重複數據。這裏有一些在選擇時要考慮的因素cloudFiles.maxFileAge:

  • 如果你流重啟後很長一段時間,文件通知事件,從隊列中被超過cloudFiles.maxFileAge將被忽略。同樣的,如果你使用目錄清單,文件可能出現在以上的停機時間cloudFiles.maxFileAge將被忽略。

  • 如果你使用目錄清單模式和使用cloudFiles.maxFileAge,例如設置為“1月”,你停止流並重新啟動流cloudFiles.maxFileAge設置為“2個月”超過1個月,所有文件,但是最近2個月再加工。

最好的方法來調優cloudFiles.maxFileAge就是從一個慷慨的過期,例如,“1年”和工作向下之類的“9個月”。如果您設置這個選項你第一次開始流,你不會比攝取數據cloudFiles.maxFileAge因此,如果你想攝取舊數據不應該當你開始流中設置該選項。