Help Center/
Data Lake Insight/
FAQs/
Flink Jobs/
Flink SQL Jobs/
How Does Flink Opensource SQL Parse Nested JSON?
Updated on 2024-11-15 GMT+08:00
How Does Flink Opensource SQL Parse Nested JSON?
- Kafka message
{ "id": 1234567890, "name": "swq", "date": "1997-04-25", "obj": { "time1": "12:12:12", "str": "test", "lg": 1122334455 }, "arr": [ "ly", "zpk", "swq", "zjy" ], "rowinarr": [ { "f1": "f11", "f2": 111 }, { "f1": "f12", "f2": 222 } ], "time": "13:13:13", "timestamp": "1997-04-25 14:14:14", "map": { "flink": 123 }, "mapinmap": { "inner_map": { "key": 234 } } }
- Flink Opensource SQL
create table kafkaSource( id BIGINT, name STRING, `date` DATE, obj ROW<time1 TIME,str STRING,lg BIGINT>, arr ARRAY<STRING>, rowinarr ARRAY<ROW<f1 STRING,f2 INT>>, `time` TIME, `timestamp` TIMESTAMP(3), `map` MAP<STRING,BIGINT>, mapinmap MAP<STRING,MAP<STRING,INT>> ) with ( 'connector' = 'kafka', 'topic' = 'topic-swq-3', 'properties.bootstrap.servers' = '10.128.0.138:9092,10.128.0.119:9092,10.128.0.212:9092', 'properties.group.id' = 'swq-test', 'scan.startup.mode' = 'latest-offset', 'format' = 'json' ); create table printSink ( id BIGINT, name STRING, `date` DATE, str STRING, arr ARRAY<STRING>, nameinarray STRING, rowinarr ARRAY<ROW<f1 STRING,f2 INT>>, f2 INT, `time` TIME, `timestamp` TIMESTAMP(3), `map` MAP<STRING,BIGINT>, flink BIGINT, mapinmap MAP<STRING,MAP<STRING,INT>>, `key` INT ) with ('connector' = 'print'); insert into printSink select id, name, `date`, obj.str, arr, arr[4], rowinarr, rowinarr[1].f2, `time`, `timestamp`, `map`, `map`['flink'], mapinmap, mapinmap['inner_map']['key'] from kafkaSource;
- Result
+I(1234567890,swq,1997-04-25,test,[ly, zpk, swq, zjy],zjy,[f11,111, f12,222],111,13:13:13,1997-04-25T14:14:14,{flink=123},123,{inner_map={key=234}},234)
- Use the following methods to obtain elements in the containers of different types.
- array: array[index]
- row: row.key
- The index of an array starts from 1. Array[1] is the first element.
- The elements of an array must be of the same type, and the elements of a row can be of different types.
Parent topic: Flink SQL Jobs
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
The system is busy. Please try again later.
For any further questions, feel free to contact us through the chatbot.
Chatbot