本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定資料保留流程
資料保留流程可用來維持邊緣的操作可見性。這在網路中斷期間或當您需要立即存取資料時非常有用。此流程會訂閱 MQTT 代理程式以接收裝置資料、將其轉換為 InfluxDB® 格式,並將其儲存在本機。透過實作此流程,您可以建立彈性的本機資料存放區,讓操作員無需雲端相依性即可存取,從而在邊緣進行即時監控和決策。
流程由三個關鍵元件組成,共同確保正確擷取和存放您的資料:
-
MQTT 訂閱用戶端 - 從代理程式接收資料,確保您擷取所有相關工業資料
-
InfluxDB 轉譯器 - 將 AWS IoT SiteWise 承載轉換為 InfluxDB 格式,準備資料以實現高效的時間序列儲存
-
InfluxDB 寫入器 - 處理本機儲存,確保本機應用程式的資料持久性和可用性

設定 MQTT 訂閱用戶端
-
匯入以下範例,在 Node-RED 中設定 MQTT 訂閱用戶端,以接收來自 AWS IoT SiteWise 中 MQTT EMQX 代理程式的資料。
範例 :節點中的 MQTT
[ { "id": "string", "type": "mqtt in", "z": "string", "name": "Subscribe to MQTT broker", "topic": "
/Renton/WindFarm/Turbine/WindSpeed
", "qos": "1
", "datatype": "auto-detect", "broker": "string", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 290, "y": 340, "wires": [ [ "string" ] ] }, { "id": "string", "type": "mqtt-broker", "name": "emqx", "broker": "127.0.0.1", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "5", "keepalive": 15, "cleansession": true, "autoUnsubscribe": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" } ]
此訂閱可確保為本機儲存擷取發佈至代理程式的所有相關資料,並提供工業操作的完整記錄。節點使用與 設定 MQTT 發佈者區段相同的 MQTT 連線參數,具有下列訂閱設定:
-
主題 –
/Renton/WindFarm/Turbine/WindSpeed
-
QoS –
1
如需詳細資訊,請參閱 Node-RED 文件中的連線至 MQTT 中介
設定 InfluxDB 轉譯器
InfluxDB 會使用索引的標籤
-
標籤 – 有效率索引的品質和名稱屬性
-
欄位 – 時間戳記 (自 epoch 起以毫秒為單位) 和值
範例 :轉換為 InfluxDB 承載的函數節點
[ { "id": "string", "type": "function", "z": "string", "name": "Translate to InfluxDB payload", "func": "let data = msg.payload;\n\nlet timeInSeconds = data.propertyValues[0].timestamp.timeInSeconds;\nlet offsetInNanos = data.propertyValues[0].timestamp.offsetInNanos;\nlet timestampInMilliseconds = (timeInSeconds * 1000) + (offsetInNanos / 1000000);\n\nmsg.payload = [\n {\n \"timestamp(milliseconds_since_epoch)\": timestampInMilliseconds,\n \"value\": data.propertyValues[0].value.doubleValue\n },\n {\n \"name\": data.propertyAlias,\n \"quality\": data.propertyValues[0].quality\n }\n]\n\nreturn msg", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 560, "y": 340, "wires": [ [ "string" ] ] } ]
如需其他組態選項,請參閱 Node-RED GitHub 儲存庫中的 node-red-contrib-influxdb
設定 InfluxDB 寫入器
InfluxDB 寫入器節點是資料保留流程中的最終元件,負責將工業資料儲存在本機 InfluxDB 資料庫中。此本機儲存對於在網路中斷期間維持操作可見性,並提供對時間關鍵型應用程式資料的立即存取至關重要。
-
透過管理調色盤選項安裝 node-red-contrib-influxdb 套件。此套件提供將 Node-RED 與 InfluxDB 連線所需的節點。
-
將 InfluxDB 輸出節點新增至流程。此節點將處理將資料實際寫入 InfluxDB 資料庫的過程。
-
設定伺服器屬性以建立與 InfluxDB 執行個體的安全連線:
-
將版本設定為 2.0 - 這會指定您要連線至 InfluxDB v2.x,這會使用與舊版不同的 API
-
將 URL 設定為
http://127.0.0.1:8086
- 這指向您的本機 InfluxDB 執行個體 -
輸入您的 InfluxDB 身分驗證字符。此安全字符會授權與資料庫的連線。您在使用 InfluxDB 設定本機儲存程序期間產生權杖。
-
-
指定儲存位置參數,以定義資料的存放位置和方式:
-
輸入您的 InfluxDB 組織名稱 – 組織是一組使用者的工作區,您的儲存貯體和儀表板屬於其中。如需詳細資訊,請參閱《》中的管理組織
InfluxData Documentation。 -
指定 InfluxDB 儲存貯體 (例如
WindFarmData
) – 儲存貯體等同於傳統系統中的資料庫,可作為時間序列資料的容器 -
設定 InfluxDB 測量 (例如
TurbineData
) – 測量類似於關聯式資料庫中的資料表,可組織相關資料點
-
注意
在 InfluxDB 執行個體的左側邊欄中尋找您的組織名稱。組織、儲存貯體和測量概念是 InfluxDB 資料組織模型的基礎。如需詳細資訊,請參閱 InfluxDB 文件
部署和驗證保留流程
設定資料保留流程的所有元件之後,您需要部署並驗證系統是否正常運作。此驗證可確保您的工業資料在本機正確存放,以便立即存取和分析。
-
連接三個節點,如資料保留流程圖所示。這會建立從資料訂閱到本機儲存的完整管道。
-
選擇部署以套用變更並啟用流程。這會啟動資料收集和儲存程序。
-
使用 InfluxDB Data Explorer 查詢和視覺化您的資料。此工具可讓您驗證資料是否已正確儲存,並建立時間序列資料的初始視覺化。
在 Data Explorer 中,您應該能夠查看隨時間記錄的風速測量結果,確認從產生資料到本機儲存的整個管道都正常運作。
如需詳細資訊,請參閱《》中的在 Data Explorer 中查詢
InfluxData Documentation。
部署資料發佈流程和資料保留流程後,您現在擁有將資料傳送至 AWS IoT SiteWise 雲端的完整系統,同時保留本機複本以立即存取和恢復能力。這種雙路徑方法可確保您獲得雲端型分析和儲存的優勢,同時保持邊緣的操作可見性。