首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Flink关联/缓存数据选项

Apache Flink关联/缓存数据选项
EN

Stack Overflow用户
提问于 2020-04-11 16:58:36
回答 1查看 474关注 0票数 0

这是一个非常广泛的问题,我是Flink的新手,正在研究将其作为当前分析引擎的替代品的可能性。

场景是,从各种设备采集的数据,以JSON编码字符串的形式接收,格式为{“location.attribute”:value,“TimeStamp”:value}

例如,接收位置的单一可追溯性代码,之后在实时流中接收各种过程参数。分析将在过程参数上运行,但是输出需要包括与可追溯性代码的关系。例如{“location.alarm”:value,“location.traceability”:value,“TimeStamp”:value}

Flink使用什么方法来缓存值,在这种情况下是当前的可追溯性代码,同时对稍后收到的其他参数运行分析?

我主要是在寻找要研究的领域,因为到目前为止,我还找不到任何这种情况的例子。也许这不是Flink可以处理的那种过程

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-11 20:31:53

使用Flink做这类事情的一种自然方法是根据位置对流进行键控,然后在ProcessFunction (或RichFlatMapFunction)中使用键控状态来存储部分结果,直到可以发出输出为止。

通过键控流,您可以保证具有相同密钥的每个事件都将由相同的实例处理。然后,您可以使用keyed state存储每个键的信息,它实际上是一个分片的键/值存储。

Apache Flink training包括一些关于keyed streamsworking with keyed state的说明性材料,以及探索如何使用这些机制大致完成所需操作的an exercise or two

或者,您可以使用Table或SQL API来实现这一点,并将其实现为流与其自身的连接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61154310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档