Flink 的 Match_Recognize 函数是否适合捕获这种类型的模式?
Is Flink's Match_Recognize function suitable for capturing this type of pattern?
我正在尝试以下述模式捕获事件:
- 开始事件=SalePackageA事件(客户A购买PackageA)
- 第二个事件 = PackageUsage 事件(客户 A 使用 PackageA)
- 第三个事件 = PackageUsage 事件(客户 A 使用 PackageA)
- 第 4 个事件 = PackageUsage 事件(客户 A 使用 PackageA)
- ...
- 第 N 个事件 = PackageUsage 事件(客户 A 使用 PackageA)
- 停止事件 = SalePackageA 事件(客户 A 再次购买 PackageA)
即:客户购买了一些余额为 2048mb 的数据包,然后客户使用它 - 我在每个 PackageUsage 事件中都收到已使用的字节数。
因此,match_recognize 应该使用一些聚合逻辑对每个 PackageUsage 事件大喊大叫:
( SalePackageA.Initial_Balance_Bytes - sum(present_event__PackageUsage.usage_bytes + sum(all_previous__PackageUsages.usage_bytes)) ) as Remaining_Balance
当同一个客户购买同一个套餐时,这个“流程”应该被打断,新的“流程”将重新开始。
Flink的CEP适用于描述的case吗? ideas/suggestions 如何使用 CEP 实现这个?
MATCH_RECOGNIZE 和 CEP 不符合您的要求(因为您需要在每次使用事件后报告余额)。
我的建议是使用键控过程函数来实现。
我正在尝试以下述模式捕获事件:
- 开始事件=SalePackageA事件(客户A购买PackageA)
- 第二个事件 = PackageUsage 事件(客户 A 使用 PackageA)
- 第三个事件 = PackageUsage 事件(客户 A 使用 PackageA)
- 第 4 个事件 = PackageUsage 事件(客户 A 使用 PackageA)
- ...
- 第 N 个事件 = PackageUsage 事件(客户 A 使用 PackageA)
- 停止事件 = SalePackageA 事件(客户 A 再次购买 PackageA)
即:客户购买了一些余额为 2048mb 的数据包,然后客户使用它 - 我在每个 PackageUsage 事件中都收到已使用的字节数。
因此,match_recognize 应该使用一些聚合逻辑对每个 PackageUsage 事件大喊大叫:
( SalePackageA.Initial_Balance_Bytes - sum(present_event__PackageUsage.usage_bytes + sum(all_previous__PackageUsages.usage_bytes)) ) as Remaining_Balance
当同一个客户购买同一个套餐时,这个“流程”应该被打断,新的“流程”将重新开始。
Flink的CEP适用于描述的case吗? ideas/suggestions 如何使用 CEP 实现这个?
MATCH_RECOGNIZE 和 CEP 不符合您的要求(因为您需要在每次使用事件后报告余额)。
我的建议是使用键控过程函数来实现。