簡體   English   中英

理解用浮士德表和分區連接浮士德主題

[英]understanding joining a faust topic with a faust table and partitioning

我有兩個主題:

  • 1 個帶有事件數據的主題( EventData ,比如說5 個分區)——該主題的日志使用 CustomerID 作為鍵。
  • 1 個帶有豐富數據的緊湊主題( EnrichmentKVs ,比如說3 個分區)——該主題的日志使用相同的 CustomerID 作為鍵。

目標是將 EnrichmentKV 保存在 Faust 表中,當 EventData 日志流入時,它們會使用該表中的數據進行豐富並發布到新的流/主題。

所以我有兩個Faust (python) 應用程序,每個應用程序都有自己運行的實例數量:

  • App1(N-instances running)使用 key=CustomerId 發布到 EventData 主題
  • App2(正在運行的 M 實例)執行以下操作:
    • 更新浮士德表 ( EnrichmentKVsTable ) 以獲取來自 EnrichmentKVs 主題的值
    • 從 EventData 主題流入,並將浮士德表中的數據與來自Eventdata的數據流“連接”

我的理解是,App2 的每個實例都只會有一個基於分區鍵的部分 EnrichmentKV 表。 要使“JOIN”工作, EventData(key="1234")的任何日志必須 go 到與EnrichmentKVsTable(key="1234")的日志相同的 App2實例

當兩個輸入主題的分區不同,並且每個應用程序的實例數量也可能不同時,浮士德如何確保這一點? 還是我處理這個問題是錯誤的?

更新(Kstreams 信息,非浮士德):

學到的東西:

  1. 看起來這是要求 JOINing 主題必須具有相同數量的分區,並且我假設 Faust 具有相同的限制。 這解釋了我上面的擔憂......除了......
  2. ...看起來KStreams中有全局表,Faust 1.9+(鏈接)中有一個相關功能。

希望這是下一個遇到與我上面類似的問題的人的面包屑。

暫無
暫無

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

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