데이터 변환 (변환) - AWS IoT SiteWise

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

데이터 변환 (변환)

변환은 자산 속성의 데이터 포인트를 한 양식에서 다른 양식으로 매핑하는 수학 표현식입니다. 변환 표현식은 자산 속성 변수, 리터럴, 연산자 및 함수로 구성됩니다. 변환된 데이터 포인트는 입력 데이터 포인트와 one-to-one 관계를 유지합니다. AWS IoT SiteWise 입력 속성이 새 데이터 포인트를 받을 때마다 변환된 새 데이터 포인트를 계산합니다.

참고

동일한 타임스탬프를 사용하여 속성을 업데이트하는 경우 다른 수신 속성의 업데이트로 인해 출력 값이 덮어쓰여질 수 있습니다.

예를 들어, 자산에 섭씨 단위의 Temperature_C라는 온도 측정 스트림이 있는 경우 Temperature_F = 9/5 * Temperature_C + 32 공식을 사용하여 각 데이터 포인트를 화씨로 변환할 수 있습니다. Temperature_C측정 스트림에서 데이터 포인트를 AWS IoT SiteWise 수신할 때마다 해당 Temperature_F 값이 몇 초 내에 계산되어 속성으로 사용할 수 있습니다. Temperature_F

변환에 둘 이상의 변수가 포함된 경우 이전에 도착한 데이터 포인트가 계산을 즉시 시작합니다. 부품 제조업체가 변환을 사용하여 제품 품질을 모니터링하는 예를 들어 보겠습니다. 제조업체는 부품 유형에 따라 다른 표준을 사용하여 다음 측정값을 사용하여 공정을 나타냅니다.

  • Part_Number ‐ 부품 유형을 식별하는 문자열.

  • Good_Count ‐ 부품이 표준을 충족할 경우 1씩 증가하는 정수.

  • Bad_Count ‐ 부품이 표준을 충족하지 않을 경우 1씩 증가하는 정수.

제조업체에서는 if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")와 같은 Quality_Monitor 변환도 생성합니다.

이 변환은 특정 부품 유형에서 생산된 불량 부품의 비율을 모니터링합니다. 부품 번호가 BLT123 이고 불량 부품의 비율이 10% (0.1) 를 초과하면 변환이 "Caution" 반환됩니다. 그렇지 않으면 변환이 "Normal"로 반환됩니다.

참고
  • Part_Number에서 다른 측정값보다 먼저 새 데이터 포인트를 받으면 Quality_Monitor 변환은 새 Part_Number 값과 최신 Good_CountBad_Count 값을 사용합니다. 오류를 방지하려면 다음 제조 실행 전에 Good_CountBad_Count를 다시 설정하세요.

  • 모든 변수에 새 데이터 포인트가 입력된 후에만 표현식을 평가하려면 지표를 사용하세요.

변환 정의 (콘솔)

AWS IoT SiteWise 콘솔에서 에셋 모델에 대한 변환을 정의할 때는 다음 파라미터를 지정합니다.

  • 이름 – 속성의 이름입니다.

  • 단위 – (선택 사항) 속성에 대한 과학적 단위(예: mm 또는 섭씨)입니다.

  • 데이터 유형 - 변환의 데이터 유형으로, 실수 또는 문자열일 수 있습니다.

  • 외부 ID — (선택 사항) 사용자 정의 ID입니다. 자세한 내용은AWS IoT SiteWise 사용 설명서외부 객체를 포함하는 참조 객체 IDs를 참조하십시오.

  • 공식 -변환 표현식입니다. 변환 표현식에서는 집계 함수나 시간 함수를 사용할 수 없습니다. 자동 완성 기능을 열려면 입력을 시작하거나 아래쪽 화살표 키를 누릅니다. 자세한 내용은 수식 표현식 사용 단원을 참조하십시오.

    중요

    변환은 정수, 실수, 부울 또는 문자열 유형인 속성을 입력할 수 있습니다. 부울은 0(거짓)와 1(참)로 변환됩니다.

    변환은 속성이 아닌 하나 이상의 특성과 원하는 수의 속성인 특성을 입력해야 합니다. AWS IoT SiteWise 는 속성이 아닌 입력 특성이 새 데이터 포인트를 수신할 때마다 새로 변환된 데이터 포인트를 계산합니다. 새 속성 값은 변환 업데이트를 시작하지 않습니다. 자산 속성 데이터 API 작업에 대한 동일한 요청 비율이 변환 계산 결과에도 적용됩니다.

    공식 표현식은 실수 또는 문자열 값만 출력할 수 있습니다. 중첩 표현식은 문자열과 같은 다른 데이터 유형을 출력할 수 있지만 공식 전체는 숫자나 문자열로 평가되어야 합니다. jp 함수를 사용하여 문자열을 숫자로 변환할 수 있습니다. 부울 값은 1(참) 또는 0(거짓)이어야 합니다. 자세한 내용은 정의되지 않은 값, 무한 값 및 오버플로우 값 단원을 참조하십시오.

자세한 내용은 에셋 모델 생성 (콘솔) 단원을 참조하십시오.

변환 정의 ()AWS CLI

를 사용하여 자산 모델의 변환을 정의할 때는 다음 매개변수를 지정합니다. AWS IoT SiteWise API

  • name - 속성의 이름입니다.

  • unit – (선택 사항) 속성에 대한 과학적 단위(예: mm 또는 섭씨)입니다.

  • dataType - 변환의 데이터 유형으로 DOUBLE 또는 STRING이어야 합니다.

  • externalId— (선택 사항) 사용자 정의 ID입니다. 자세한 내용은AWS IoT SiteWise 사용 설명서외부 객체를 포함하는 참조 객체 IDs를 참조하십시오.

  • expression – 변환 표현식입니다. 변환 표현식에서는 집계 함수나 시간 함수를 사용할 수 없습니다. 자세한 내용은 수식 표현식 사용 단원을 참조하십시오.

  • variables - 표현식에서 사용할 자산의 기타 특성을 정의하는 변수 목록입니다. 각 변수 구조에는 표현식에 사용할 간단한 이름과 해당 변수에 연결할 속성을 식별하는 value 구조가 포함되어 있습니다. value 구조에는 다음 정보가 포함되어 있습니다.

    • propertyId - 값을 입력할 속성의 ID입니다. ID 대신 속성 이름을 사용할 수 있습니다.

    중요

    변환은 정수, 실수, 부울 또는 문자열 유형의 속성을 입력할 수 있습니다. 부울은 0(거짓)와 1(참)로 변환됩니다.

    변환은 속성이 아닌 하나 이상의 특성과 원하는 수의 속성인 특성을 입력해야 합니다. AWS IoT SiteWise 는 속성이 아닌 입력 특성이 새 데이터 포인트를 수신할 때마다 새로 변환된 데이터 포인트를 계산합니다. 새 속성 값은 변환 업데이트를 시작하지 않습니다. 자산 속성 데이터 API 작업에 대한 동일한 요청 비율이 변환 계산 결과에도 적용됩니다.

    공식 표현식은 실수 또는 문자열 값만 출력할 수 있습니다. 중첩 표현식은 문자열과 같은 다른 데이터 유형을 출력할 수 있지만 공식 전체는 숫자나 문자열로 평가되어야 합니다. jp 함수를 사용하여 문자열을 숫자로 변환할 수 있습니다. 부울 값은 1(참) 또는 0(거짓)이어야 합니다. 자세한 내용은 정의되지 않은 값, 무한 값 및 오버플로우 값 단원을 참조하십시오.

예 변환 정의

다음 예는 자산의 온도 측정 데이터를 섭씨에서 화씨로 변환하는 변형 속성을 보여줍니다. 이 객체는 트랜스폼이 AssetModelProperty포함된 의 예입니다. 이 객체를 CreateAssetModel요청 페이로드의 일부로 지정하여 변환 속성을 생성할 수 있습니다. 자세한 내용은 자산 모델 생성 (AWS CLI) 단원을 참조하십시오.

{ ... "assetModelProperties": [ ... { "name": "Temperature F", "dataType": "DOUBLE", "type": { "transform": { "expression": "9/5 * temp_c + 32", "variables": [ { "name": "temp_c", "value": { "propertyId": "Temperature C" } } ] } }, "unit": "Fahrenheit" } ], ... }
예 세 개의 변수를 포함하는 변환 정의

다음 예제는 BLT123 부품의 10% 이상이 표준을 충족하지 않는 경우 경고 메시지 ("Caution") 를 반환하는 변환 속성을 보여줍니다. 그렇지 않으면 정보 메시지("Normal")를 반환합니다.

{ ... "assetModelProperties": [ ... { "name": "Quality_Monitor", "dataType": "STRING", "type": { "transform": { "expression": "if(eq(Part_Number,"BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")", "variables": [ { "name": "Part_Number", "value": { "propertyId": "Part Number" } }, { "name": "Good_Count", "value": { "propertyId": "Good Count" } }, { "name": "Bad_Count", "value": { "propertyId": "Bad Count" } } ] } } } ... }