【问题标题】:Kafka Connect - json path - regex condition not workingKafka Connect - json 路径 - 正则表达式条件不起作用
【发布时间】:2021-05-27 18:44:10
【问题描述】:

我有一个应用程序,我使用连接器将数据保存到数据库。 我想通过删除具有特定属性的消息来过滤保存的消息。 我的消息是这样的:

{
  field_a : value,
  field_b : value,
  field_c : possible very long value
}

所以,我在 kafka 连接器中使用了这样的 Confluent 过滤器:

transforms: filterSpam
transforms.filterSpam.type: io.confluent.connect.transforms.Filter$Value
transforms.filterSpam.filter.condition: $[?(@.field_c =~ /^.{32000,}$/)]
transforms.filterSpam.filter.type: exclude
transforms.filterSpam.missing.or.null.behavior: include

由于某种原因,过滤器无法正常工作。所有消息都通过。

我也尝试过否定:

$[?(!(@.field_c =~ /^.{1,32000}$/))]

在这种情况下,很长的被过滤掉了,但一些较短的也被过滤掉了。

我不明白问题出在哪里。有什么帮助吗?

【问题讨论】:

    标签: apache-kafka apache-kafka-connect confluent-platform jsonpath


    【解决方案1】:

    实际上,我需要更新我的正则表达式知识。 该问题与我尝试应用正则表达式的字符串字段有时是多行有关。 感谢this,我设法对该字段的大小进行了适当的验证。 最终解决方案是:

    transforms.filterSpam.filter.condition: $[?(@.field_c =~ /(\s)^.{32000,}$/)]
    

    【讨论】:

      猜你喜欢
      • 2016-02-09
      • 2020-11-27
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多