Java Flink-将Avro数据流转换为表
我有卡夫卡的Avro格式的信息。这些必须转换为表,并使用SQL进行选择,然后转换为流,最后接收。 有多个具有不同Avro模式的卡夫卡主题,因此需要动态表 这是我正在使用的代码Java Flink-将Avro数据流转换为表,java,apache-flink,flink-streaming,flink-sql,Java,Apache Flink,Flink Streaming,Flink Sql,我有卡夫卡的Avro格式的信息。这些必须转换为表,并使用SQL进行选择,然后转换为流,最后接收。 有多个具有不同Avro模式的卡夫卡主题,因此需要动态表 这是我正在使用的代码 StreamExecutionEnvironment env = ...; StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env); FlinkKafkaConsumer<MyAvroClass> kafkaConsumer =
StreamExecutionEnvironment env = ...;
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
FlinkKafkaConsumer<MyAvroClass> kafkaConsumer = ...;
var kafkaInputStream = env.addSource(kafkaConsumer, "kafkaInput");
Table table = tableEnv.fromDataStream(kafkaInputStream);
tableEnv.executeSql("DESCRIBE " + table).print();
...
我无法访问项
字段的元素。当我打印表说明时,我看到项目是任意类型的
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
| name | type | null | key | extras | watermark |
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
| event_id | STRING | true | | | |
| items | LEGACY('RAW', 'ANY<java.util.List>') | true | | | |
| user | LEGACY('STRUCTURED_TYPE', 'POJO<com.company.events.User>') | true | | | |
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
|名称|类型|空|键|附加|水印|
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
|事件| id |字符串|真| | ||
|项目|遗留(“原始”、“任何”)|真实| | ||
|用户|遗留('STRUCTURED_TYPE','POJO')|真| | ||
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
如何将其转换为可用于查询项目的类型?
提前谢谢
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
| name | type | null | key | extras | watermark |
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
| event_id | STRING | true | | | |
| items | LEGACY('RAW', 'ANY<java.util.List>') | true | | | |
| user | LEGACY('STRUCTURED_TYPE', 'POJO<com.company.events.User>') | true | | | |
+------------+-------------------------------------------------------------+------+-----+--------+-----------+