flink sql 复杂json解析

{
  "messageHeader" : {
    "messageID" : 2,
    "responseFlag" : -2
  },
  "messageBody" : {
    "time" : "2021-09-09T12:45:48",
    "vehicleBase" : {
      "id" : null,
      "vin" : null,
      "vehicleStatus" : 1,
      "chargeStatus" : 3
    },
    "alarmData" : {
      "alarmFlag" : 0
    },
    "drivingMotorList" : [ {
      "id" : null,
      "vin" : null,
      "sn" : 1,
      "status" : 4,
      "controllerTemp" : 62.0
    } ],
    "socStatusList" : {
      "id" : null,
      "vin" : null,
      "sn" : 1,
      "voltage" : 384.0,
      "current" : 7.0
    },
    "extremumData" : {
      "id" : null,
      "vin" : null,
      "highestVoltBatteryPkgSn" : 1,
      "highestVoltCellSn" : 48
    }
  }
}


CREATE TABLE KafkaTable (
      messageHeader row<messageID int,responseFlag int>,
    messageBody row<vehicleBase row<vehicleStatus int>,alarmData row<alarmLevel int>>
) WITH (
  'connector' = 'kafka',
  'topic' = 'user_behavior',
  'properties.bootstrap.servers' = 'localhost:9092',
  'properties.group.id' = 'testGroup',
  'scan.startup.mode' = 'earliest-offset',
  'format' = 'json'
);
CREATE TABLE sinkTable (
     obj           ROW<time1 TIME,str STRING,lg BIGINT>,
    arr           ARRAY<ROW<f1 STRING,f2 INT>>,
	map1        MAP<STRING,STRING>
) WITH (
   'connector' = 'filesystem',          
  'path' = 'file:///load/data/test', 
  'format' = 'json'
);
insert into sinkTable (obj,arr,map1)
select Row(CURRENT_TIME,'ss',123) as obj,Array[Row('f',1),Row('s',2)] as arr,Map['k1','v1','k2','v2'] as map1
 from KafkaTable;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值