如何使用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:
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
- datahub_HistRawData為Datahub接收之歷史資料,後面之編號為Datahub NodeID
- 可自行新增collection並以mongoimport導入,供AIFS或其他APP使用
- Collection中以datahub開頭之Collection為datahub產生
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也可使用萬用字元方式訂閱推播特定主題