国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flink:FlinkSql解析嵌套Json

這篇具有很好參考價(jià)值的文章主要介紹了Flink:FlinkSql解析嵌套Json。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

日常開(kāi)發(fā)中都是用的簡(jiǎn)便json格式,但是偶爾也會(huì)遇到嵌套json的時(shí)候,因此在用flinksql的時(shí)候就有點(diǎn)麻煩,下面用簡(jiǎn)單例子簡(jiǎn)單定義處理下

1,數(shù)據(jù)是網(wǎng)上摘抄,但包含里常用的大部分格式

{
?? ?"afterColumns": {
?? ??? ?"created": "1589186680",
?? ??? ?"extra": {
?? ??? ??? ?"canGiving": false
?? ??? ?},
?? ??? ?"parameter": [1, 2, 3, 4]
?? ?},
?? ?"beforeColumns": null,
?? ?"tableVersion": {
?? ??? ?"binlogFile": null,
?? ??? ?"binlogPosition": 0,
?? ??? ?"version": 0
?? ?},
?? ?"touchTime": 1589186680591,
? ? "type":3,
?? ?"arr": [{
?? ??? ?"address": "北京市海淀區(qū)",
?? ??? ?"city": "beijing"
?? ?}, {
?? ??? ?"address": "北京市海淀區(qū)",
?? ??? ?"city": "beijing"
?? ?}, {
?? ??? ?"address": "北京市海淀區(qū)",
?? ??? ?"city": "beijing"
?? ?}]
}

注意:

Json 中的每個(gè) {} 都需要用 Row 類(lèi)型來(lái)表示
Json 中的每個(gè) [] 都需要用 Arrary 類(lèi)型來(lái)表示
數(shù)組的下標(biāo)是從 1 開(kāi)始的不是 0?
查詢(xún)select時(shí),關(guān)鍵字需要加反引號(hào) 如上面 SQL 中的 `type`
select 語(yǔ)句中的字段類(lèi)型和順序一定要和結(jié)果表的字段類(lèi)型和順序保持一致

因此:FlinkSql語(yǔ)句應(yīng)該為

CREATE TABLE kafka_source (
? ? afterColumns ROW(created STRING,extra ROW(canGiving BOOLEAN),`parameter` ARRAY <INT>) ,
? ? beforeColumns STRING ,
? ? tableVersion ROW(binlogFile STRING,binlogPosition INT ,version INT) ,
? ? touchTime bigint,?
? ? `type` INT,
? ? arr ARRAY<ROW<address STRING,city STRING>>
) WITH (
? ? 'connector' = 'kafka', -- 使用 kafka connector
? ? 'topic' = 'test', ?-- kafka topic
? ? 'properties.bootstrap.servers' = 'master:9092,storm1:9092,storm2:9092', ?-- broker連接信息
? ? 'properties.group.id' = 'jason_flink_test', -- 消費(fèi)kafka的group_id
? ? 'scan.startup.mode' = 'latest-offset', ?-- 讀取數(shù)據(jù)的位置
? ? 'format' = 'json', ?-- 數(shù)據(jù)源格式為 json
? ? 'json.fail-on-missing-field' = 'true', -- 字段丟失任務(wù)不失敗
? ? 'json.ignore-parse-errors' = 'false' ?-- 解析失敗跳過(guò)
)

2,數(shù)據(jù)格式以及對(duì)應(yīng)的flinksql格式Flink:FlinkSql解析嵌套Json

?

引自:https://blog.csdn.net/qq_21383435/article/details/124889251文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-408057.html

到了這里,關(guān)于Flink:FlinkSql解析嵌套Json的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Flink實(shí)戰(zhàn)-(6)FlinkSQL實(shí)現(xiàn)CDC

    FlinkSQL說(shuō)明 Flink SQL 是 Flink 實(shí)時(shí)計(jì)算為簡(jiǎn)化計(jì)算模型,降低用戶(hù)使用實(shí)時(shí)計(jì)算門(mén)檻而設(shè)計(jì)的一套符合標(biāo)準(zhǔn) SQL 語(yǔ)義的開(kāi)發(fā)語(yǔ)言。 自 2015 年開(kāi)始,阿里巴巴開(kāi)始調(diào)研開(kāi)源流計(jì)算引擎,最終決定基于 Flink 打造新一代計(jì)算引擎,針對(duì) Flink 存在的不足進(jìn)行優(yōu)化和改進(jìn),并且在 2019 年初

    2023年04月26日
    瀏覽(26)
  • flink學(xué)習(xí)35:flinkSQL查詢(xún)mysql

    flink學(xué)習(xí)35:flinkSQL查詢(xún)mysql

    import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment import org.apache.flink.table.api.EnvironmentSettings import org.apache.flink.table.api.bridge.scala.{StreamTableEnvironment, tableConversions} object sqlQueryTable { ? def main(args: Array[String]): Unit = { ??? //create env ??? val env = StreamExecutionEnvironment.getExecutionEnv

    2023年04月23日
    瀏覽(19)
  • 【Flink系列七】TableAPI和FlinkSQL初體驗(yàn)

    【Flink系列七】TableAPI和FlinkSQL初體驗(yàn)

    Apache Flink 有兩種關(guān)系型 API 來(lái)做流批統(tǒng)一處理:Table API 和 SQL Table API 是用于 Scala 和 Java 語(yǔ)言的查詢(xún)API,它可以用一種非常直觀的方式來(lái)組合使用選取、過(guò)濾、join 等關(guān)系型算子。 ?Flink SQL 是基于?Apache Calcite?來(lái)實(shí)現(xiàn)的標(biāo)準(zhǔn) SQL。無(wú)論輸入是連續(xù)的(流式)還是有界的(批處理

    2024年02月03日
    瀏覽(22)
  • 【Flink】FlinkSQL中執(zhí)行計(jì)劃以及如何用代碼看執(zhí)行計(jì)劃

    FilnkSQL怎么查詢(xún)優(yōu)化 Apache Flink 使用并擴(kuò)展了 Apache Calcite 來(lái)執(zhí)行復(fù)雜的查詢(xún)優(yōu)化。 這包括一系列基于規(guī)則和成本的優(yōu)化,例如: ? 基于 Apache Calcite 的子查詢(xún)解相關(guān) ? 投影剪裁 ? 分區(qū)剪裁 ? 過(guò)濾器下推 ? 子計(jì)劃消除重復(fù)數(shù)據(jù)以避免重復(fù)計(jì)算 ? 特殊子查詢(xún)重寫(xiě),包括兩部

    2023年04月11日
    瀏覽(24)
  • 【Flink】FlinkSQL讀取Mysql表中時(shí)間字段相差13個(gè)小時(shí)

    問(wèn)題:Flink版本1.13,在我們使用FlinkSQL讀取Mysql中數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)讀取出來(lái)的時(shí)間字段中的數(shù)據(jù)和Mysql表中的數(shù)據(jù)相差13個(gè)小時(shí),Mysql建表語(yǔ)句及插入的數(shù)據(jù)如下; CREATE TABLE `mysql_example` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT \\\'自增ID\\\', `name` varchar(64) DEFAULT NULL COMMENT \\\'姓名\\\'

    2024年01月19日
    瀏覽(17)
  • 基于 Dinky + FlinkSQL + Flink CDC 同步 MySQL 數(shù)據(jù)到 Elasticsearch、Kafka

    基于 Dinky + FlinkSQL + Flink CDC 同步 MySQL 數(shù)據(jù)到 Elasticsearch、Kafka

    Dinky 是一個(gè)開(kāi)箱即用的一站式實(shí)時(shí)計(jì)算平臺(tái)以 Apache Flink 為基礎(chǔ),連接 OLAP 和數(shù)據(jù)湖等眾多框架致力于流批一體和湖倉(cāng)一體的建設(shè)與實(shí)踐。本文以此為FlinkSQL可視化工具。 Flink SQL 使得使用標(biāo)準(zhǔn) SQL 開(kāi)發(fā)流式應(yīng)用變得簡(jiǎn)單,免去代碼開(kāi)發(fā)。 Flink CDC 本文使用 MySQL CDC 連接器 允許從

    2024年02月16日
    瀏覽(19)
  • FlinkAPI開(kāi)發(fā)之FlinkSQL

    FlinkAPI開(kāi)發(fā)之FlinkSQL

    這里的依賴(lài)是一個(gè)Java的“橋接器”(bridge),主要就是負(fù)責(zé)Table API和下層DataStream API的連接支持,按照不同的語(yǔ)言分為Java版和Scala版。 如果我們希望在本地的集成開(kāi)發(fā)環(huán)境(IDE)里運(yùn)行Table API和SQL,還需要引入以下依賴(lài): 對(duì)于Flink這樣的流處理框架來(lái)說(shuō),數(shù)據(jù)流和表在結(jié)構(gòu)上

    2024年01月25日
    瀏覽(13)
  • 袋鼠云的FlinkSQL插件開(kāi)發(fā)

    袋鼠云的FlinkSQL插件開(kāi)發(fā)

    袋鼠云是一家大數(shù)據(jù)產(chǎn)品供應(yīng)商。他開(kāi)發(fā)了一個(gè)產(chǎn)品叫做 flinkStreamSQL。這東西是以 Flink 為基礎(chǔ)開(kāi)發(fā)的使用 SQL 來(lái)寫(xiě)流式計(jì)算邏輯的產(chǎn)品。 FlinkStreamSQL 的開(kāi)源地址 這里所說(shuō)的插件是可以理解為自定義的語(yǔ)法。例如下面的 SQL: dim_shop 可能是一個(gè) redis 為實(shí)體的 Table ,這袋鼠已經(jīng)

    2024年02月06日
    瀏覽(17)
  • 深入理解flinksql執(zhí)行流程,calcite與catalog相關(guān)概念,擴(kuò)展解析器實(shí)現(xiàn)語(yǔ)法的擴(kuò)展

    深入理解flinksql執(zhí)行流程,calcite與catalog相關(guān)概念,擴(kuò)展解析器實(shí)現(xiàn)語(yǔ)法的擴(kuò)展

    flink在執(zhí)行sql語(yǔ)句時(shí),是無(wú)法像java/scala代碼一樣直接去使用的,需要解析成電腦可以執(zhí)行的語(yǔ)言,對(duì)sql語(yǔ)句進(jìn)行解析轉(zhuǎn)化。 這里說(shuō)的我感覺(jué)其實(shí)不是特別準(zhǔn)確,應(yīng)該是 flink使用的是一款開(kāi)源SQL解析工具Apache Calcite ,Calcite使用Java CC對(duì)sql語(yǔ)句進(jìn)行了解析 。 那么我們先來(lái)簡(jiǎn)單說(shuō)

    2024年02月21日
    瀏覽(21)
  • calcite在flink中的二次開(kāi)發(fā),介紹解析器與優(yōu)化器

    calcite在flink中的二次開(kāi)發(fā),介紹解析器與優(yōu)化器

    關(guān)于calcite的概念相關(guān)的內(nèi)容,在我另一篇帖子 深入理解flinksql執(zhí)行流程,擴(kuò)展解析器實(shí)現(xiàn)語(yǔ)法的擴(kuò)展 首先闡述一下 codegen: Codegen是基于ObjectWeb ASM的低開(kāi)銷(xiāo)的java代碼生成器,他可以根據(jù)預(yù)先填好的規(guī)則與條件,通過(guò)編譯代碼,自動(dòng)生成java類(lèi) 在遞歸調(diào)用各個(gè)節(jié)點(diǎn) DataStreamRel 的

    2024年02月22日
    瀏覽(128)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包