使用AVRO作为值格式创建的KSQL流输出null

时间:2019-05-14 10:03:08

标签: ksql

我有这种格式的数据

{"ROWTIME":1557825832927,"ROWKEY":"null","respondent_id":"noon","machine_data":{"resolution":"1920x1080","region":860}}

当我像这样创建一个名为COMPLEX的流时:

CREATE STREAM complex WITH (KAFKA_TOPIC='test-topic-complex-2', VALUE_FORMAT='AVRO');

然后运行:

SELECT MACHINE_DATA from COMPLEX;

它工作正常。

运行此:

SELECT MACHINE_DATA->RESOLUTION from COMPLEX;

无效,表示RESOLUTION不是机器数据中的字段。但这显然是

我删除了COMPLEX流,然后重新创建它,并使用此语法创建流,从而明确指定了分辨率是一个字段

CREATE STREAM COMPLEX (respondent_id VARCHAR, machine_data struct<resolution VARCHAR, region INT>) WITH (KAFKA_TOPIC='test-topic-complex-2', VALUE_FORMAT='AVRO');

在此之后,我可以运行此查询select MACHINE_DATA->RESOLUTION from COMPLEX;,但我得到null作为解决方案的输出

使用JSON作为值格式时,一切正常。是什么赋予了?有人可以指出我在做什么错吗?

0 个答案:

没有答案