【发布时间】:2021-03-25 00:59:21
【问题描述】:
我有以下 ksql 查询:
SELECT
event->acceptedevent->id as id1,
event->refundedevent->id as id2,
coalesce(event->acceptedevent->id, event->refundedevent->id) as coalesce_col
FROM events
EMIT CHANGES;
根据文档,(https://docs.ksqldb.io/en/latest/developer-guide/ksqldb-reference/scalar-functions/#coalesce) COALESCE 返回第一个非空参数。
查询返回以下内容:
+-----------------------------------------------+-----------------------------------------------+-----------------------------------------------+
|ID1 |ID2 |COALESCE_COL |
+-----------------------------------------------+-----------------------------------------------+-----------------------------------------------+
|1 |null |null |
|2 |null |null |
|3 |null |null |
我期待,因为 ID1 显然不是 null,作为调用的第一个参数,COALESCE 将返回与 ID1 相同的值,但它返回 null。我错过了什么?
我正在使用 confluentinc/cp-ksqldb-server:6.1.1 并使用 avro 作为值 serde。
EventMessage.avsc:
{
"type": "record",
"name": "EventMessage",
"namespace": "com.example.poc.processor2.avro",
"fields": [
{
"name": "event",
"type": [
"com.example.poc.processor2.avro.AcceptedEvent",
"com.example.poc.processor2.avro.RefundedEvent"
]
}
]
}
【问题讨论】:
-
你运行的是什么版本的 ksqlDB?
-
@RobinMoffatt 我正在使用 confluentinc/cp-ksqldb-server:6.1.1
标签: apache-kafka ksqldb