簡體   English   中英

Apache Beam Java 中的批量操作與本機節流

[英]Bulk ops in Apache beam Java with native throttling

我們有多個電子表格。 每個都有 2 到 4 張描述實體的表格。 工作表 1 中的行映射到工作表 2 中的行,依此類推。

可以使用 APACHE Poi 讀取這些內容並將其映射到我的 POPJO。 我嘗試使用 Open CSV,但它支持 CSV 而不是 POI 作為閱讀器?

同樣在處理這些數據時,需要調用帶有附件的 API。 我們計划使用 Apache Beam 直接運行器,並且能夠進行 POC。 唯一的問題是不確定如何限制進程。 所以每分鍾只處理1條記錄?

我們有 4 個屬性要查看:工作產品、租戶、子類型和優先級

想要產品、租戶和子類型級別的限制。 這意味着即使一個租戶可以有 10 個進程,如果產品的限制為 15 個並且已經有 15 個其他租戶在運行,那么請等待。 我們可以使用 SINGLE_BEAM 進行 1 次上傳,但如何限制所有作業?

我們有一個類來表示作業、任務(文件中的行或其他一些工作子單元)、租戶,以跟蹤狀態和計數

我們可以編寫自己的 Java 代碼來強制執行此操作,但不確定將其插入到 Apache Beam 的哪個位置?

Apache POI 沒有內置 I/O: https ://beam.apache.org/documentation/io/built-in/。

如果需要,您可以按照此說明創建自定義源https://beam.apache.org/documentation/io/developing-io-java/

您還可以編寫一些帶有狀態處理的 ParDo 來控制您的吞吐量。

狀態是每個鍵每個窗口,因此只要您將管道限制為單個鍵(或您提到的所需“進程”數量)並使用默認全局窗口進行批處理,您就可以限制並行度.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM