【问题标题】:ksql query array of structs by value in the structksql 按结构中的值查询结构数组
【发布时间】:2023-02-08 01:03:20
【问题描述】:

我有一个结构数组。该数组是增量处理的输出,这就是结构计数不同的原因(并且结构 B 有时具有位置 1,但也可以具有位置 5)。 数组中的结构如下所示: { 值:{ 作为字符串:“12345” }, 位置:"1200" }

另一个例子:

{ 值:{ 作为字符串:“12927” }, 位置:"1120" }

我想使用位置键查询值作为字符串。我知道要查询哪个位置键,但我不知道如何获取值,因为位置值是结构的一部分。 整个对象都有一个key来标识一个对象

我想到了分解数组并使用对象标识键创建一个新事件。 该对象本身有大约 6000 行,这将返回大量事件(我试图避免)。 也许有必要切换到 kafka 流?

【问题讨论】:

  • 您可以使用 -> 表示法来访问 STRUCT 字段...但是,是的,您需要先分解一个 ARRAY。你试过什么? “按键”到底是什么意思?
  • 因为它是一个结构数组,所以你不能通过 -> 访问结构(因为你不知道数组中的位置)。分解数组是一种选择,但方法很复杂,并不是一个很好的解决方案。我的意思是,我想通过结构中的位置属性访问特定结构

标签: json apache-kafka ksqldb


【解决方案1】:

我找到了一个很好的工作解决方案: 在我的例子中,我知道我正在搜索哪些键(或结构中的位置属性)。 因此,您可以使用数组的 FILTER 方法来过滤结构,该结构在我正在搜索的位置属性中具有特定值。 您可以对要搜索的所有值执行此操作(如果缺少位置键,您只会得到一个空值,但在我的情况下完全没问题) 这是在不使用 Kafka Streams 的情况下在 ksql 中实现它的好方法。 (仅供参考,我试图避免使用 Kafka Streams,因为它不是一个融合的云原生产品,需要更深入的 Java 知识)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2017-09-25
    • 2021-04-07
    • 2018-10-23
    • 1970-01-01
    相关资源
    最近更新 更多