开发者社区> 问答> 正文

CheckpointedFunction#snapshotState访问键控状态报错,什么情况?

  snapshotState主要是给operator state用的,异常原因是keyed state 访问时需要设置currentKey的,但是currentKey是当前正在处理的record的key,与snapshotState的执行时候的语义不一样,执行snapshotState方法的时候,是可以没有当前record的。   如果想要访问整个keyed state,可以通过 KeyedStateBackend#getKeys(String state, N namespace) 来访问,但还是不建议将keyed state写入到HBase,因为Flink更希望你是按照per record的访问,而不是全局访问,后者效率和性能都不好。*来自志愿者整理的flink

展开
收起
雪哥哥 2021-12-05 12:09:40 629 0
1 条回答
写回答
取消 提交回答
  • 我们需求这个状态需要可以被外部查询,quable state我们生产端口会屏蔽掉。所以只能在checkpoint的时候自己将状态输出到外部存储。但是感觉没有很好的api获取statetable里面实际kv状态*来自志愿者整理的flink

    2021-12-05 17:37:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
面向失败设计 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载