데이터 보존 흐름 구성 - AWS IoT SiteWise

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

데이터 보존 흐름 구성

데이터 보존 흐름은 엣지에서 운영 가시성을 유지하는 데 사용할 수 있습니다. 이는 네트워크 중단 시 또는 데이터에 즉시 액세스해야 하는 경우에 유용합니다. 이 흐름은 MQTT 브로커를 구독하여 디바이스 데이터를 수신하고 InfluxDB® 형식으로 변환한 다음 로컬에 저장합니다. 이 흐름을 구현하면 운영자가 클라우드 종속성 없이 액세스할 수 있는 복원력이 뛰어난 로컬 데이터 스토어를 생성하여 엣지에서 실시간 모니터링 및 의사 결정을 수행할 수 있습니다.

흐름은 데이터를 올바르게 캡처하고 저장하기 위해 함께 작동하는 세 가지 주요 구성 요소로 구성됩니다.

  • MQTT 구독 클라이언트 - 브로커로부터 데이터를 수신하여 모든 관련 산업 데이터를 캡처합니다.

  • InfluxDB 변환기 - AWS IoT SiteWise 페이로드를 InfluxDB 형식으로 변환하여 효율적인 시계열 스토리지를 위한 데이터 준비

  • InfluxDB 라이터 - 로컬 스토리지를 처리하여 로컬 애플리케이션의 데이터 지속성 및 가용성 보장

Node-RED 데이터 보존 흐름

MQTT 구독 클라이언트 설정

  • 아래 예제를 가져 AWS IoT SiteWise 와서에서 MQTT EMQX 브로커로부터 데이터를 수신하도록 Node-RED로 MQTT 구독 클라이언트를 구성합니다.

    예 : 노드의 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는 인덱싱에 태그를 사용하고 값에 필드를 사용하여 데이터를 구성합니다. 이 조직은 시계열 데이터의 쿼리 성능과 스토리지 효율성을 최적화합니다. JavaScript 코드가 포함된 예제 함수 노드를 가져와 AWS IoT SiteWise 페이로드를 InfluxDB 형식으로 변환합니다. 변환기는 속성을 두 그룹으로 분할합니다.

  • 태그 - 효율적인 인덱싱을 위한 품질 및 이름 속성

  • 필드 - 타임스탬프(에포크 이후 밀리초) 및 값

예 : 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를 참조하세요. GitHub

InfluxDB 라이터 설정

InfluxDB 라이터 노드는 데이터 보존 흐름의 최종 구성 요소로, 산업 데이터를 로컬 InfluxDB 데이터베이스에 저장하는 역할을 합니다. 이 로컬 스토리지는 네트워크 중단 시 운영 가시성을 유지하고 시간이 중요한 애플리케이션의 데이터에 즉시 액세스할 수 있도록 하는 데 중요합니다.

  1. 팔레트 관리 옵션을 통해 node-red-contrib-influxdb 패키지를 설치합니다. 이 패키지는 Node-RED를 InfluxDB와 연결하는 데 필요한 노드를 제공합니다.

  2. 흐름에 InfluxDB 출력 노드를 추가합니다. 이 노드는 InfluxDB 데이터베이스에 대한 실제 데이터 쓰기를 처리합니다.

  3. InfluxDB 인스턴스에 대한 보안 연결을 설정하도록 서버 속성을 구성합니다.

    1. 버전을 2.0으로 설정 - 이전 버전과 다른 API를 사용하는 InfluxDB v2.x에 연결하도록 지정합니다.

    2. URL을 로 설정 http://127.0.0.1:8086 - 로컬 InfluxDB 인스턴스를 가리킵니다.

    3. InfluxDB 인증 토큰을 입력합니다. 이 보안 토큰은 데이터베이스에 대한 연결을 승인합니다. InfluxDB를 사용하여 로컬 스토리지 설정 절차 중에 토큰을 생성했습니다.

  4. 스토리지 위치 파라미터를 지정하여 데이터가 저장되는 위치와 방법을 정의합니다.

    1. InfluxDB 조직 이름 입력 - 조직은 버킷과 대시보드가 속한 사용자 그룹을 위한 워크스페이스입니다. 자세한 내용은의 조직 관리를 참조하세요InfluxData Documentation.

    2. InfluxDB 버킷 지정(예: WindFarmData) - 버킷은 시계열 데이터의 컨테이너 역할을 하는 기존 시스템의 데이터베이스와 동일합니다.

    3. InfluxDB 측정 설정(예: TurbineData) - 측정은 관계형 데이터베이스의 테이블과 유사하여 관련 데이터 포인트를 구성합니다.

참고

InfluxDB 인스턴스의 왼쪽 사이드바에서 조직 이름을 찾습니다. 조직, 버킷 및 측정 개념은 InfluxDB의 데이터 조직 모델의 기본입니다. 자세한 내용은 InfluxDB 설명서를 참조하세요.

보존 흐름 배포 및 확인

데이터 보존 흐름의 모든 구성 요소를 구성한 후에는 시스템이 올바르게 작동하는지 배포하고 확인해야 합니다. 이 확인을 통해 산업 데이터가 즉각적인 액세스 및 분석을 위해 로컬에 올바르게 저장되고 있는지 확인할 수 있습니다.

  1. 데이터 보존 흐름도에 표시된 대로 노드 3개를 연결합니다. 이렇게 하면 로컬 스토리지에 대한 데이터 구독에서 전체 파이프라인이 생성됩니다.

    Node-RED 데이터 보존 흐름
  2. 배포를 선택하여 변경 사항을 적용하고 흐름을 활성화합니다. 그러면 데이터 수집 및 스토리지 프로세스가 시작됩니다.

  3. InfluxDB Data Explorer를 사용하여 데이터를 쿼리하고 시각화합니다. 이 도구를 사용하면 데이터가 올바르게 저장되고 있는지 확인하고 시계열 데이터의 초기 시각화를 생성할 수 있습니다.

    Data Explorer에서 시간 경과에 따른 풍속 측정값이 기록되는 것을 확인하여 데이터 생성부터 로컬 스토리지까지 전체 파이프라인이 올바르게 작동하는지 확인할 수 있습니다.

    자세한 내용은 의 Data Explorer에서 쿼리를 참조하세요InfluxData Documentation.

데이터 게시 흐름과 데이터 보존 흐름이 모두 배포되면 이제 즉각적인 액세스와 복원력을 위해 로컬 복사본을 AWS IoT SiteWise 유지하면서 클라우드로 데이터를 전송하는 완전한 시스템을 갖게 됩니다. 이 이중 경로 접근 방식을 사용하면 클라우드 기반 분석 및 스토리지의 이점을 얻는 동시에 엣지에서 운영 가시성을 유지할 수 있습니다.