我有这种格式的数据
{"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作为值格式时,一切正常。是什么赋予了?有人可以指出我在做什么错吗?