[教學] 如何使用DB service

如何使用DB service

  • 建議在參考此教學操作前,可先完成線上課程 WISE-PaaS Core Level 2
  • 各組別均會收到DB secret,為APP所使用之雲端DB存取資訊,亦可根據競賽需求,自行建立新collection (MongoDB) 與tabel (Postgres)
    • Mongodb:
      • 存放Datahub節點上傳資料
      • 可使用Robo3T或Compass等MongoDB工具存取
    • PostgreSQL:
      • 存放Datahub與Dashboard configuration
      • 可使用pgadmin或dbeaver等工具存取
    • RabbitMQ:
      • DataHub MQTT broker連線資訊,可用以傳送數據上雲或監控上雲資料
      • 可使用MQTT client進行監看

MongoDB

  • 可先以VScode等編輯器,將JSON整理,並檢視mongodb部分

  • 於Robo3T為例,Connection setting

    • 於Connection將extermalHost填入host,port為27017
    • 於Authentication,勾選Perform authentication
      • database填入Database
      • username與password分別填入
      • 勾選 Manually specify visable database
        • database填入Database
      • SSH與TLS皆不要勾選
    • 點選Test確認是否可以連接
  • 連接後,可檢視Collection

    • Collection中以datahub開頭之Collection為datahub產生
      • datahub_HistRawData為Datahub接收之歷史資料,後面之編號為Datahub NodeID
    • 可自行新增collection並以mongoimport導入,供AIFS或其他APP使用

PostgreSQL

  • 以編輯器檢視JSON中的Postgres連接資訊

  • 以DBeaver為例,新增postgres連線

    • extermalHost填入host,port為5432
    • database填入Database
    • username與password分別填入
    • 點選Test Connection測試是否正確
  • 檢視Schemas,datahub schema為datahub設置數據,請勿更改以免造成錯誤

  • 可新增schema

    • Database與Owner分別選擇JSON secret內之database與username
    • 建立後在該schemas下新增Tabels
    • 新增後記得右下角save才會執行SQL指令建立tabels

RabbitMQ

  • RabbitMQ作為WISE-PaaS的Message oriented middleware(MOM),為訊息的交換場所,並不處理訊息,而是提供訊息送達、容錯負載平衡等功能。

  • 透過Publish/Subscribe方式,將地端數據以不同的Topic,交由雲端的Subscriber訂閱並處理訊息

  • 連接Rabbitmq的message broker方式如下:

    • 檢視JSON中p-rabbitmq
    • rabbitmq提供多種通訊協定,以mqtt為例,並以MQTTBox進行連接:
      • 首先取得JSON中的credentials.externalHosts
      • 並於protocol下找到mqtt
      • 並取得username, password
    • 填入mqttbox中
    • Topic部分以監看datahub node傳輸為例,監控特定節點
      • /wisepaas/scada/{nodeid}/#
    • topic也可使用萬用字元方式訂閱推播特定主題