공식 표현식 튜토리얼 - AWS IoT SiteWise

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

공식 표현식 튜토리얼

이 튜토리얼을 따라 AWS IoT SiteWise에서 공식 표현식을 사용할 수 있습니다.

공식에서 문자열 사용

공식 표현식의 문자열에 대해 작업을 할 수 있습니다. 속성 및 측정 속성을 참조하는 변수에서 문자열을 입력할 수도 있습니다.

중요

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

AWS IoT SiteWise 문자열 연산에 사용할 수 있는 다음과 같은 수식 표현식 기능을 제공합니다.

데이터 포인트 필터링

if 함수를 사용하여 조건을 충족하지 않는 데이터 요소를 필터링할 수 있습니다. if 함수는 조건을 평가하여 truefalse 결과에 대해 서로 다른 값을 반환합니다. none 상수if 함수의 한 케이스에 대한 출력값으로 사용하여 해당 케이스의 데이터 포인트를 버릴 수 있습니다.

조건과 일치하는 데이터 포인트를 필터링하려면
  • if 함수를 사용하여 조건이 충족되는지 확인하는 조건을 정의하고 result_if_true 또는 result_if_false 값으로 none를 반환하는 변환을 만드세요.

예: 물이 끓지 않는 데이터 포인트 필터링

머신에 있는 물의 온도(섭씨)를 제공하는 측정값(temp_c)이 있는 시나리오를 생각해 보세요. 다음 변환을 정의하여 물이 끓지 않는 데이터 포인트를 필터링할 수 있습니다.

  • 변환: boiling_temps = if(gte(temp_c, 100), temp_c, none) - 섭씨 100도 이상이면 온도를 반환하고, 그렇지 않으면 데이터 포인트를 반환하지 않습니다.

조건과 일치하는 데이터 포인트 계산

비교 함수sum()을 사용하여 조건이 참인 데이터 포인트 수를 계산할 수 있습니다.

조건과 일치하는 데이터 포인트를 계산하려면
  1. 비교 함수를 사용하여 다른 속성에 대한 필터 조건을 정의하는 변환을 생성합니다.

  2. 해당 조건이 충족되는 데이터 포인트를 합산하는 지표를 생성합니다.

예: 물이 끓는 데이터 포인트 수 계산

머신에 있는 물의 온도(섭씨)를 제공하는 측정값(temp_c)이 있는 시나리오를 생각해 보세요. 다음과 같은 변환 및 지표 속성을 정의하여 물이 끓는 데이터 포인트 수를 계산할 수 있습니다.

  • 변환: is_boiling = gte(temp_c, 100) - 온도가 섭씨 100도보다 높거나 같으면 1를 반환하고, 그렇지 않으면 0를 반환합니다.

  • 지표: boiling_count = sum(is_boiling) - 물이 끓는 데이터 포인트 수를 계산합니다.

공식의 지연 데이터

AWS IoT SiteWise 최대 7일이 지난 데이터의 늦은 데이터 수집을 지원합니다. 지연 데이터를 AWS IoT SiteWise 수신하면 과거 기간의 지연 데이터를 입력하는 모든 지표에 대해 기존 값을 다시 계산합니다. 이러한 재계산으로 인해 데이터 처리 요금이 발생합니다.

참고

지연 데이터를 AWS IoT SiteWise 입력하는 속성을 계산할 때는 각 속성의 현재 수식 표현식을 사용합니다.

지표의 과거 창을 다시 AWS IoT SiteWise 계산한 후에는 해당 창의 이전 값을 대체합니다. 해당 지표에 대한 알림을 활성화한 경우 속성 값 AWS IoT SiteWise 알림도 발생합니다. 즉, 이전에 알림을 받은 동일한 속성 및 타임스탬프에 대해 새 속성 값 업데이트 알림을 받을 수 있습니다. 애플리케이션이나 데이터 레이크가 속성 값 알림을 사용하는 경우, 데이터가 정확하도록 이전 값을 새 값으로 업데이트해야 합니다.

공식의 데이터 품질

에서 AWS IoT SiteWise각 데이터 포인트에는 품질 코드가 있으며, 품질 코드는 다음 중 하나일 수 있습니다.

  • GOOD – 데이터가 어떤 문제의 영향도 받지 않습니다.

  • BAD – 데이터가 센서 고장과 같은 문제의 영향을 받습니다.

  • UNCERTAIN – 데이터가 센서 부정확과 같은 문제의 영향을 받습니다.

AWS IoT SiteWise 변환과 지표를 계산할 때는 GOOD 품질 데이터만 사용합니다. AWS IoT SiteWise 성공적인 계산을 위한 GOOD 품질 데이터만 출력합니다. 계산이 실패하면 해당 계산에 대한 데이터 포인트를 출력하지 AWS IoT SiteWise 않습니다. 이 문제는 계산의 결과로 정의되지 않은 값, 무한 값 또는 오버플로우 값이 나오는 경우에 발생할 수 있습니다.

데이터를 쿼리하고 데이터 품질별로 필터링하는 방법에 대한 자세한 내용은 에서 데이터 쿼리 AWS IoT SiteWise 단원을 참조하세요.

정의되지 않은 값, 무한 값 및 오버플로우 값

일부 공식 표현식 (예: x / 0sqrt(-1), 또는log(0)) 은 실수 체계에서 정의되지 않았거나 무한하거나 에서 지원하는 범위를 벗어난 값을 계산합니다. AWS IoT SiteWise자산 속성의 표현식이 정의되지 않은 값, 무한 값 또는 오버플로 값을 계산하는 경우 해당 계산에 대한 데이터 포인트가 AWS IoT SiteWise 출력되지 않습니다.

AWS IoT SiteWise 또한 수식 표현식의 결과로 숫자가 아닌 값을 계산하는 경우 데이터 포인트를 출력하지 않습니다. 즉, 문자열, 배열 또는 none 상수를 계산하는 공식을 정의하면 해당 계산에 대한 데이터 포인트가 AWS IoT SiteWise 에서 출력되지 않습니다.

다음 각 수식 표현식은 숫자로 표현할 AWS IoT SiteWise 수 없는 값을 생성합니다. AWS IoT SiteWise 이러한 수식 표현식을 계산할 때 데이터 포인트를 출력하지 않습니다.

  • x / 0은 정의되지 않았습니다.

  • log(0)은 정의되지 않았습니다.

  • sqrt(-1)는 실수 시스템에서는 정의되지 않습니다.

  • "hello" + " world"는 문자열입니다.

  • jp('{"values":[3,6,7]}', '$.values')는 배열입니다.

  • temp300보다 작을 때 if(gte(temp, 300), temp, none)none입니다.