apache flink关联/缓存数据选项

sqxo8psd  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(356)

这是一个非常广泛的问题,我是新的Flink和研究的可能性,使用它作为一个目前的分析引擎的替代品。
场景是,从各种设备收集的数据,以json编码的字符串形式接收,格式为{“location.attribute”:value,“timestamp”:value}
例如,接收位置的单一可追溯性代码,之后在实时流中接收各种过程参数。分析将在过程参数上运行,但是输出需要包括与可追溯性代码的关系。例如{“location.alarm”:value,“location.traceability”:value,“timestamp”:value}
flink使用什么方法来缓存值,在本例中是当前可跟踪代码,同时对稍后接收的其他参数运行分析?
我主要是在寻找需要研究的领域,因为到目前为止我还没有找到任何这种情况的例子。也许这不是Flink能处理的那种过程

hkmswyz6

hkmswyz61#

使用flink做这类事情的一种自然方法是按位置为流设置密钥,然后在 ProcessFunction (或 RichFlatMapFunction )存储部分结果,直到准备好发出输出。
对于键控流,可以保证具有相同键的每个事件都将由相同的示例处理。然后可以使用keyed state(实际上是一个分片键/值存储)来存储每个键的信息。
apache-flink培训包括一些关于键控流和使用键控状态的解释性材料,以及两个练习,探索如何使用这些机制大致完成您需要的工作。
或者,您可以使用表或sqlapi来实现这一点,并将其实现为流与自身的连接。

相关问题