1 回答
TA貢獻1995條經驗 獲得超2個贊
如果我正確理解了此要求,您會希望按每個應用程序的 DB/Table 拆分攝取片段,然后將它們全部合并為單個“有效負載類型”以進行下游處理。
如果您確實想按 DB/Table 拆分攝取,則可以,但您可能需要考慮利弊。一個明顯的好處是粒度,你可以獨立地更新應用程序,也許還有可重用性。當然,這也帶來了其他挑戰。單個應用程序的維護、修復和發布等等。
也就是說,您可以將數據扇入單個消費者。下面是一個例子:
foo1 = jdbc | 變換 | 高密度文件
foo2 = jdbc > :foo1.jdbc
foo3 = jdbc > :foo1.jdbc
foo4 = jdbc > :foo1.jdbc
這里foo1是從特定 DB/Table 組合讀取數據的主要管道。同樣,foo2、foo3和foo4可以從其他數據庫/表組合中讀取。但是,這 3 個流將消耗的數據寫入命名目標,在這種情況下恰好是foo1.jdbc(又名:主題名稱)。該目的地在部署foo1管道時由 SCDF 自動創建;專門將“jdbc”和“轉換”應用程序與foo1.jdbc主題連接起來。
綜上所述,我們將不同的表數據路由到同一個目的地,所以下游App,在這種情況下,transform處理器從不同的表中獲取數據。
如果數據的相關性很重要,您可以通過每個jdbc來源的唯一鍵(例如,customer-id = 1001)對生產者處的數據進行分區,因此特定于上下文的信息位于同一個transform處理器實例中(假設您已經“ n" 用于橫向擴展處理的處理器實例數)。
添加回答
舉報
