State 是用来 管理 从数据存储中 查询数据(使用batch中的tuple作为输入来查询) 插入和更新数据(把batch中的tuple更新或者插入到数据存储)
里面涉及到事务管理
对于,数据存储是kv结构的, 会有专门的MapStates接口
我们要自己定义支持kv的state,只需要实现 IBackingMap接口
如果要自己实现 State
首先Sate实现类里面需要有查询和更新函数
然后需要继承BaseQueryFunction和BaseStateUpdater 模板类,
来专门实现如何根据输入tuple,调用State内部的查询和更新函数,实现数据的查询和更新
需要注意的是,trident是一个batch一个batch地对数据存储进行操作的,可以减少网络交互
原文地址:https://www.cnblogs.com/brainstorm/p/8948321.html
时间: 2024-11-08 22:41:58