flink sql kafka 解析復雜json

目的:

從復雜json中提取關心的字段數據蝗拿,利用ROW的方式, 可以讓復雜的json轉變?yōu)榭刹僮鞯膕chema,然后可以通過 field as xx.xx.xx來使用
version flink 1.13.0

原始json

{
    "sln":"itn",
    "pl":"js",
    "sdk":"zg-js",
    "sdkv":"2.0",
    "owner":"zg",
    "ut":"2021-7-15 16:07:01",
    "tz":28800000,
    "debug":0,
    "ak":"xxxx",
    "usr":{
        "did":"171ebd0070d8a-02a71a3974197b-11096a4c-46500-171ebd0070e57",
        "$zg_did":12590353
    },
    "data":[
        {
            "dt":"evt",
            "pr":{
                "$ct":1626336421471,
                "$tz":28800000,
                "$sid":1626336206600,
                "$url":"https://a.xxx.com.cn/2656/m46991/#zoneclick=102782",
                "$ref":"https://a.xxx.com.cn/2656/",
                "$referrer_domain":"",
                "$eid":"viehcle_detail_page_view",
                "_platform_type":"M",
                "_project_name":"XCAR",
                "_login_status":0,
                "$zg_did":12590353,
                "$zg_sid":1626336206600,
                "$uuid":"828c1425345a42379ff4de1e6d0f6567",
                "$zg_zgid":12612355,
                "$zg_eid":115,
                "$zg_epid#_level":1498,
                "$zg_eptp#_level":"string",
                "$zg_epid#_page_name":2255,
                "$zg_eptp#_page_name":"string",
                "$zg_epid#_model_id":2613,
                "$zg_eptp#_model_id":"string",
                "$zg_epid#_sub_level":1502,
                "$zg_eptp#_sub_level":"string",
                "$zg_epid#_series_id":400,
                "$zg_eptp#_series_id":"string",
                "$zg_epid#_first_category":398,
                "$zg_eptp#_first_category":"string",
                "$zg_epid#_series_or_model":1503,
                "$zg_eptp#_series_or_model":"string",
                "$zg_epid#_brand":1501,
                "$zg_eptp#_brand":"string",
                "$zg_epid#_model":2614,
                "$zg_eptp#_model":"string",
                "$zg_epid#_platform_type":1490,
                "$zg_eptp#_platform_type":"string",
                "$zg_epid#_sub_brand":1497,
                "$zg_eptp#_sub_brand":"string",
                "$zg_epid#_login_status":1488,
                "$zg_eptp#_login_status":"number",
                "$zg_epid#_sub_brand_id":2611,
                "$zg_eptp#_sub_brand_id":"string",
                "$zg_epid#_energy":2612,
                "$zg_eptp#_energy":"string",
                "$zg_epid#_year":1499,
                "$zg_eptp#_year":"string",
                "$zg_epid#_structure":1500,
                "$zg_eptp#_structure":"string",
                "$zg_epid#_price_range":1506,
                "$zg_eptp#_price_range":"string",
                "$zg_epid#_brand_id":1507,
                "$zg_eptp#_brand_id":"string",
                "$zg_epid#_status":2677,
                "$zg_eptp#_status":"string",
                "$zg_epid#_project_name":1489,
                "$zg_eptp#_project_name":"string",
                "$zg_epid#_series":1505,
                "$zg_eptp#_series":"string"
            }
        },
        {
            "dt":"zgid",
            "pr":{
                "$ct":1626336421471,
                "$zg_did":12590353,
                "$tz":28800000,
                "$zg_zgid":12612355
            }
        },
        {
            "dt":"pl",
            "pr":{
                "$dv":"x'x.io",
                "$zg_did":12590353
            }
        }
    ],
    "ip":"39.144.27.100",
    "st":1626336451683,
    "ua":"Mozilla/5.0 (Linux; Android 10; MED-AL00; HMSCore 6.0.0.305) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.93 HuaweiBrowser/11.1.2.301 Mobile Safari/537.36",
    "plat":3,
    "app_id":6,
    "@version":"1",
    "@timestamp":"2021-07-15T08:07:12.661Z"
}
CREATE TABLE kafka_test (
    usr ROW<did string,`$zg_did` string>,
    data ARRAY<ROW<dt STRING,pr ROW<`$zg_zgid` STRING,`$cuid` STRING,`_jpush_id` STRING>>>,
    deviceId as usr.`$zg_did`,
    zg_id as data[1].pr.`$zg_zgid`,
    uid as data[1].pr.`$cuid`,
    jpush_id as data[1].pr.`_jpush_id`
)
WITH (
    'connector' = 'kafka',
    'topic' = 'zg_log',
    'properties.bootstrap.servers' = 'xxx:9092',
    'properties.group.id' = 'test_group_zg_log',
    'format' = 'json',
    'scan.startup.mode' = 'latest-offset',
    'json.fail-on-missing-field' = 'false',
    'json.ignore-parse-errors' = 'false' 
);
CREATE TABLE print_table (
    deviceId STRING,
    zg_id STRING,
    uid STRING,
    jpush_id STRING
) WITH (
    'connector' = 'print'
);
insert into print_table select deviceId,zg_id,uid,jpush_id from kafka_test;

參考
https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/table/formats/json/
https://blog.csdn.net/xianpanjia4616/article/details/112690791
https://blog.csdn.net/YouLoveItY/article/details/108276799

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末辛慰,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子速客,更是在濱河造成了極大的恐慌位喂,老刑警劉巖七冲,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機朋截,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剧蹂,“玉大人,你說我怎么就攤上這事冒冬∫』茫” “怎么了囚企?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵辆影,是天一觀的道長。 經常有香客問我,道長迫像,這世上最難降的妖魔是什么掠械? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任浸卦,我火速辦了婚禮,結果婚禮上怒医,老公的妹妹穿的比我還像新娘拿诸。我一直安慰自己,他們只是感情好鞭光,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邀层。 梳的紋絲不亂的頭發(fā)上寥院,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死嗤无,一個胖子當著我的面吹牛嘉栓,可吹牛的內容都是我干的馋辈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起题篷,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤法严,失蹤者是張志新(化名)和其女友劉穎溯街,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體堤尾,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡剩蟀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了怀薛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霸妹。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖棚壁,靈堂內的尸體忽然破棺而出杯矩,到底是詐尸還是另有隱情,我是刑警寧澤袖外,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布史隆,位于F島的核電站,受9級特大地震影響曼验,放射性物質發(fā)生泄漏泌射。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一鬓照、第九天 我趴在偏房一處隱蔽的房頂上張望熔酷。 院中可真熱鬧,春花似錦豺裆、人聲如沸拒秘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躺酒。三九已至,卻和暖如春蔑歌,著一層夾襖步出監(jiān)牢的瞬間羹应,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工次屠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留园匹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓劫灶,卻偏偏與公主長得像偎肃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子浑此,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354