

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# データ保持フローを設定する
<a name="windows-nodered-data-retention-flow"></a>

データ保持フローを使用して、エッジでの運用の可視性を維持できます。これは、ネットワークの中断時や、データへの即時アクセスが必要な場合に便利です。このフローは、MQTT ブローカーにサブスクライブしてデバイスデータを受信し、InfluxDB形式に変換してローカルに保存します。このフローを実装することで、オペレーターがクラウド依存関係なしでアクセスできる回復力のあるローカルデータストアを作成し、エッジでのリアルタイムのモニタリングと意思決定を可能にします。

このフローは、データが適切にキャプチャおよび保存されるように連携する 3 つの主要コンポーネントで構成されます。
+ **MQTT サブスクリプションクライアント** - ブローカーからデータを受信し、関連するすべての産業データをキャプチャします
+ **InfluxDB トランスレーター** - AWS IoT SiteWise ペイロードを InfluxDB 形式に変換し、効率的な時系列ストレージ用にデータを準備します
+ **InfluxDB ライター** - ローカルストレージを処理し、ローカルアプリケーションのデータの永続性と可用性を確保します

![Node-RED データ保持フロー](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)


## MQTT サブスクリプションクライアントを設定する
<a name="windows-nodered-mqtt-subscriber"></a>
+ 以下の例をインポート AWS IoT SiteWise して、 で MQTT EMQX ブローカーからデータを受信するように Node-RED で MQTT サブスクリプションクライアントを設定します。  
**Example : ノードの 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 パブリッシャーを設定する](windows-nodered-data-publish-flow.md#windows-nodered-mqtt-publisher-config)セクションと同じ MQTT 接続パラメータを使用します。
+ トピック – `/Renton/WindFarm/Turbine/WindSpeed`
+ QoS – `1`

詳細については、 *Node-REDドキュメント*[の「MQTT ブローカーに接続する](https://cookbook.nodered.org/mqtt/connect-to-broker)」を参照してください。

## InfluxDB トランスレーターを設定する
<a name="windows-nodered-influxdb-translator"></a>

InfluxDB は、インデックス作成用の[タグ](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#tag)と値の[フィールド](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#field)を使用してデータを整理します。この組織は、時系列データのクエリパフォーマンスとストレージ効率を最適化します。 AWS IoT SiteWise ペイロードを InfluxDB 形式に変換する JavaScript コードを含むサンプル関数ノードをインポートします。翻訳者はプロパティを 2 つのグループに分割します。
+ タグ – 効率的なインデックス作成のための品質と名前のプロパティ
+ フィールド – タイムスタンプ (エポックからのミリ秒単位) と値

**Example : 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](https://github.com/mblackstock/node-red-contrib-influxdb) を参照してください。 GitHub 

## InfluxDB ライターをセットアップする
<a name="windows-nodered-influxdb-writer"></a>

InfluxDB ライターノードは、データ保持フローの最終コンポーネントであり、産業用データをローカル InfluxDB データベースに保存します。このローカルストレージは、ネットワークの中断時に運用上の可視性を維持し、タイムクリティカルなアプリケーションのデータへの即時アクセスを提供する上で重要です。

1. パレットの管理オプションを使用して node-red-contrib-influxdb パッケージをインストールします。このパッケージは、Node-RED を InfluxDB に接続するために必要なノードを提供します。

1. InfluxDB 出力ノードをフローに追加します。このノードは、InfluxDB データベースへのデータの実際の書き込みを処理します。

1. InfluxDB インスタンスへの安全な接続を確立するようにサーバープロパティを設定します。

   1. バージョンを 2.0 に設定する - これは、以前のバージョンとは異なる API を使用する InfluxDB v2.x に接続することを指定します。

   1. URL を に設定する `http://127.0.0.1:8086` - これはローカル InfluxDB インスタンスを指します

   1. InfluxDB 認証トークンを入力します。この安全なトークンは、データベースへの接続を承認します。[InfluxDB でローカルストレージをセットアップする](windows-influxdb-setup.md) 手順中にトークンを生成しました。

1. ストレージの場所パラメータを指定して、データの保存場所と保存方法を定義します。

   1. InfluxDB 組織名を入力 – 組織は、バケットとダッシュボードが属するユーザーのグループのワークスペースです。詳細については、『』の[「組織の管理](https://docs.influxdata.com/influxdb/v2/admin/organizations/)」を参照してください*InfluxData Documentation*。

   1. InfluxDB バケットを指定する ( など`WindFarmData`) – バケットは従来のシステムのデータベースと同等であり、時系列データのコンテナとして機能します。

   1. InfluxDB 測定の設定 (例: `TurbineData`) – 測定値はリレーショナルデータベースのテーブルに似ており、関連するデータポイントを整理します。

**注記**  
InfluxDB インスタンスの左側のサイドバーで組織名を見つけます。組織、バケット、測定の概念は、InfluxDB のデータ組織モデルの基本です。詳細については、[InfluxDB ドキュメント](https://docs.influxdata.com/influxdb/v2/admin/organizations/)を参照してください。

## 保持フローをデプロイして検証する
<a name="windows-nodered-retention-deploy"></a>

データ保持フローのすべてのコンポーネントを設定したら、システムが正しく動作していることをデプロイして確認する必要があります。この検証により、産業データがローカルに適切に保存され、すぐにアクセスして分析できるようになります。

1. データ保持フロー図に示すように、3 つのノードを接続します。これにより、データサブスクリプションからローカルストレージへの完全なパイプラインが作成されます。  
![Node-RED データ保持フロー](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)

1. **デプロイ**を選択して変更を適用し、フローをアクティブ化します。これにより、データ収集とストレージプロセスが開始されます。

1. InfluxDB Data Explorer を使用して、データのクエリと視覚化を行います。このツールを使用すると、データが適切に保存されていることを検証し、時系列データの初期ビジュアライゼーションを作成できます。

   Data Explorer では、風速測定値が時間の経過とともに記録され、データ生成からローカルストレージまでのパイプライン全体が正しく機能していることを確認できます。

   詳細については、の[「Data Explorer でのクエリ](https://docs.influxdata.com/influxdb/v2/query-data/execute-queries/data-explorer/)」を参照してください*InfluxData Documentation*。

データ公開フローとデータ保持フローの両方がデプロイされたことで、即時のアクセスと回復性のためにローカルコピーを維持しながら、 AWS IoT SiteWise クラウドにデータを送信する完全なシステムが利用可能になりました。このデュアルパスアプローチにより、エッジでの運用の可視性を維持しながら、クラウドベースの分析とストレージの利点を得ることができます。