State 是用來(lái) 管理 從數(shù)據(jù)存儲(chǔ)中 查詢數(shù)據(jù)(使用batch中的tuple作為輸入來(lái)查詢) 插入和更新數(shù)據(jù)(把batch中的tuple更新或者插入到數(shù)據(jù)存儲(chǔ))
里面涉及到事務(wù)管理
對(duì)于黍衙,數(shù)據(jù)存儲(chǔ)是kv結(jié)構(gòu)的梨撞, 會(huì)有專(zhuān)門(mén)的MapStates接口
我們要自己定義支持kv的state,只需要實(shí)現(xiàn) IBackingMap接口
如果要自己實(shí)現(xiàn) State
首先Sate實(shí)現(xiàn)類(lèi)里面需要有查詢和更新函數(shù)
然后需要繼承BaseQueryFunction和BaseStateUpdater 模板類(lèi)估灿,
來(lái)專(zhuān)門(mén)實(shí)現(xiàn)如何根據(jù)輸入tuple,調(diào)用State內(nèi)部的查詢和更新函數(shù)螃宙,實(shí)現(xiàn)數(shù)據(jù)的查詢和更新
需要注意的是雁社,trident是一個(gè)batch一個(gè)batch地對(duì)數(shù)據(jù)存儲(chǔ)進(jìn)行操作的,可以減少網(wǎng)絡(luò)交互