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

如何根据数百条规则合并apache beam/dataflow中的相关记录?

厍彭薄
2023-03-14

示例数据

Source System 1:
{userid = 123, first_name="John", last_name="Smith", many other columns...}

Source System 2:
{userid = EFCBA-09DA0, fname="J.", lname="Smith", many other columns...}
  • 我可以使用大约100条规则将一条记录与另一条记录进行比较,以查看源系统1中的客户是否与源系统2相同。
  • 某些规则可以推断记录值并将数据添加到关于客户的主记录中。
  • 因为某些规则可能会向任何特定记录推断/添加数据,所以当记录更改时,必须再次应用这些规则。
  • 我们每天有数百万条记录,我们必须统一

Apache波束/数据流实现

    null
    null

或者也许有一个更标准的方法来解决这类问题。

共有1个答案

司马同
2023-03-14

从我目前所能读到的情况来看,很难说什么解决方案最适合你。我会试着把这个问题进一步分开,试着分别处理不同的方面。

据我所知,目标是将不同来源中表示相同事物的匹配记录组合在一起:

  • 记录来自多个来源:
    • 逻辑上是相同的数据,但格式不同;
      null
      null

    对我来说,这看起来很高,在这个细节层面上可能没有单一的“正确”解决方案。

    我可能会尝试通过首先更详细地理解它来解决这个问题(也许你已经这样做了),很少想到:

    • 数据的属性是什么?
      • 有图案吗?例如。当一个系统发布某些内容时,是否期望其他系统发布其他内容?
        null
        null
        null

 类似资料:
  • 我有一个批次处理作业在数据流运行在gcp下版本apache-梁[gcp]==2.19.0的数据流运行。我为作业创建了一个自定义模板。作业正在按预期运行,但我还想添加最大作业持续时间。我在wait_until_finish()方法中找到了持续时间(毫秒)参数,它应该是可用的。问题是:如何让模板化批处理作业在运行时间超过持续时间时自动停止?我不需要保存任何数据,我只希望工作运行时间过长时停止。我已经实

  • 我试图设计一个应用程序,允许用户根据不同的配置创建订阅——表达他们在满足这些条件时接收警报的兴趣。 在评估实现相同功能的选项时,我考虑使用Drools等通用规则引擎来实现相同功能。从高层来看,这似乎是一个自然的适合这个问题的方法。但深入挖掘并仔细思考一下,我怀疑业务规则引擎是否是正确的使用方式。 我认为规则引擎可以根据预定义的条件选择规则,并将规则应用于该数据以产生结果。然而,我的要求是从数据(生

  • 问题内容: 如何将其写成一行? 用id和class选择html标签的方法是什么? 问题答案: 您所要做的就是用逗号分隔它们,例如

  • 我想运行一个调用Java方法并从另一个规则传递事实(或者更确切地说,它的逻辑值)的规则,尽管我不知道java方法是否对这个问题很重要。描述起来并不容易,所以我将尝试基于一个示例来展示它: 这里的问题是,第一条规则并不总是触发,因此不总是定义某些条件,也不计算第二条规则。 我的第二次尝试是创建这样两个独立的规则: 这也不能像预期的那样工作,因为它首先计算someconditionfalse规则,甚至

  • 我在设计一个简单的COVID19追踪系统。每次客户(ArrayList中的对象)访问商店(ArrayList中的对象)时,系统都会创建存储在ArrayList中的访问对象。 超类的详细信息。 我正在使用java.time包创建datetime和Visit对象,如下所示 我的客户类构造函数如下所示 我的shop类构造函数如下所示 我在另一个文件中也有一个状态枚举,看起来如下所示 我现在想要完成的是,

  • 我有一个相当大的数据帧(几百列),我想对它执行以下操作。我在下面用一个玩具数据框和一个简单的条件来说明我需要什么。 对于每一行:条件#1:检查其中两列的值是否为零(0)。如果这是真的,请保留该行并继续下一行。如果任一列的值为零(0),则条件为真。 如果条件#1为False(第1列或第4列中没有零),请检查行中所有剩余的列。如果任何剩余列的值为零,则删除该行。 我希望过滤后的数据帧作为一个新的、独立