在ksql中使用extractjsonfield时,名称中的空格有问题,例如:
SELECT EXTRACTJSONFIELD(payload, '$.Successful Login') FROM MYSTREAM;
--它总是返回null
我应该如何处理键名中的空格?
我试过:
EXTRACTJSONFIELD(payload, '$.Successful%Login')
EXTRACTJSONFIELD(payload, '$.Successful%20Login')
EXTRACTJSONFIELD(payload, '$.[Successful Login]')
EXTRACTJSONFIELD(payload, '$."Successful Login"')
2条答案
按热度按时间gxwragnw1#
我刚刚使用ksql6(cliv6.0.0,serverv6.0.0)尝试了robin的响应。对我来说,用两个反斜杠是不行的。对我来说,它只在ksqldb cli中使用一个反斜杠或不使用反斜杠,如下所示:
或者ksql>从test1中选择extractjsonfield(test,“$[”successful login“]”);
对我来说,它只在从confluent command center(版本6.0.0)启动查询以及将查询交给无头ksqldb服务器(confluentinc/cp ksqldb)时工作,没有反斜杠-server:6.0.0 image)使用查询文件。
bmp9r5qi2#
热释光;dr:使用
[\\"
label\\"]
引用字段试验数据:
在ksql中声明流并检查消息:
列的未转义引用无效:
转义列使用
[\\"
(也请注意不要使用点符号):在这个问题上,novikovantonio提供了这个解决方案