亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在同一主題上使用globalKtable和StateStore?

如何在同一主題上使用globalKtable和StateStore?

九州編程 2024-01-28 16:22:42
只是為了澄清,我是卡夫卡的新手,很抱歉,如果我的問題似乎沒有記錄,我正在閱讀教程、文檔和我能理解的一切。我試圖從 GlobalStore 讀取所有值以更新其值,然后使用已存在的 StateStore 來放置這些新的更新值。我正在嘗試這樣做,因為當我這樣做時:this.stateStore.all();我只有1/10的數據,如果我理解正確的話,這是因為我有10個分區,而ss,只讀取一個(雖然我不太明白為什么)這是我的全局表:    public StreamsBuilder declareTopology(StreamsBuilder builder) {        logger.debug("Building topology : input topic ~ {} ; output topics ~ {}, {}",                getInputTopic(),                getDataTopic(),                getToEsTopic());        builder.globalTable(                getDataTopic(),                Consumed.with(Serdes.String(), fooSerdes)                        .withOffsetResetPolicy(Topology.AutoOffsetReset.EARLIEST),                Materialized.<String, Foo, KeyValueStore<Bytes, byte[]>>as(                        "foosktable")                        .withKeySerde(Serdes.String())                        .withValueSerde(fooSerdes)                        .withLoggingEnabled(new HashMap<>()));    ...這是 addStateStore,我無法刪除它,因為它在代碼的其他地方使用:       ...       builder.addStateStore(            Stores.keyValueStoreBuilder(                    Stores.persistentKeyValueStore("foosktable"),                    Serdes.String(),                    fooSerdes));    ...    return builder;}因此,從理論上講,我想做的是刪除也使用相同主題的 StateStore,并使用我的 data.process 主題之一放置我的數據,問題是該處理器使用此 StateStore 執行其他操作,所以我不能用核武器攻擊它。我在這里迷路了,任何光都會有很大幫助。謝謝 !
查看完整描述

1 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

有點不清楚你真正想要實現的目標是什么。然而,一些高級解釋:

AGlobalKTable只有一個目的:從主題讀取數據而不進行修改,以允許執行連接KStream-GlobalKTable或通過“交互式查詢”查詢存儲。

因此,您無法真正執行您想要的操作,因為無法按照您的意圖將數據從全局存儲復制到另一個存儲。您需要復制輸入主題并讀取兩次:(1) 和GlobalKTable(2) 常規,KStream以在將數據放入商店之前修改數據。對于 (2),您可以使用transform().

希望這可以幫助。


查看完整回答
反對 回復 2024-01-28
  • 1 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號