У меня есть данные в этом формате
{"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 не является полем в машинных данных. Но это явно 1015 *
Я отбросил поток 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 в качестве формата значения. Что дает? Кто-нибудь может указать, что я делаю неправильно?