<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大大毛 的筆記

      DDM's Note

    哪怕沒有辦法一定有說法,
    就算沒有鴿子一定有烏鴉,
    固執(zhí)無罪 夢(mèng)想有價(jià),
    讓他們驚訝.

    posts - 14, comments - 23, trackbacks - 0, articles - 58
       :: 首頁 ::  :: 聯(lián)系 ::  :: 管理

    Oracle資料推送MQTT

    Posted on 2019-04-10 15:25 大大毛 閱讀(403) 評(píng)論(0)  編輯  收藏 所屬分類: Nifi
    需求
    將資料從Oracle推至MQTT,資料結(jié)果使用JSON格式
    場(chǎng)景1:直接推送
    場(chǎng)景2:僅當(dāng)資料有變更時(shí)才推送

    解決方案
    QueryDatabaseTable --> ConvertAvroToJSON --> PublishMQTT


    Processor及其設(shè)定:
    QueryDatabaseTable作用是從DB中撈取資料,可以想象Nifi把它轉(zhuǎn)成一個(gè)Select語句在執(zhí)行


    • Database Connection Pooling Service:在Configure中設(shè)定的數(shù)據(jù)庫連接,可以在Processor Group中被共用
    • Database Type:這個(gè)設(shè)定的是Oracle。其實(shí)它與數(shù)據(jù)庫連接設(shè)定有點(diǎn)重疊,那邊已經(jīng)有指定是哪一種類型的DB,這里需要再指定,我想會(huì)不會(huì)是利用它來生成不同的Select查詢語法?
    • Table Name:表名,我這里使用的是View名稱,View其實(shí)就已經(jīng)對(duì)Table做出一些限定,可以挑選列及設(shè)定查詢條件
    • Maximum-value Columns:這個(gè)屬性很重要,如果不設(shè)定則Nifi在查詢的時(shí)候會(huì)撈取所有的資料,如果有設(shè)定某個(gè)列,則Nifi僅會(huì)撈取“新”資料
      • 例如圖上設(shè)定“BATCHID”這個(gè)列。第一次Nifi啟動(dòng)時(shí)撈取資料中最大BATCHID = 10,則下一次Nifi再次啟動(dòng)時(shí)就只會(huì)撈取BATCHID>10的資料,并且會(huì)自動(dòng)記錄下已經(jīng)撈過的最大值
      • 最大值保存在下面這里,Processor上右鍵選擇“View State”


      • 下圖可以看到當(dāng)前最新的值,點(diǎn)“Clear State”則可以將保留值清空(Nifi下次啟動(dòng)時(shí)就會(huì)撈取所有資料)

    • 對(duì)于僅需要簡(jiǎn)單拉取資料的場(chǎng)景1來說,“Maximum-value Columns”置空即可;而對(duì)于僅在資料有更新時(shí)才要拉取的場(chǎng)景2來說,則需要設(shè)定并且在View中做出一些調(diào)整才可以達(dá)成
      • 當(dāng)有資料更新時(shí),則被更新資料的BatchID會(huì)是更新的值,所以只要在View中虛擬BatchID列 = Max(BatchID),就可以達(dá)成有資料更新才要拉取的效果
    ConvertAvroToJSON,將Avro類型資料轉(zhuǎn)換為JSON,這個(gè)可以不用改設(shè)定

    PublishMQTT,將資料Publish到MQTT指定Topic
    • Broker URIMQTT的Broker地址
    • Client ID發(fā)布MQTT的Client端ID(注意不要多個(gè)Processor使用相同的Client ID,這樣Processor容易被卡死)
    • Topic發(fā)布至MQTT的Topic名稱
    • Retain MessageMQTT的遺言屬性,即是否保留推送的消息(若設(shè)為false,則僅有當(dāng)前連上MQTT的客戶端才能收到這筆消息)

    i am ddm

    主站蜘蛛池模板: 一级片在线免费看| 222www免费视频| 亚洲精品乱码久久久久久中文字幕 | 亚洲免费网站观看视频| 亚洲第一区精品观看| 特级精品毛片免费观看| 亚洲妇女无套内射精| 国产亚洲色婷婷久久99精品 | 亚洲αv在线精品糸列| 毛色毛片免费观看| 三级网站在线免费观看| 亚洲欧美日韩综合久久久| 亚洲热妇无码AV在线播放| 女人毛片a级大学毛片免费| 国产在线观看无码免费视频| 亚洲午夜电影在线观看| 亚洲毛片不卡av在线播放一区| 99视频全部免费精品全部四虎 | 最新国产乱人伦偷精品免费网站| 中中文字幕亚洲无线码| 亚洲一区二区三区在线观看精品中文| 毛片免费全部免费观看| 午夜精品免费在线观看| 产传媒61国产免费| 亚洲无码一区二区三区| 亚洲一区二区中文| 久久精品国产精品亚洲下载| 成人黄软件网18免费下载成人黄18免费视频 | 亚洲AV无码一区二区二三区入口| 午夜一级免费视频| 18禁止观看免费私人影院| 中文字幕手机在线免费看电影| 亚洲精品无码日韩国产不卡av| 亚洲综合视频在线观看| 日本亚洲成高清一区二区三区| 日本中文一区二区三区亚洲| 男人的好免费观看在线视频| 国产精品区免费视频| 中文字幕a∨在线乱码免费看| 羞羞漫画小舞被黄漫免费| 亚洲人成电影网站免费|