簡體   English   中英

在NiFi中安排批處理SQL

[英]Schedule batch SQL in NiFi

我正在使用NiFi連接2個系統:

  • 源於Kafka主題中的一個生成事件
  • 目的地,我只考慮Oracle數據庫。

我需要減少Kafka主題中的JSON並將它們推送到適當的表中。 這樣做沒有什么大問題但是......源系統生成了太多事件,目標數據庫觸發了每個修改的進程。 並且不適合處理那么多流程。

所以我在做批量更新在我的數據庫,使用PutSQL Processor一個背后Text Processor + Update Attribute Processor + ReplaceText Processor (如下所示,例如: https://community.hortonworks.com/articles/91849/design-nifi -flow-for-using-putsql-processor-to-per.html )。

但是這個工作流程允許我根據要放入的許多元素更新我的數據庫(我的批量大小)。

我想基於時間,定期批量更新。 原因是源事件不是線性的,並且目標數據庫不能接受距離源超過5分鍾的距離。 所以我需要每隔5分鍾安排一次最糟糕的更新。

我現在無法看到如何做到這一點。 請問您能告訴我哪種處理器/解決方案?

PS:當然,存在大量更好的解決方案,比如不會在我的目標數據庫中的每次提交中觸發繁重的流程,但是改變這個“好的舊系統”現在是不可能的。

干杯,奧利維爾

我建議串聯使用WaitNotify處理器來設置一個“門”,它將流文件保存在隊列中,直到Notify處理器(運行時間表為~5分鍾)發送“觸發器”流文件。 Koji Kawamura寫了一篇記錄這種行為模式的文章

嗯......答案很簡單。 您只需要進入處理器的“計划”選項卡。 我現在正在運行1.6.0-SNAPSHOT(順便說一下,看起來這個選項已經存在了很長時間......我只是沒注意到它)並且它為Scheduling提供了設置Cron調度程序的能力。 哪個完美地滿足了需求......

暫無
暫無

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

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