当前位置: 首页 > 知识库问答 >
问题:

在Flink流中使用静态数据集丰富数据流

华景明
2023-03-14

我正在编写一个Flink流程序,其中我需要使用一些静态数据集(信息库,IB)来丰富用户事件的数据流。

对于例如。假设我们有一个买家的静态数据集,并且我们有一个事件的clickstream,对于每个事件,我们要添加一个布尔标志,指示事件的实施者是否是买家。

另一个选择可以是使用托管操作员状态来存储购买者设置,但是我如何保持按用户id分配的该状态,以避免在单个事件查找中使用网络I/O呢?在内存状态后端的情况下,状态是保持按某个键分布,还是跨所有操作符子任务复制?

什么是正确的设计模式来实现Flink流程序中的上述丰富需求?

共有1个答案

史良哲
2023-03-14

我将通过user_id对流进行键控,并使用RichFlatMap进行充实。在RichFlatMap的open()方法中,您可以加载该用户的静态buyer标志,并将其缓存在一个布尔字段中。

 类似资料:
  • 我正在用Flink做一个实时项目,我需要用以前的交易丰富每一张卡的状态,以计算如下的交易特性: 对于每一张卡,我都有一个功能,可以统计过去24小时内的交易次数。另一方面,我有两个数据源: 在Flink流中使用静态数据集丰富数据流 任何帮助都是非常感激的。

  • 在我的应用程序中,我想丰富一个无限的事件流。流本身是通过对ID进行散列来并行的。对于每个事件,都可能有一个对外部源(例如REST和DB)的调用。这个呼叫本质上是阻塞的。必须保持一个流分区内事件的顺序。 我的想法是创建一个RichMapFunction,它设置连接,然后轮询每个事件的外部源。阻塞调用通常耗时不长,但在最坏的情况下,服务可能会关闭。

  • 数据丰富是指用于增强,改进和改进原始数据的一系列过程。 它指的是有用的数据转换(原始数据到有用信息)。 数据丰富过程的重点是使数据成为现代企业或企业的宝贵数据资产。 最常见的数据丰富过程包括通过使用特定的决策算法来纠正数据库中的拼写错误或印刷错误。 数据丰富工具为简单数据表添加有用信息。 考虑以下代码进行单词拼写纠正 - import re from collections import Coun

  • 由于我刚接触DataFlow/Beam,概念还不太清楚(或者至少我在开始编写代码时有困难),我有很多问题: 什么是最好的模板或模式,我可以用来做到这一点?我应该先执行BigQuery的PTransform(然后执行PubSub的PTransform)还是先执行PubSub的PTransform? 我怎么做加入?比如? PubSub的最佳窗口设置是什么?BigQuery的PTransform部分的窗

  • 为了调试我们的应用程序,我们将所有传入数据(s3接收器)保存在图形的单独部分(甚至在时间戳/水印处理之前)。我们的数据已经包含了时间戳(event timestamp),在保存数据之前,我们想再添加一个字段,其中在消息实际进入flink时会有一个时间戳(处理时间)。 如何最好地做到这一点?也许flink为此提供了一个特殊的API,现在我们正在做非常简单的

  • 我有一个用于点击流收集和处理的Flink应用程序。该应用程序由Kafka作为事件源、一个map函数和一个接收器组成,如下图所示: 我想根据从Kafka摄取的原始事件中的userIp字段,使用用户的IP位置来丰富传入的点击流数据。 CSV文件的简化切片,如下所示 我做了一些研究,发现了一些潜在的解决方案: 1.解决方案:广播浓缩数据,用一些IP匹配逻辑连接事件流。 结果:它适用于几个示例IP位置数据