기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
함수
SQL 표현식의 SELECT 또는 WHERE 절에서 다음 내장 함수를 사용할 수 있습니다.
abs(Decimal)
숫자의 절대값을 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: abs(-5)
= 5.
인수 유형 | Result |
---|---|
Int |
Int , 인수의 절대값 |
Decimal |
Decimal , 인수의 절대값 |
Boolean |
Undefined . |
String |
Decimal . 결과는 인수의 절대값입니다. 문자열을 변환할 수 없는 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
accountid()
이 규칙을 소유하는 계정의 ID를 String
으로 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
accountid()
= "123456789012"
acos(Decimal)
숫자의 역코사인을 라디안 단위로 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: acos(0)
= 1.5707963267948966
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 역코사인. 가상 결과는 Undefined 로 반환됩니다. |
Decimal |
Decimal (배정밀도), 인수의 역코사인. 가상 결과는 Undefined 로 반환됩니다. |
Boolean |
Undefined . |
String |
Decimal , 인수의 역코사인. 문자열을 변환할 수 없는 경우 결과는 Undefined 입니다. 가상 결과는 Undefined 로 반환됩니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
asin(Decimal)
숫자의 역사인을 라디안 단위로 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: asin(0)
= 0.0
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 역사인. 가상 결과는 Undefined 로 반환됩니다. |
Decimal |
Decimal (배정밀도), 인수의 역사인. 가상 결과는 Undefined 로 반환됩니다. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 역사인. 문자열을 변환할 수 없는 경우 결과는 Undefined 입니다. 가상 결과는 Undefined 로 반환됩니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
atan(Decimal)
숫자의 역탄젠트를 라디안 단위로 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: atan(0)
= 0.0
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 역탄젠트. 가상 결과는 Undefined 로 반환됩니다. |
Decimal |
Decimal (배정밀도), 인수의 역탄젠트. 가상 결과는 Undefined 로 반환됩니다. |
Boolean |
Undefined . |
String |
Decimal , 인수의 역탄젠트. 문자열을 변환할 수 없는 경우 결과는 Undefined 입니다. 가상 결과는 Undefined 로 반환됩니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
atan2(Decimal, Decimal)
양의 x축과 두 인수로 정의된 점(x, y) 사이의 각도(라디안)를 반환합니다. 이 각도는 시계 반대 방향 각도(상반면, y > 0)의 경우 양수이고, 시계 방향 각도(하반면, y < 0). Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: atan2(1, 0)
= 1.5707963267948966
인수 유형 | 인수 유형 | Result |
---|---|---|
Int /Decimal |
Int /Decimal |
Decimal (배정밀도), x축과 지정된 점(x,y) 사이의 각도. |
Int /Decimal /String |
Int /Decimal /String |
Decimal , 설명된 점의 역탄젠트. 문자열을 변환할 수 없는 경우 결과는 Undefined 입니다. |
기타 값 | 기타 값 | Undefined . |
aws_lambda(functionArn, inputJson)
inputJson
을 Lambda 함수로 전달하도록 지정된 Lambda 함수를 호출한 다음 Lambda 함수에서 생성되는 JSON 데이터를 반환합니다.
인수 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 | 설명 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
functionArn |
호출할 Lambda 함수의 ARN입니다. Lambda 함수는 JSON 데이터를 반환해야 합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inputJson |
Lambda 함수로 전달되는 JSON 입력 값입니다. 중첩된 객체 쿼리와 리터럴을 전달하려면 SQL 버전 2016-03-23을 사용해야 합니다. |
지정된 Lambda 함수를 호출할 AWS IoT lambda:InvokeFunction
권한을 부여해야 합니다. 다음은 AWS CLI를 사용하여 lambda:InvokeFunction
권한을 부여하는 방법을 보여주는 예제입니다.
aws lambda add-permission --function-name "function_name" --region "
region
" --principal iot.amazonaws.com --source-arn arn:aws:iot:us-east-1
:account_id
:rule/rule_name
--source-account "account_id
" --statement-id "unique_id
" --action "lambda:InvokeFunction"
다음은 add-permission 명령의 인수입니다.
- --function-name
-
Lambda 함수의 이름입니다. 함수의 리소스 정책을 업데이트하기 위한 새 권한을 추가합니다.
- --region
-
AWS 리전 계정의.
- --principal
-
권한을 부여받는 보안 주체입니다. 이는 Lambda 함수를 호출할 수 있는 AWS IoT 권한을
iot.amazonaws.com
허용하기 위한 것이어야 합니다. - --source-arn
-
규칙의 ARN입니다. get-topic-rule AWS CLI 명령을 사용하여 규칙의 ARN을 가져올 수 있습니다.
- --source-account
-
규칙이 정의된 AWS 계정 위치.
- --statement-id
-
고유한 문 식별자입니다.
- --action
-
이 문에서 허용할 Lambda 작업입니다. AWS IoT 가 Lambda 함수를 호출하도록 허용하려면
lambda:InvokeFunction
을 지정합니다.
중요
source-arn
또는 를 제공하지 않고 AWS IoT 보안 주체에 대한 권한을 추가하는 경우source-account
, Lambda 작업으로 규칙을 AWS 계정
생성하는 모든 주체가 Lambda 함수를 호출하는 규칙을 트리거할 수 있습니다. AWS IoT자세한 내용은 Lambda 권한 모델을 참조하세요.
다음과 같은 JSON 메시지 페이로드가 있을 경우:
{ "attribute1": 21, "attribute2": "value" }
다음과 같이 aws_lambda
함수를 사용하여 Lambda 함수를 호출할 수 있습니다.
SELECT aws_lambda("arn:aws:lambda:
us-east-1
:account_id
:function:lambda_function
", {"payload":attribute1}) as output FROM 'topic-filter
'
전체 MQTT 메시지 페이로드를 전달하려면 다음 예와 같이 '*'를 사용하여 JSON 페이로드를 지정할 수 있습니다.
SELECT aws_lambda("arn:aws:lambda:
us-east-1
:account_id
:function:lambda_function
", *) as output FROM 'topic-filter
'
payload.inner.element
는 'topic/subtopic' 주제에 게시되는 메시지에서 데이터를 선택합니다.
some.value
는 Lambda 함수에서 생성되는 출력에서 데이터를 선택합니다.
참고
규칙 엔진은 Lambda 함수의 실행 시간을 제한합니다. 규칙의 Lambda 함수 호출은 2,000ms 이내에 완료되어야 합니다.
bitand(Int, Int)
두 Int
(변환) 인수의 비트 표현에 대해 비트 단위 AND를 수행합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: bitand(13, 5)
= 5
인수 유형 | 인수 유형 | Result |
---|---|---|
Int |
Int |
Int , 두 인수의 비트 단위 AND. |
Int /Decimal |
Int /Decimal |
Int , 두 인수의 비트 단위 AND. 모든 비 Int 숫자는 가장 가까운 Int 로 내림됩니다. 인수를 Int 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
Int /Decimal /String |
Int /Decimal /String |
Int , 두 인수의 비트 단위 AND. 모든 문자열은 10진수로 변환된 후 가장 가까운 Int 로 내림됩니다. 변환이 실패할 경우 결과는 Undefined 입니다. |
기타 값 | 기타 값 | Undefined . |
bitor(Int, Int)
두 인수의 비트 표현에 대해 비트 단위 OR을 수행합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: bitor(8, 5)
= 13
인수 유형 | 인수 유형 | Result |
---|---|---|
Int |
Int |
Int , 두 인수의 비트 단위 OR. |
Int /Decimal |
Int /Decimal |
Int , 두 인수의 비트 단위 OR. 모든 비 Int 숫자는 가장 가까운 Int 로 내림됩니다. 변환이 실패할 경우 결과는 Undefined 입니다. |
Int /Decimal /String |
Int /Decimal /String |
Int , 두 인수의 비트 단위 OR. 모든 문자열은 10진수로 변환된 후 가장 가까운 Int 로 내림됩니다. 변환이 실패할 경우 결과는 Undefined 입니다. |
기타 값 | 기타 값 | Undefined . |
bitxor(Int, Int)
두 Int
(변환) 인수의 비트 표현에 대해 비트 단위 XOR을 수행합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: bitor(13, 5)
= 8
인수 유형 | 인수 유형 | Result |
---|---|---|
Int |
Int |
Int , 두 인수에 대한 비트 단위 XOR. |
Int /Decimal |
Int /Decimal |
Int , 두 인수에 대한 비트 단위 XOR. 비 Int 숫자는 가장 가까운 Int 로 내림됩니다. |
Int /Decimal /String |
Int /Decimal /String |
Int , 두 인수에 대한 비트 단위 XOR. 문자열은 10진수로 변환되어 가장 가까운 Int 로 내림됩니다. 변환이 실패할 경우 결과는 Undefined 입니다. |
기타 값 | 기타 값 | Undefined . |
bitnot(Int)
Int
(변환) 인수의 비트 표현에 대해 비트 단위 NOT을 수행합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: bitnot(13)
= 2
인수 유형 | Result |
---|---|
Int |
Int , 인수의 비트 단위 NOT. |
Decimal |
Int , 인수의 비트 단위 NOT. Decimal 값은 가장 가까운 Int 로 내림됩니다. |
String |
Int , 인수의 비트 단위 NOT. 문자열은 10진수로 변환된 후 가장 가까운 Int 로 내림됩니다. 변환이 실패할 경우 결과는 Undefined 입니다. |
기타 값 | 기타 값 |
cast()
값을 한 데이터 형식에서 다른 형식으로 변환합니다. cast는 일반 변환과 거의 비슷하게 동작하지만 숫자와 부울 간 캐스팅이 추가됩니다. 한 유형을 다른 유형으로 캐스팅하는 방법을 결정할 AWS IoT 수 없는 경우 결과는 다음과 같습니다. Undefined
SQL 버전 2015-10-08 이상에서 지원됩니다. 형식: cast(value
as type
).
예제
cast(true as Int)
= 1
cast
호출 시 다음 키워드가 "as" 뒤에 나올 수 있습니다.
SQL 버전 2015-10-08 및 2016-03-23의 경우 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
키워드 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
값을 String 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nvarchar | 값을 String 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
텍스트 | 값을 String 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ntext | 값을 String 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
varchar | 값을 String 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
값을 Int 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Integer | 값을 Int 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Double | 값을 Decimal (배정밀도)로 캐스팅합니다. |
SQL 버전 2016-03-23의 경우 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
키워드 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
값을 Decimal 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
부울 | 값을 Boolean 로 캐스팅합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
값을 Boolean 로 캐스팅합니다. |
캐스팅 규칙:
소수로 캐스팅 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 유형 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
소수점이 없는 Decimal |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
소스 값 참고SQL V2(2016-03-23)에서 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
true = 1.0, false = 0.0. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
문자열을 Decimal 로 구문 분석하려고 시도합니다. AWS IoT
는 다음 정규식 ^-?\d+(\.\d+)?((?i)E-?\d+)?$와 일치하는 문자열을 구문 분석하려고 시도합니다. "0", "-1.2", "5E-12"는 모두 자동으로 10진수로 변환되는 문자열의 예입니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
배열 | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
객체 | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Null | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
정의되지 않음 | Undefined . |
정수로 캐스팅 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 유형 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
소스 값 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
가장 가까운 Int 로 내림한 소스 값 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
true = 1.0, false = 0.0. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
문자열을 Decimal 로 구문 분석하려고 시도합니다. AWS IoT
는 다음 정규식 ^-?\d+(\.\d+)?((?i)E-?\d+)?$와 일치하는 문자열을 구문 분석하려고 시도합니다. "0", "-1.2", "5E-12"는 모두 자동으로 10진수로 변환되는 문자열의 예입니다. AWS IoT
는 문자열을 Decimal 로 변환한 후 가장 가까운 Int 로 내림하려고 시도합니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
배열 | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
객체 | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Null | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
정의되지 않음 | Undefined . |
Boolean 로 캐스팅 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 유형 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
0 = False, 0이 아닌 값 = True. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
0 = False, 0이 아닌 값 = True. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
소스 값 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
"true" = True, "false" = False(대/소문자를 구분하지 않음). 다른 문자열 값 = Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
배열 | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
객체 | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Null | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
정의되지 않음 | Undefined . |
문자열로 캐스팅 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 유형 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
표준 표기법을 따른 Int 의 문자열 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
유효숫자 표기법을 따를 수 있는 Decimal 의 문자열 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
"true" 또는 "false", 모두 소문자. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
"true"=True, "false"=False(대/소문자를 구분하지 않음). 다른 문자열 값 = Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
배열 | JSON으로 직렬화된 배열입니다. 결과 문자열은 대괄호 안의 쉼표로 구분된 목록입니다. String 은 따옴표로 묶입니다. Decimal , Int 및 Boolean 은 따옴표로 묶이지 않습니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
객체 | JSON으로 직렬화된 객체입니다. JSON 문자열은 키-값 페어의 쉼표로 구분된 목록이며 중괄호로 묶입니다. String 은 따옴표로 묶입니다. Decimal , Int , Boolean 및 Null 은 따옴표로 묶이지 않습니다. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Null | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
정의되지 않음 | Undefined . |
ceil(Decimal)
지정된 Decimal
을 가장 가까운 Int
로 올림합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
ceil(1.2)
= 2
ceil(-1.2)
= -1
인수 유형 | Result |
---|---|
Int |
Int , 인수 값 |
Decimal |
Int , 가장 가까운 Int 로 올림된 Decimal 값 |
String |
Int . 문자열은 Decimal 로 변환된 후 가장 가까운 Int 로 올림됩니다. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
기타 값 | Undefined . |
chr(String)
지정된 Int
인수에 대응하는 ASCII 문자를 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
chr(65)
= "A".
chr(49)
= "1".
인수 유형 | Result |
---|---|
Int |
지정된 ASCII 값에 대응하는 문자입니다. 인수가 유효한 ASCII 값이 아닐 경우 결과는 Undefined 입니다. |
Decimal |
지정된 ASCII 값에 대응하는 문자입니다. Decimal 인수는 가장 가까운 Int 로 내림됩니다. 인수가 유효한 ASCII 값이 아닐 경우 결과는 Undefined 입니다. |
Boolean |
Undefined . |
String |
String 을 Decimal 로 변환할 수 있는 경우 가장 가까운 Int 로 내림됩니다. 인수가 유효한 ASCII 값이 아닐 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
기타 값 | Undefined . |
clientid()
메시지를 전송하는 MQTT 클라이언트의 ID, 또는 메시지가 MQTT를 통해 전송되지 않은 경우 n/a
를 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
clientid()
= "123456789012"
concat()
배열 또는 문자열을 연결합니다. 이 함수는 인수의 수를 제한하지 않으며 String
또는 Array
를 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
concat()
= Undefined
.
concat(1)
= "1".
concat([1, 2, 3], 4)
= [1, 2, 3, 4].
concat([1, 2, 3], "hello")
= [1, 2, 3, "hello"]
concat("con", "cat")
= "concat"
concat(1, "hello")
= "1hello"
concat("he","is","man")
= "heisman"
concat([1, 2, 3], "hello", [4, 5, 6])
= [1, 2, 3, "hello", 4, 5, 6]
인수의 수 | Result |
---|---|
0 | Undefined . |
1 | 인수가 수정 없이 반환됩니다. |
2+ |
인수가 |
cos(Decimal)
숫자의 코사인을 라디안 단위로 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
cos(0)
= 1.
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 코사인. 가상 결과는 Undefined 로 반환됩니다. |
Decimal |
Decimal (배정밀도), 인수의 코사인. 가상 결과는 Undefined 로 반환됩니다. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 코사인. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. 가상 결과는 Undefined 로 반환됩니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
cosh(Decimal)
숫자의 쌍곡코사인을 라디안 단위로 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: cosh(2.3)
= 5.037220649268761.
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 쌍곡코사인. 가상 결과는 Undefined 로 반환됩니다. |
Decimal |
Decimal (배정밀도), 인수의 쌍곡코사인. 가상 결과는 Undefined 로 반환됩니다. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 쌍곡코사인. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. 가상 결과는 Undefined 로 반환됩니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
decode(value, decodingScheme)
decode
함수를 사용하여 인코딩된 값을 디코딩합니다. 디코딩된 문자열이 JSON 문서인 경우, 주소 지정 가능한 객체가 반환됩니다. 그렇지 않으면 디코딩된 문자열이 문자열로 반환됩니다. 문자열을 디코딩할 수 없는 경우 함수는 NULL을 반환합니다. 이 함수는 base64로 인코딩된 문자열과 프로토콜 버퍼(protobuf) 메시지 형식의 디코딩을 지원합니다.
SQL 버전 2016-03-23 이상에서 지원됩니다.
- 값
-
문자열 값, 또는 문자열을 반환하는 (AWS IoT SQL 레퍼런스에 정의된) 유효한 표현식입니다.
- decodingScheme
-
값을 디코딩하는 데 사용되는 체계를 나타내는 리터럴 문자열입니다. 현재
'base64'
및'proto'
만 지원됩니다.
base64로 인코딩된 문자열 디코딩
이 예에서 메시지 페이로드는 인코딩된 값을 포함합니다.
{ encoded_temp: "eyAidGVtcGVyYXR1cmUiOiAzMyB9Cg==" }
이 SQL 문의 decode
함수는 메시지 페이로드의 값을 디코딩합니다.
SELECT decode(encoded_temp,"base64").temperature AS temp from 'topic/subtopic'
encoded_temp
값을 디코딩하면 SELECT 문에서 온도 값을 읽을 수 있는 다음과 같은 유효한 JSON 문서가 생성됩니다.
{ "temperature": 33 }
이 예제에서 SELECT 문의 결과는 다음과 같습니다.
{ "temp": 33 }
디코딩된 값이 유효한 JSON 문서가 아닌 경우 디코딩된 값은 문자열로 반환됩니다.
protobuf 메시지 페이로드 디코딩
decode SQL 함수를 사용하여 protobuf 메시지 페이로드를 디코딩할 수 있는 규칙을 구성할 수 있습니다. 자세한 내용은 protobuf 메시지 페이로드 디코딩을 참조하세요.
함수 서명은 다음과 같습니다.
decode(<ENCODED DATA>, 'proto', '<S3 BUCKET NAME>', '<S3 OBJECT KEY>', '<PROTO NAME>', '<MESSAGE TYPE>')
ENCODED DATA
-
디코딩할 protobuf 인코딩 데이터를 지정합니다. 규칙으로 전송된 전체 메시지가 protobuf로 인코딩된 데이터인 경우
*
를 사용하여 원시 바이너리 수신 페이로드를 참조할 수 있습니다. 그렇지 않은 경우 이 필드는 base-64로 인코딩된 JSON 문자열이어야 하며 문자열에 대한 참조를 직접 전달할 수 있습니다.1) 원시 바이너리 protobuf 수신 페이로드를 디코딩하는 방법
decode(*, 'proto', ...)
2) base64로 인코딩된 문자열 'a.b'로 표시되는 protobuf로 인코딩된 메시지를 디코딩하는 방법
decode(a.b, 'proto', ...)
proto
-
디코딩할 데이터를 protobuf 메시지 형식으로 지정합니다.
proto
대신base64
를 지정하면 이 함수는 base64로 인코딩된 문자열을 JSON으로 디코딩합니다. S3 BUCKET NAME
-
FileDescriptorSet
파일을 업로드한 Amazon S3 버킷의 이름입니다. S3 OBJECT KEY
-
Amazon S3 버킷 내의
FileDescriptorSet
파일을 지정하는 객체 키입니다. PROTO NAME
-
FileDescriptorSet
파일을 생성하는 데 사용된.proto
파일의 이름(확장명 제외)입니다. MESSAGE TYPE
-
디코딩할 데이터가 준수해야 하는
FileDescriptorSet
파일 내 protobuf 메시지 구조의 이름입니다.
decode SQL 함수를 사용한 SQL 표현식의 예는 다음과 같습니다.
SELECT VALUE decode(*, 'proto', 's3-bucket', 'messageformat.desc', 'myproto', 'messagetype') FROM 'some/topic'
-
*
mymessagetype
이라는 protobuf 메시지 유형을 준수하는 이진 수신 페이로드를 나타냅니다. -
messageformat.desc
s3-bucket
이라는 Amazon S3 버킷에 저장된FileDescriptorSet
파일입니다. -
myproto
myproto.proto
라는FileDescriptorSet
파일을 생성하는 데 사용된 원본.proto
파일입니다. -
messagetype
myproto.proto
에 정의된messagetype
이라는 메시지 유형(가져온 종속 항목 포함)입니다.
encode(value, encodingScheme)
encode
함수를 사용하여 페이로드(비 JSON 데이터일 수 있음)를 인코딩 체계를 기반으로 한 문자열 표현으로 인코딩합니다. SQL 버전 2016-03-23 이상에서 지원됩니다.
- 값
-
AWS IoT SQL 레퍼런스에서 정의된 임의의 유효한 표현식. *를 지정하여 JSON 형식 여부와 상관없이 전체 페이로드를 인코딩할 수 있습니다. 사용자가 표현식을 제공할 경우 식 결과가 문자열로 변환된 후 인코딩됩니다.
- encodingScheme
-
사용할 인코딩 체계를 나타내는 리터럴 문자열. 현재
'base64'
만 지원됩니다.
endswith(String, String)
첫 번째 String
인수가 두 번째 String
인수로 끝나는지 여부를 나타내는 Boolean
을 반환합니다. 인수가 Null
또는 Undefined
일 경우 결과는 Undefined
입니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: endswith("cat","at")
= true.
인수 형식 1 | 인수 형식 2 | Result |
---|---|---|
String |
String |
첫 번째 인수가 두 번째 인수로 끝날 경우 true입니다. 그렇지 않으면 false입니다. |
기타 값 | 기타 값 | 두 인수는 모두 표준 변환 규칙을 사용하여 문자열로 변환됩니다. 첫 번째 인수가 두 번째 인수로 끝날 경우 true입니다. 그렇지 않으면 false입니다. 인수가 Null 또는 Undefined 일 경우 결과는 Undefined 입니다. |
exp(Decimal)
Decimal
인수로 거듭제곱된 e를 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: exp(1)
= e.
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), e ^ 인수. |
Decimal |
Decimal (배정밀도), e ^ 인수. |
String |
Decimal (배정밀도), e ^ 인수. String 을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
기타 값 | Undefined . |
floor(십진수)
지정된 Decimal
을 가장 가까운 Int
로 내림합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
floor(1.2)
= 1
floor(-1.2)
= -2
인수 유형 | Result |
---|---|
Int |
Int , 인수 값 |
Decimal |
가장 가까운 Int 로 내림된 Decimal 값은 Int 입니다. |
String |
Int . 문자열은 Decimal 로 변환된 후 가장 가까운 Int 로 내림됩니다. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
기타 값 | Undefined . |
get
모음과 같은 형식(배열, 문자열, 객체)에서 값을 추출합니다. 첫 번째 인수에는 변환이 적용되지 않습니다. 변환은 두 번째 인수에 표에 설명된 대로 적용됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
get(["a", "b", "c"], 1)
= "b"
get({"a":"b"}, "a")
= "b"
get("abc", 0)
= "a"
인수 형식 1 | 인수 형식 2 | Result |
---|---|---|
배열 | 임의의 형식(Int 로 변환됨) |
두 번째 인수(Int 로 변환됨)가 제공하는 0부터 시작하는 Array 인덱스의 항목. 변환이 실패할 경우 결과는 Undefined 입니다. 인덱스가 Array 의 범위를 벗어날 경우(음수 또는 >= array.length) 결과는 Undefined 입니다. |
String | 임의의 형식(Int 로 변환됨) |
두 번째 인수(Int 로 변환됨)가 제공하는 0부터 시작하는 문자열 인덱스의 문자. 변환이 실패할 경우 결과는 Undefined 입니다. 인덱스가 문자열의 범위를 벗어날 경우(음수 또는 >= string.length) 결과는 Undefined 입니다. |
객체 | String (변환이 적용되지 않음) |
두 번째 인수가 제공하는 문자열 키 에 대응되는 첫 번째 인수 객체에 저장된 값. |
기타 값 | 임의의 값 | Undefined . |
get_dynamodb (테이블 이름 partitionKeyName,,,, roLearn) partitionKeyValue sortKeyName sortKeyValue
DynamoDB 테이블에서 데이터를 검색합니다. get_dynamodb()
를 사용하면 규칙이 평가되는 동안 DynamoDB 테이블을 쿼리할 수 있습니다. DynamoDB에서 검색된 데이터를 사용하여 메시지 페이로드를 필터링하거나 증가시킬 수 있습니다. SQL 버전 2016-03-23 이상에서 지원됩니다.
get_dynamodb()
는 다음 파라미터를 사용합니다.
- tableName
-
쿼리할 DynamoDB 테이블의 이름입니다.
- partitionKeyName
-
파티션 키의 이름입니다. 자세한 내용은 DynamoDB 키를 참조하세요.
- partitionKeyValue
-
레코드를 식별하는 데 사용되는 파티션 키의 값입니다. 자세한 내용은 DynamoDB 키를 참조하세요.
- sortKeyName
-
(선택 사항) 정렬 키의 이름입니다. 이 파라미터는 쿼리된 DynamoDB 테이블에서 복합 키를 사용하는 경우에만 필요합니다. 자세한 내용은 DynamoDB 키를 참조하세요.
- sortKeyValue
-
(선택 사항) 정렬 키의 값입니다. 이 파라미터는 쿼리된 DynamoDB 테이블에서 복합 키를 사용하는 경우에만 필요합니다. 자세한 내용은 DynamoDB 키를 참조하세요.
- roleArn
-
DynamoDB 테이블에 대한 액세스 권한을 부여하는 IAM 역할의 ARN입니다. 규칙 엔진은 사용자를 대신하여 DynamoDB 테이블에 액세스하기 위해 이 역할을 수임합니다. 지나치게 허용적인 역할을 사용하지 마세요. 규칙에 필요한 권한만 역할에 부여합니다. 다음은 하나의 DynamoDB 테이블에 대한 액세스 권한을 부여하는 정책 예제입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:GetItem", "Resource": "arn:aws:dynamodb:
aws-region
:account-id
:table/table-name
" } ] }}
get_dynamodb()
를 사용하는 방법의 예로, AWS IoT에 연결된 모든 장치에 대한 디바이스 ID와 위치 정보가 포함된 DynamoDB 테이블이 있다고 가정해 보겠습니다. 다음 SELECT 문은 get_dynamodb()
함수를 사용하여 지정된 디바이스 ID의 위치를 검색합니다.
SELECT *, get_dynamodb("InServiceDevices", "deviceId", id,
"arn:aws:iam::12345678910:role/getdynamo").location AS location FROM
'some/topic'
참고
-
SQL 문 1개당 최대 한 번
get_dynamodb()
를 호출할 수 있습니다. 단일 SQL 문에서 여러 번get_dynamodb()
를 호출하면 작업을 호출하지 않고 규칙이 종료됩니다. -
get_dynamodb()
가 8KB보다 많은 데이터를 반환하면 규칙의 작업이 호출되지 않을 수 있습니다.
get_mqtt_property(name)
MQTT5 헤더 contentType
, payLoadFormatIndicator
, responseTopic
, correlationData
중 하나를 참조합니다. 이 함수는 리터럴 문자열 content_type
, format_indicator
, response_topic
, correlation_data
중 하나를 인수로 사용합니다. 자세한 내용은 다음 함수 인수 테이블을 참조하세요.
- contentType
-
문자열: 게시 메시지의 내용을 설명하는 UTF-8으로 인코딩된 문자열입니다.
- payLoadFormat인디케이터
-
문자열: 페이로드가 UTF-8 형식으로 지정되었는지 여부를 나타내는 Enum 문자열 값입니다. 유효 값은
UNSPECIFIED_BYTES
및UTF8_DATA
입니다. - responseTopic
-
문자열: 응답 메시지의 주제 이름으로 사용되는 UTF-8 인코딩 문자열입니다. 응답 주제는 수신자가 요청-응답 흐름의 일부로 게시해야 하는 주제를 설명하는 데 사용됩니다. 주제에는 와일드카드 문자가 포함되어서는 안 됩니다.
- correlationData
-
문자열: 요청 메시지 발신자가 응답 메시지를 수신할 때 어떤 요청에 대한 응답 메시지인지 식별하는 데 사용되는 base64 인코딩 이진 데이터입니다.
다음 표에는 get_mqtt_property
함수에 사용할 수 있는 함수 인수와 관련 반환 유형이 나와 있습니다.
함수 인수 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SQL | 반환되는 데이터 유형(있는 경우) | 반환되는 데이터 유형(없는 경우) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
get_mqtt_property("format_indicator") |
문자열(UNSPECIFIED_BYTES 또는 UTF8_DATA) | 문자열(UNSPECIFIED_BYTES) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
get_mqtt_property("content_type") |
String | 정의되지 않음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
get_mqtt_property("response_topic") |
String | 정의되지 않음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
get_mqtt_property("correlation_data") |
base64로 인코딩된 문자열 | 정의되지 않음 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
get_mqtt_property("some_invalid_name") |
정의되지 않음 | 정의되지 않음 |
다음 예제 규칙 SQL은 MQTT5 헤더 contentType
, payLoadFormatIndicator
, responseTopic
, correlationData
중 하나를 참조합니다.
SELECT *, get_mqtt_property('content_type') as contentType, get_mqtt_property('format_indicator') as payloadFormatIndicator, get_mqtt_property('response_topic') as responseTopic, get_mqtt_property('correlation_data') as correlationData FROM 'some/topic'
get_secret(secretId, secretType, key, roleArn)
AWS Secrets Manager에서 현재 버전의 보안 암호에 대한 암호화된 SecretString
또는 SecretBinary
필드의 값을 검색합니다. 비밀 생성 및 유지 관리에 대한 자세한 내용은 CreateSecretUpdateSecret, 및 을 참조하십시오 PutSecretValue.
get_secret()
는 다음 파라미터를 사용합니다.
- SecretId
-
문자열: 검색할 보안 암호의 Amazon 리소스 이름(ARN) 또는 친숙한 이름입니다.
- secretType
-
문자열: 보안 암호 유형입니다. 유효한 값:
SecretString
|SecretBinary
.- SecretString
-
-
API AWS CLI, 또는 콘솔을 사용하여 JSON 객체로 생성한 시크릿의 경우: AWS Secrets Manager
key
파라미터에 값을 지정한 경우, 이 함수는 지정된 키의 값을 반환합니다.key
파라미터에 값을 지정하지 않은 경우 이 함수는 전체 JSON 객체를 반환합니다.
-
API, 또는 AWS CLI를 사용하여 JSON 객체로 생성하는 보안 암호의 경우:
key
파라미터에 값을 지정한 경우 이 함수는 예외와 함께 실패합니다.key
파라미터에 값을 지정하지 않은 경우 이 함수는 보안 암호의 내용을 반환합니다.
-
- SecretBinary
-
key
파라미터에 값을 지정한 경우 이 함수는 예외와 함께 실패합니다.key
파라미터에 값을 지정하지 않은 경우 이 함수는 보안 암호 값을 Base64로 인코딩된 UTF-8 문자열로 반환합니다.
- 키
(선택 사항) 문자열:
SecretString
보안 암호 필드에 저장된 JSON 객체 내부의 키 이름입니다. 전체 JSON 객체 대신 보안 암호에 저장된 키의 값만 검색하려는 경우 이 값을 사용합니다.이 파라미터에 값을 지정하고 보안 암호의
SecretString
필드에 JSON 객체가 포함되어 있지 않으면 이 함수는 예외와 함께 실패합니다.- roleArn
문자열:
secretsmanager:GetSecretValue
및secretsmanager:DescribeSecret
권한을 갖는 역할 ARN입니다.
참고
이 함수는 항상 현재 버전의 보안 암호(AWSCURRENT
태그가 있는 버전)를 반환합니다 AWS IoT 규칙 엔진은 각 암호를 최대 15분 동안 캐시합니다. 따라서 규칙 엔진이 보안 암호를 업데이트하는 데 최대 15분이 걸릴 수 있습니다. 즉 AWS Secrets Manager, 로 업데이트한 지 최대 15분 후에 암호를 검색하면 이 함수는 이전 버전을 반환할 수 있습니다.
이 함수는 측정되지 않지만 AWS Secrets Manager 요금이 부과됩니다. 보안 암호 캐싱 메커니즘으로 인해 규칙 엔진은 때때로 AWS Secrets Manager을(를) 호출합니다. 규칙 엔진은 완전히 분산된 서비스이므로 15분 캐싱 기간 동안 규칙 엔진에서 여러 Secrets Manager API 호출을 볼 수 있습니다.
예:
get_secret
함수를 다음 API 키 인증 예제와 같이 HTTPS 규칙 동작의 인증 헤더에서 사용할 수 있습니다.
"API_KEY": "${get_secret('
API_KEY
', 'SecretString
', 'API_KEY_VALUE
', 'arn:aws:iam::12345678910:role/getsecret')}"
HTTPS 규칙 작업에 대한 자세한 내용은 HTTP 단원을 참조하세요.
get_thing_shadow(thingName, shadowName, roleARN)
지정된 사물의 지정된 섀도우를 반환합니다. SQL 버전 2016-03-23 이상에서 지원됩니다.
- thingName
-
문자열: 섀도우를 검색할 사물의 이름입니다.
- shadowName
-
(선택 사항) 문자열: 섀도우의 이름입니다. 이 파라미터는 명명된 섀도우를 참조하는 경우에만 필요합니다.
- roleArn
-
문자열:
iot:GetThingShadow
권한을 갖는 역할 ARN입니다.
예:
명명된 섀도우와 함께 사용할 경우 shadowName
파라미터를 제공합니다.
SELECT * from 'topic/subtopic' WHERE get_thing_shadow("MyThing","MyThingShadow","arn:aws:iam::123456789012:role/AllowsThingShadowAccess") .state.reported.alarm = 'ON'
명명되지 않은 섀도우와 함께 사용할 경우 shadowName
파라미터를 생략합니다.
SELECT * from 'topic/subtopic' WHERE get_thing_shadow("MyThing","arn:aws:iam::123456789012:role/AllowsThingShadowAccess") .state.reported.alarm = 'ON'
get_user_properties () userPropertyKey
MQTT5에서 지원되는 속성 헤더 유형 중 하나인 사용자 속성을 참조합니다.
- userProperty
-
문자열: 사용자 속성은 키-값 페어입니다. 이 함수는 키를 인수로 사용하여 관련 키와 일치하는 모든 값의 배열을 반환합니다.
함수 인수
메시지 헤더에 있는 다음 사용자 속성의 경우:
키 | 값 |
---|---|
some key | some value |
a different key | a different value |
some key | value with duplicate key |
다음 표에는 예상 SQL 동작이 나와 있습니다.
SQL | 반환되는 데이터 형식 | 반환되는 데이터 값 |
---|---|---|
get_user_properties('some key') | 문자열 배열 | ['some value', 'value with duplicate key'] |
get_user_properties('other key') | 문자열 배열 | ['a different value'] |
get_user_properties( ) | 키-값 페어 객체의 배열 | [{'"some key": "some value"'}, {"other key": "a different
value"}, {"some key": "value with duplicate
key"}] |
get_user_properties('non-existent key') | 정의되지 않음 |
다음 예제 규칙 SQL은 사용자 속성(MQTT5 속성 헤더 유형)을 페이로드로 참조합니다.
SELECT *, get_user_properties('user defined property key') as userProperty FROM 'some/topic'
해시 함수
AWS IoT 다음과 같은 해싱 함수를 제공합니다.
-
md2
-
md5
-
sha1
-
sha224
-
sha256
-
sha384
-
sha512
모든 해시 함수에는 문자열 인수 1개가 필요합니다. 결과는 해당 문자열의 해시된 값입니다. 표준 문자열 변환이 비 문자열 인수에 적용됩니다. 모든 해시 함수는 SQL 버전 2015-10-08 이상에서 지원합니다.
예:
md2("hello")
= "a9046c73e00331af68917d3804f70655"
md5("hello")
= "5d41402abc4b2a76b9719d911017c592"
indexof(String, String)
두 번째 인수의 첫 번째 인덱스(0부터 시작)을 첫 번째 인수의 하위 문자열로 반환합니다. 두 인수 모두 문자열이 필요합니다. 문자열이 아닌 인수에는 표준 문자열 변환 규칙이 적용됩니다. 이 함수는 배열에는 적용되지 않고 문자열에만 적용됩니다. SQL 버전 2016-03-23 이상에서 지원됩니다.
예:
indexof("abcd", "bc")
= 1
isNull()
인수가 Null
값이면 true를 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
isNull(5)
= false.
isNull(Null)
= true.
인수 유형 | Result |
---|---|
Int |
false |
Decimal |
false |
Boolean |
false |
String |
false |
Array |
false |
Object |
false |
Null |
true |
Undefined |
false |
isUndefined()
인수가 Undefined
이면 true를 반환합니다. SQL 버전 2016-03-23 이상에서 지원됩니다.
예:
isUndefined(5)
= false.
isUndefined(floor([1,2,3])))
= true.
인수 유형 | Result |
---|---|
Int |
false |
Decimal |
false |
Boolean |
false |
String |
false |
Array |
false |
Object |
false |
Null |
false |
Undefined |
true |
length(String)
제공된 문자열의 문자 수를 반환합니다. 비 String
인수에는 표준 변환 규칙이 적용됩니다. SQL 버전 2016-03-23 이상에서 지원됩니다.
예:
length("hi")
= 2
length(false)
= 5
ln(Decimal)
인수의 자연 로그를 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: ln(e)
= 1.
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 자연 로그. |
Decimal |
Decimal (배정밀도), 인수의 자연 로그. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 자연 로그. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
log(Decimal)
인수의 기수 10 로그를 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: log(100)
= 2.0.
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 기수 10 로그. |
Decimal |
Decimal (배정밀도), 인수의 기수 10 로그. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 기수 10 로그. String 을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
lower(String)
지정된 String
의 소문자 버전을 반환합니다. 비 문자열 인수는 표준 변환 규칙을 사용하여 문자열로 변환됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
lower("HELLO")
= "hello".
lower(["HELLO"])
= "[\"hello\"]".
lpad(String, Int)
두 번째 인수로 지정된 수의 공백이 왼쪽에 추가된 String
인수를 반환합니다. Int
인수는 0부터 1000 사이여야 합니다. 제공된 값이 이 유효한 범위를 벗어날 경우 인수가 가장 가까운 유효한 값(0 또는 1000)으로 설정됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
lpad("hello", 2)
= " hello
".
lpad(1, 3)
= " 1
"
인수 형식 1 | 인수 형식 2 | Result |
---|---|---|
String |
Int |
String . 제공된 Int 와 동일한 수의 공백이 지정된 String 왼쪽에 추가됩니다. |
String |
Decimal |
Decimal 인수는 가장 가까운 Int 로 내림되고 String 은 지정된 수의 공백이 왼쪽에 추가됩니다. |
String |
String |
두 번째 인수는 Decimal 로 변환된 후 가장 가까운 Int 로 내림되고, String 은 지정된 수의 공백이 왼쪽에 추가됩니다. 두 번째 인수를 Int 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
기타 값 | Int /Decimal /String |
첫 번째 값이 표준 변환을 통해 String 로 변환된 후, 이 String 에 LPAD 함수가 적용됩니다. 변환이 불가능한 경우 결과는 Undefined 입니다. |
임의의 값 | 기타 값 | Undefined . |
ltrim(String)
제공된 String
에서 모든 선행 공백(탭 및 공백)을 제거합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
Ltrim(" h i ")
= "hi ".
인수 유형 | Result |
---|---|
Int |
모든 선행 공백이 제거된 Int 의 String 표현. |
Decimal |
모든 선행 공백이 제거된 Decimal 의 String 표현. |
Boolean |
모든 선행 공백이 제거된 부울('true' 또는 'false')의 String 표현. |
String |
모든 선행 공백이 제거된 인수. |
배열 | 모든 선행 공백이 제거된 Array 의 String 표현(표준 변환 규칙 사용). |
객체 | 모든 선행 공백이 제거된 객체의 String 표현(표준 변환 규칙 사용). |
Null | Undefined . |
정의되지 않음 | Undefined . |
machinelearning_predict(modelId, roleArn, record)
이 machinelearning_predict
함수를 사용하면 Amazon SageMaker 모델을 기반으로 하는 MQTT 메시지의 데이터를 사용하여 예측할 수 있습니다. SQL 버전 2015-10-08 이상에서 지원됩니다. machinelearning_predict
함수의 인수는 다음과 같습니다.
- modelId
-
예측을 실행할 모델의 ID. 모델의 실시간 엔드포인트가 활성화되어야 합니다.
- roleArn
-
machinelearning:Predict
및machinelearning:GetMLModel
권한을 갖는 정책이 연결되고 예측을 실행할 모델에 대한 액세스를 허용하는 IAM 역할입니다. - 레코드
-
SageMaker 예측 API로 전달될 데이터입니다. 이 인수는 단일 계층 JSON 객체로 표현되어야 합니다. 레코드가 다중 수준 JSON 객체일 경우 레코드가 값 직렬화를 통해 평면화됩니다. 예를 들어 다음 JSON이
{ "key1": {"innerKey1": "value1"}, "key2": 0}
다음과 같이 평면화됩니다.
{ "key1": "{\"innerKey1\": \"value1\"}", "key2": 0}
이 함수는 다음 필드를 포함하는 JSON 객체를 반환합니다.
- predictedLabel
-
모델을 기반으로 한 입력의 분류입니다.
- details
-
다음 속성을 포함합니다.
- PredictiveModelType
-
모델 유형입니다. 유효한 값은 REGRESSION, BINARY, MULTICLASS입니다.
- 알고리즘
-
에서 SageMaker 예측에 사용하는 알고리즘입니다. 값은 SGD이어야 합니다.
- predictedScores
-
각 레이블에 해당하는 원시 분류 점수를 포함합니다.
- predictedValue
-
에 의해 SageMaker 예측된 값.
mod(Decimal, Decimal)
첫 번째 인수를 두 번째 인수로 나눈 나머지를 반환합니다. 나머지(십진수, 십진수)와 동일합니다. 또한 "%"를 동일한 모듈로 기능의 중위 연산자로 사용할 수도 있습니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: mod(8, 3)
= 2.
왼쪽 피연산자 | 오른쪽 피연산자 | 출력 |
---|---|---|
Int |
Int |
Int , 두 번째 인수를 법으로 하는 첫 번째 인수. |
Int /Decimal |
Int /Decimal |
Decimal , 두 번째 피연산자를 법으로 하는 첫 번째 인수. |
String /Int /Decimal |
String /Int /Decimal |
모든 문자열이 10진수로 변환될 경우 결과는 두 번째 인수를 법으로 하는 첫 번째 인수입니다. 그렇지 않을 경우 Undefined 입니다. |
기타 값 | 기타 값 | Undefined . |
nanvl (,) AnyValue AnyValue
유효한 Decimal
일 경우 첫 번째 인수를 반환합니다. 그렇지 않으면 두 번째 인수를 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: Nanvl(8, 3)
= 8.
인수 형식 1 | 인수 형식 2 | 출력 |
---|---|---|
정의되지 않음 | 임의의 값 | 두 번째 인수. |
Null | 임의의 값 | 두 번째 인수. |
Decimal (NaN) |
임의의 값 | 두 번째 인수. |
Decimal (NaN 아님) |
임의의 값 | 첫 번째 인수. |
기타 값 | 임의의 값 | 첫 번째 인수. |
newuuid()
임의의 16바이트 UUID를 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: newuuid()
= 123a4567-b89c-12d3-e456-789012345000
numbytes(String)
지정된 문자열의 UTF-8 인코딩 내 바이트 수를 반환합니다. 비 String
인수에는 표준 변환 규칙이 적용됩니다. SQL 버전 2016-03-23 이상에서 지원됩니다.
예:
numbytes("hi")
= 2
numbytes("€")
= 3
parse_time(String, Long[, String])
parse_time
함수는 타임스탬프를 사람이 읽을 수 있는 날짜/시간 형식으로 만듭니다. SQL 버전 2016-03-23 이상에서 지원됩니다. 타임스탬프 문자열을 밀리초로 변환하려면 time_to_epoch(String, String) 단원을 참조하세요.
parse_time
함수는 다음 인수를 사용합니다.
- 패턴
-
(문자열) Joda-Time 형식
을 따르는 날짜/시간 패턴입니다. - 타임스탬프
-
(Long) Unix Epoch부터의 시간을 밀리초로 변환한 시간입니다. timestamp() 함수를 참조하세요.
- timezone
-
(문자열) 형식 지정된 날짜/시간의 시간대입니다. 기본값은 "UTC"입니다. 이 함수는 Joda-Time 시간대
를 지원합니다. 이 인수는 선택 사항입니다.
예:
이 메시지가 주제 'A/B'에 게시되면 페이로드 {"ts":
"1970.01.01 AD at 21:46:40 CST"}
가 S3 버킷으로 전송됩니다.
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT parse_time(\"yyyy.MM.dd G 'at' HH:mm:ss z\", 100000000, 'America/Belize' ) as ts FROM 'A/B'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "KEY_NAME" } } ], "ruleName": "RULE_NAME" } }
이 메시지가 주제 'A/B'에 게시되면 페이로드 {"ts": "2017.06.09 AD at 17:19:46 UTC"}
가 S3 버킷으로 전송됩니다.
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT parse_time(\"yyyy.MM.dd G 'at' HH:mm:ss z\", timestamp() ) as ts FROM 'A/B'", "awsIotSqlVersion": "2016-03-23", "ruleDisabled": false, "actions": [ { "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "KEY_NAME" } } ], "ruleName": "RULE_NAME" } }
parse_time()
은 대체 템플릿으로 사용할 수도 있습니다. 예를 들어 이 메시지가 주제 'A/B'에 게시되면 페이로드가 키 값이 "2017"인 S3 버킷으로 전송됩니다.
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT * FROM 'A/B'", "awsIotSqlVersion": "2016-03-23", "ruleDisabled": false, "actions": [{ "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "${parse_time('yyyy', timestamp(), 'UTC')}" } }], "ruleName": "RULE_NAME" } }
power(Decimal, Decimal)
두 번째 인수로 거듭제곱된 첫 번째 인수를 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: power(2, 5)
= 32.0.
인수 형식 1 | 인수 형식 2 | 출력 |
---|---|---|
Int /Decimal |
Int /Decimal |
Decimal (배정밀도), 두 번째 인수의 승수로 거듭제곱된 첫 번째 인수. |
Int /Decimal /String |
Int /Decimal /String |
Decimal (배정밀도), 두 번째 인수의 승수로 거듭제곱된 첫 번째 인수. 모든 문자열은 10진수로 변환됩니다. String 을(를) Decimal (으)로 변환하지 못한 경우 결과는 Undefined 입니다. |
기타 값 | 기타 값 | Undefined . |
보안 주체()
트리거하는 메시지가 게시된 방식에 따라 디바이스가 인증에 사용하는 보안 주체를 반환합니다. 다음 표에서는 각 게시 방법과 프로토콜에 대해 반환된 보안 주체를 설명합니다.
메시지 게시 방법 | 프로토콜 | 자격 증명 유형 | 보안 주체 |
---|---|---|---|
MQTT 클라이언트 | MQTT | X.509 디바이스 인증서 | X.509 인증서 지문 |
AWS IoT 콘솔 MQTT 클라이언트 | MQTT | IAM 사용자 또는 역할 | iam-role-id : 세션 이름 |
AWS CLI | HTTP | IAM 사용자 또는 역할 | userid |
AWS IoT 디바이스 SDK | MQTT | X.509 디바이스 인증서 | X.509 인증서 지문 |
AWS IoT 디바이스 SDK | MQTT 오버 WebSocket | IAM 사용자 또는 역할 | userid |
다음은 principal()
이 반환할 수 있는 다양한 유형의 값을 보여주는 예입니다.
-
X.509 인증서 지문:
ba67293af50bf2506f5f93469686da660c7c844e7b3950bfb16813e0d31e9373
-
IAM 역할 ID 및 세션 이름:
ABCD1EFG3HIJK2LMNOP5:my-session-name
-
사용자 ID 반환:
ABCD1EFG3HIJK2LMNOP5
rand()
0.0~1.0 범위의 균등 분포된 배정밀도 의사 난수를 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
rand()
= 0.8231909191640703
regexp_matches(String, String)
문자열(첫 번째 인수)에 정규식(두 번째 인수)과 일치하는 항목이 포함되어 있으면 true를 반환합니다. 정규 표현식에서 |
코드를 사용하는 경우 ()
와 함께 사용해야 합니다.
예:
regexp_matches("aaaa", "a{2,}")
= true.
regexp_matches("aaaa", "b")
= false.
regexp_matches("aaa", "(aaa|bbb)")
= true.
regexp_matches("bbb", "(aaa|bbb)")
= true.
regexp_matches("ccc", "(aaa|bbb)")
= false.
첫 번째 인수: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 유형 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
Int 의 String 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
Decimal 의 String 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
부울('true' 또는 'false')의 String 표현 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
String . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
배열 | Array 의 String 표현(표준 변환 규칙 사용). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
객체 | 객체의 String 표현(표준 변환 규칙 사용). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Null | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
정의되지 않음 | Undefined . |
두 번째 인수:
유효한 정규식이어야 합니다. 비 문자열 형식은 표준 변환 규칙을 사용하여 String
으로 변환됩니다. 형식에 따라 결과 문자열이 유효한 정규식이 아닐 수도 있습니다. (변환된) 인수가 유효한 정규식이 아닐 경우 결과는 Undefined
입니다.
regexp_replace(String, String, String)
첫 번째 인수에서 모든 두 번째 인수(정규식)를 세 번째 인수로 대체합니다. "$"를 사용하여 캡처 그룹을 참조합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
regexp_replace("abcd", "bc", "x")
= "axd".
regexp_replace("abcd", "b(.*)d", "$1")
= "ac".
첫 번째 인수: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 유형 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
Int 의 String 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
Decimal 의 String 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
부울('true' 또는 'false')의 String 표현 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
소스 값 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
배열 | Array 의 String 표현(표준 변환 규칙 사용). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
객체 | 객체의 String 표현(표준 변환 규칙 사용). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Null | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
정의되지 않음 | Undefined . |
두 번째 인수:
유효한 정규식이어야 합니다. 비 문자열 형식은 표준 변환 규칙을 사용하여 String
으로 변환됩니다. 형식에 따라 결과 문자열이 유효한 정규식이 아닐 수도 있습니다. (변환된) 인수가 유효한 정규식이 아닐 경우 결과는 Undefined
입니다.
세 번째 인수:
유효한 정규식 대체 문자열이어야 합니다. (캡처 그룹을 참조할 수 있습니다.) 비 문자열 형식은 표준 변환 규칙을 사용하여 String
으로 변환됩니다. (변환된) 인수가 유효한 정규식 대체 문자열이 아닐 경우 결과는 Undefined
입니다.
regexp_substr(String, String)
첫 번째 파라미터에서 두 번째 파라미터(정규식)의 첫 번째 일치를 찾습니다. "$"를 사용하여 캡처 그룹을 참조합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
regexp_substr("hihihello", "hi")
= "hi"
regexp_substr("hihihello", "(hi)*")
= "hihi"
첫 번째 인수: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 유형 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
Int 의 String 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
Decimal 의 String 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
부울('true' 또는 'false')의 String 표현 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
String 인수. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
배열 | Array 의 String 표현(표준 변환 규칙 사용). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
객체 | 객체의 String 표현(표준 변환 규칙 사용). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Null | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
정의되지 않음 | Undefined . |
두 번째 인수:
유효한 정규식이어야 합니다. 비 문자열 형식은 표준 변환 규칙을 사용하여 String
으로 변환됩니다. 형식에 따라 결과 문자열이 유효한 정규식이 아닐 수도 있습니다. (변환된) 인수가 유효한 정규식이 아닐 경우 결과는 Undefined
입니다.
나머지(십진수, 십진수)
첫 번째 인수를 두 번째 인수로 나눈 나머지를 반환합니다. mod(Decimal, Decimal)와 동일합니다. 또한 "%"를 동일한 모듈로 기능의 중위 연산자로 사용할 수도 있습니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: remainder(8, 3)
= 2.
왼쪽 피연산자 | 오른쪽 피연산자 | 출력 |
---|---|---|
Int |
Int |
Int , 두 번째 인수를 법으로 하는 첫 번째 인수. |
Int /Decimal |
Int /Decimal |
Decimal , 두 번째 피연산자를 법으로 하는 첫 번째 인수. |
String /Int /Decimal |
String /Int /Decimal |
모든 문자열이 10진수로 변환될 경우 결과는 두 번째 인수를 법으로 하는 첫 번째 인수입니다. 그렇지 않을 경우 Undefined 입니다. |
기타 값 | 기타 값 | Undefined . |
바꾸기(문자열, 문자열, 문자열)
첫 번째 인수에서 모든 두 번째 인수를 세 번째 인수로 대체합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
replace("abcd", "bc", "x")
= "axd"
.
replace("abcdabcd", "b", "x")
= "axcdaxcd"
.
모든 인수 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
인수 유형 | Result | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Int |
Int 의 String 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decimal |
Decimal 의 String 표현. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Boolean |
부울('true' 또는 'false')의 String 표현 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
String |
소스 값 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
배열 | Array 의 String 표현(표준 변환 규칙 사용). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
객체 | 객체의 String 표현(표준 변환 규칙 사용). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Null | Undefined . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
정의되지 않음 | Undefined . |
rpad(String, Int)
두 번째 인수로 지정된 수의 공백이 오른쪽에 추가된 문자열 인수를 반환합니다. Int
인수는 0부터 1000 사이여야 합니다. 제공된 값이 이 유효한 범위를 벗어날 경우 인수가 가장 가까운 유효한 값(0 또는 1000)으로 설정됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
rpad("hello", 2)
= "hello
".
rpad(1, 3)
= "1
".
인수 형식 1 | 인수 형식 2 | Result |
---|---|---|
String |
Int |
제공된 Int 와 동일한 수의 공백이 String 의 오른쪽에 추가됩니다. |
String |
Decimal |
Decimal 인수는 가장 가까운 Int 로 내림되고, 문자열은 제공된 Int 와 동일한 수의 공백이 오른쪽에 추가됩니다. |
String |
String |
두 번째 인수는 Decimal 로 변환된 후 가장 가까운 Int 로 내림됩니다. Int 값과 동일한 수의 공백이 String 의 오른쪽에 추가됩니다. |
기타 값 | Int /Decimal /String |
첫 번째 값이 표준 변환을 통해 String 로 변환된 후, 이 String 에 rpad 함수가 적용됩니다. 변환이 불가능한 경우 결과는 Undefined 입니다. |
임의의 값 | 기타 값 | Undefined . |
round(Decimal)
지정된 Decimal
을 가장 가까운 Int
로 반올림합니다. Decimal
이 두 Int
값과 등거리일 경우(예: 0.5) Decimal
은 올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: Round(1.2)
= 1.
Round(1.5)
= 2.
Round(1.7)
= 2.
Round(-1.1)
= -1.
Round(-1.5)
= -2.
인수 유형 | Result |
---|---|
Int |
인수. |
Decimal |
Decimal 은 가장 가까운 Int 로 내림됩니다. |
String |
Decimal 은 가장 가까운 Int 로 내림됩니다. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
기타 값 | Undefined . |
rtrim(String)
제공된 String
에서 모든 후행 공백(탭 및 공백)을 제거합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
rtrim(" h i ")
= " h i"
인수 유형 | Result |
---|---|
Int |
Int 의 String 표현. |
Decimal |
Decimal 의 String 표현. |
Boolean |
부울('true' 또는 'false')의 String 표현 |
배열 | Array 의 String 표현(표준 변환 규칙 사용). |
객체 | 객체의 String 표현(표준 변환 규칙 사용). |
Null | Undefined . |
정의되지 않음 | Undefined |
sign(Decimal)
지정된 숫자의 부호를 반환합니다. 인수의 부호가 플러스일 경우 1이 반환됩니다. 인수의 부호가 마이너스일 경우 -1이 반환됩니다. 인수가 0일 경우 0이 반환됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
sign(-7)
= -1.
sign(0)
= 0.
sign(13)
= 1.
인수 유형 | Result |
---|---|
Int |
Int , Int 값의 부호. |
Decimal |
Int , Decimal 값의 부호. |
String |
Int , Decimal 값의 부호. 문자열은 Decimal 값으로 변환된 후 Decimal 값의 부호가 반환됩니다. String 을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. SQL 버전 2015-10-08 이상에서 지원됩니다. |
기타 값 | Undefined . |
sin(Decimal)
숫자의 사인을 라디안 단위로 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: sin(0)
= 0.0
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 사인. |
Decimal |
Decimal (배정밀도), 인수의 사인. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 사인. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
Undefined |
Undefined . |
sinh(Decimal)
숫자의 쌍곡사인을 반환합니다. Decimal
값은 함수 적용 전에 배정밀도로 반올림됩니다. 결과는 배정밀도의 Decimal
값입니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: sinh(2.3)
= 4.936961805545957
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 쌍곡사인. |
Decimal |
Decimal (배정밀도), 인수의 쌍곡사인. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 쌍곡사인. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
sourceip()
연결되는 디바이스 또는 라우터의 IP 주소를 검색합니다. 디바이스가 인터넷에 직접 연결되어 있는 경우 함수는 디바이스의 소스 IP 주소를 반환합니다. 디바이스가 인터넷에 연결되는 라우터에 연결되어 있는 경우 함수는 라우터의 소스 IP 주소를 반환합니다. SQL 버전 2016-03-23에서 지원됩니다. sourceip()
는 파라미터를 사용하지 않습니다.
중요
디바이스의 퍼블릭 소스 IP 주소는 대개 마지막 Network Address Translation(NAT) Gateway(예: 인터넷 서비스 공급자의 라우터 또는 케이블 모뎀)의 IP 주소입니다.
예:
sourceip()="192.158.1.38"
sourceip()="1.102.103.104"
sourceip()="2001:db8:ff00::12ab:34cd"
SQL 예시
SELECT *, sourceip() as deviceIp FROM 'some/topic'
규칙 액션에서 AWS IoT Core sourceip () 함수를 사용하는 방법의 예:
예 1
다음 예시는 DynamoDB 작업에서 () 함수를 대체 템플릿으로 호출하는 방법을 보여줍니다.
{ "topicRulePayload": { "sql": "SELECT * AS message FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "dynamoDB": { "tableName": "my_ddb_table", "hashKeyField": "key", "hashKeyValue": "${sourceip()}", "rangeKeyField": "timestamp", "rangeKeyValue": "${timestamp()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB" } } ] } }
예제 2
다음 예시는 대체 템플릿을 사용하여 sourceip() 함수를 MQTT 사용자 속성으로 추가하는 방법을 보여줍니다.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "${topic()}/republish", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_republish", "headers": { "payloadFormatIndicator": "UTF8_DATA", "contentType": "rule/contentType", "correlationData": "cnVsZSBjb3JyZWxhdGlvbiBkYXRh", "userProperties": [ { "key": "ruleKey1", "value": "ruleValue1" }, { "key": "sourceip", "value": "${sourceip()}" } ] } } } ] } }
메시지 브로커와 기본 수집 경로 모두에서 AWS IoT Core 규칙으로 전달되는 메시지에서 소스 IP 주소를 검색할 수 있습니다. IPv4와 IPv6 메시지에 대한 소스 IP도 검색할 수 있습니다. 소스 IP는 다음과 같이 표시됩니다.
IPv6: yyyy:yyyy:yyyy::yyyy:yyyy
IPv4: xxx.xxx.xxx.xxx
참고
원본 소스 IP는 재게시 작업을 거쳐 전달되지 않습니다.
substring(String, Int[, Int])
String
이후에 하나 또는 두 개의 Int
값이 필요합니다. String
및 단일 Int
인수일 경우 이 함수는 지정된 Int
인덱스(0부터 시작, 포함)부터 String
의 끝까지의 지정된 String
의 하위 문자열을 반환합니다. String
및 2개 Int
인수일 경우 이 함수는 첫 번째 Int
인덱스 인수(0부터 시작, 포함)부터 두 번째 Int
인덱스 인수(0부터 시작, 미포함)까지의 지정된 String
의 하위 문자열을 반환합니다. 0보다 작은 인덱스는 0으로 설정됩니다. String
길이보다 큰 인덱스는 String
길이로 설정됩니다. 3개 인수 버전의 경우, 첫 번째 인덱스가 두 번째 인덱스보다 크거나 같을 경우 결과는 빈 String
입니다.
지정된 인수가 (String
, Int
) 또는 (String
, Int
, Int
)가 아닐 경우 인수에 표준 변환을 적용하여 올바른 형식으로 변환합니다. 형식을 변환할 수 없을 경우 함수 결과는 Undefined
입니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
substring("012345", 0)
= "012345".
substring("012345", 2)
= "2345".
substring("012345", 2.745)
= "2345".
substring(123, 2)
= "3".
substring("012345", -1)
= "012345".
substring(true, 1.2)
= "rue".
substring(false, -2.411E247)
= "false".
substring("012345", 1, 3)
= "12".
substring("012345", -50, 50)
= "012345".
substring("012345", 3, 1)
= "".
sql_version()
이 규칙에 지정된 SQL 버전을 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
sql_version()
= "2016-03-23"
sqrt(Decimal)
숫자의 제곱근을 반환합니다. Decimal
인수는 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: sqrt(9)
= 3.0.
인수 유형 | Result |
---|---|
Int |
인수의 제곱근. |
Decimal |
인수의 제곱근. |
Boolean |
Undefined . |
String |
인수의 제곱근. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
startswith(String, String)
첫 번째 문자열 인수가 두 번째 문자열 인수로 시작하는지 여부를 나타내는 Boolean
을 반환합니다. 인수가 Null
또는 Undefined
일 경우 결과는 Undefined
입니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
startswith("ranger","ran")
= true
인수 형식 1 | 인수 형식 2 | Result |
---|---|---|
String |
String |
첫 번째 문자열이 두 번째 문자열로 시작하는지 여부. |
기타 값 | 기타 값 | 두 인수는 모두 표준 변환 규칙을 사용하여 문자열로 변환됩니다. 첫 번째 문자열이 두 번째 문자열로 시작하면 true를 반환합니다. 인수가 Null 또는 Undefined 일 경우 결과는 Undefined 입니다. |
tan(Decimal)
숫자의 탄젠트를 라디안 단위로 반환합니다. Decimal
값은 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: tan(3)
= -0.1425465430742778
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 탄젠트. |
Decimal |
Decimal (배정밀도), 인수의 탄젠트. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 탄젠트. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
tanh(Decimal)
숫자의 쌍곡탄젠트를 라디안 단위로 반환합니다. Decimal
값은 함수 적용 전에 배정밀도로 반올림됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예: tanh(2.3)
= 0.9800963962661914
인수 유형 | Result |
---|---|
Int |
Decimal (배정밀도), 인수의 쌍곡탄젠트. |
Decimal |
Decimal (배정밀도), 인수의 쌍곡탄젠트. |
Boolean |
Undefined . |
String |
Decimal (배정밀도), 인수의 쌍곡탄젠트. 문자열을 Decimal 로 변환할 수 없는 경우 결과는 Undefined 입니다. |
배열 | Undefined . |
객체 | Undefined . |
Null | Undefined . |
정의되지 않음 | Undefined . |
time_to_epoch(String, String)
time_to_epoch
함수를 사용하여 타임스탬프 문자열을 Unix Epoch 시간의 밀리초 수로 변환합니다. SQL 버전 2016-03-23 이상에서 지원됩니다. 밀리초를 형식이 지정된 타임스탬프 문자열로 변환하려면 parse_time(String, Long[, String]) 단원을 참조하세요.
time_to_epoch
함수는 다음 인수를 사용합니다.
- 타임스탬프
-
(문자열) Unix Epoch 이후 밀리초로 변환할 타임스탬프 문자열입니다. 타임스탬프 문자열에서 시간대를 지정하지 않으면 함수는 UTC 시간대를 사용합니다.
- 패턴
-
(문자열) JDK11 Time 형식
을 따르는 날짜/시간 패턴입니다.
예:
time_to_epoch("2020-04-03 09:45:18 UTC+01:00", "yyyy-MM-dd HH:mm:ss
VV")
= 1585903518000
time_to_epoch("18 December 2015", "dd MMMM yyyy")
= 1450396800000
time_to_epoch("2007-12-03 10:15:30.592 America/Los_Angeles", "yyyy-MM-dd
HH:mm:ss.SSS z")
= 1196705730592
timestamp()
규칙 엔진이 준수하는 1970년 1월 1일 목요일 UTC (협정 세계시) 00:00:00 부터 현재 타임스탬프를 밀리초 단위로 반환합니다. AWS IoT SQL 버전 2015-10-08 이상에서 지원됩니다.
예: timestamp()
= 1481825251155
topic(Decimal)
규칙을 트리거한 메시지가 전송된 주제를 반환합니다. 지정된 파라미터가 없을 경우 전체 주제가 반환됩니다. Decimal
파라미터는 특정 주제 세그먼트를 지정하는데 사용되며, 첫 번째 세그먼트는 1로 지정됩니다. 주제 foo/bar/baz
의 경우, topic(1)이 foo
를 반환하고, topic(2)가 bar
를 반환하는 식입니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
topic()
= "things/myThings/thingOne"
topic(1)
= "things"
Basic Ingest를 사용하는 경우 주제($aws/rules/
)의 최초 접두사는 topic() 함수에 사용할 수 없습니다. 예를 들어 주제는 다음과 같습니다.rule-name
$aws/rules/BuildingManager/Buildings/Building5/Floor2/Room201/Lights
topic()
= "Buildings/Building5/Floor2/Room201/Lights"
topic(3)
= "Floor2"
traceid()
MQTT 메시지의 트레이스 ID(UUID), 또는 메시지가 MQTT를 통해 전송되지 않은 경우 Undefined
를 반환합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
traceid()
= "12345678-1234-1234-1234-123456789012"
transform(String, Object, Array)
Object
파라미터에서 Array
파라미터의 지정된 변환 결과를 포함하는 객체 배열을 반환합니다.
SQL 버전 2016-03-23 이상에서 지원됩니다.
- String
사용할 변환 모드입니다. 지원되는 변환 모드와
Object
및Array
파라미터에서Result
를 생성하는 방법은 다음 표를 참조하세요.- 객체
Array
의 각 요소에 적용할 속성을 포함하는 객체입니다.- 배열
-
Object
의 속성이 적용되는 객체의 배열입니다.이 배열의 각 객체는 함수의 응답에 있는 객체에 해당합니다. 함수 응답의 각 객체에는 원래 객체에 있는 속성과,
String
에 지정된 변환 모드에 의해 결정되어Object
에서 제공한 속성이 포함됩니다.
|
|
|
Result |
---|---|---|---|
|
객체 |
객체 배열 |
각 객체에 |
기타 값 |
임의의 값 |
임의의 값 |
정의되지 않음 |
참고
이 함수에 의해 반환된 배열은 128KiB로 제한됩니다.
변환 함수 예제 1
이 예제에서는 transform() 함수가 데이터 객체와 배열에서 단일 객체 배열을 생성하는 방법을 보여줍니다.
이 예에서 다음 메시지는 MQTT 주제 A/B
에 게시됩니다.
{ "attributes": { "data1": 1, "data2": 2 }, "values": [ { "a": 3 }, { "b": 4 }, { "c": 5 } ] }
주제 규칙 작업에 대한 이 SQL 문은 String
값이 enrichArray
인 transform() 함수를 사용합니다. 이 예에서 Object
는 메시지 페이로드의 attributes
속성이고 Array
는 세 개의 객체를 포함하는 values
배열입니다.
select value transform("enrichArray", attributes, values) from 'A/B'
메시지 페이로드를 수신하면 SQL 문은 다음과 같은 응답으로 평가됩니다.
[ { "a": 3, "data1": 1, "data2": 2 }, { "b": 4, "data1": 1, "data2": 2 }, { "c": 5, "data1": 1, "data2": 2 } ]
변환 함수 예제 2
이 예에서는 transform() 함수가 리터럴 값을 사용하여 메시지 페이로드의 개별 속성을 포함시키고 이름을 바꾸는 방법을 보여줍니다.
이 예에서 다음 메시지는 MQTT 주제 A/B
에 게시됩니다. 이는 변환 함수 예제 1에 사용된 것과 동일한 메시지입니다.
{ "attributes": { "data1": 1, "data2": 2 }, "values": [ { "a": 3 }, { "b": 4 }, { "c": 5 } ] }
주제 규칙 작업에 대한 이 SQL 문은 String
값이 enrichArray
인 transform() 함수를 사용합니다. Object
함수의 transform()에는 메시지 페이로드의 값이 key
인 attributes.data1
라는 단일 속성이 있고 Array
는 이전 예에서 사용된 것과 동일한 세 개의 객체를 포함하는 values
배열입니다.
select value transform("enrichArray", {"key": attributes.data1}, values) from 'A/B'
메시지 페이로드를 수신하면 이 SQL 문은 다음 응답으로 평가됩니다. 응답에서 data1
속성의 이름이 key
로 지정되는 방법에 주목하세요.
[ { "a": 3, "key": 1 }, { "b": 4, "key": 1 }, { "c": 5, "key": 1 } ]
변환 함수 예제 3
이 예에서는 중첩된 SELECT 절에서 transform() 함수를 사용하여 여러 속성을 선택하고 후속 처리를 위해 새 객체를 만드는 방법을 보여줍니다.
이 예에서 다음 메시지는 MQTT 주제 A/B
에 게시됩니다.
{ "data1": "example", "data2": { "a": "first attribute", "b": "second attribute", "c": [ { "x": { "someInt": 5, "someString": "hello" }, "y": true }, { "x": { "someInt": 10, "someString": "world" }, "y": false } ] } }
이 변환 함수의 Object
는 메시지의 data2
객체의 a
및 b
요소를 포함하는, SELECT 문에서 반환된 객체입니다. Array
파라미터는 원본 메시지에서 data2.c
배열의 두 객체로 구성됩니다.
select value transform('enrichArray', (select a, b from data2), (select value c from data2)) from 'A/B'
앞의 메시지를 사용하여 SQL 문은 다음 응답으로 평가됩니다.
[ { "x": { "someInt": 5, "someString": "hello" }, "y": true, "a": "first attribute", "b": "second attribute" }, { "x": { "someInt": 10, "someString": "world" }, "y": false, "a": "first attribute", "b": "second attribute" } ]
이 응답에서 반환된 배열은 batchMode
를 지원하는 주제 규칙 작업과 함께 사용할 수 있습니다.
trim(String)
제공된 String
에서 모든 선행 및 후행 공백을 제거합니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예제
Trim(" hi ")
= "hi"
인수 유형 | Result |
---|---|
Int |
모든 선행 및 후행 공백이 제거된 Int 의 String 표현. |
Decimal |
모든 선행 및 후행 공백이 제거된 Decimal 의 String 표현. |
Boolean |
모든 선행 및 후행 공백이 제거된 Boolean ("true" 또는 "false")의 String 표현. |
String |
모든 선행 및 후행 공백이 제거된 String . |
배열 | Array 의 String 표현(표준 변환 규칙 사용). |
객체 | 객체의 String 표현(표준 변환 규칙 사용). |
Null | Undefined . |
정의되지 않음 | Undefined . |
trunc(Decimal, Int)
첫 번째 인수를 두 번째 인수로 지정된 Decimal
자리수로 절사합니다. 두 번째 인수가 0보다 작을 경우 0으로 설정됩니다. 두 번째 인수가 34보다 클 경우 34로 설정됩니다. 끝의 0은 결과에서 제거됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
trunc(2.3, 0)
= 2.
trunc(2.3123, 2)
= 2.31.
trunc(2.888, 2)
= 2.88.
trunc(2.00, 5)
= 2.
인수 형식 1 | 인수 형식 2 | Result |
---|---|---|
Int |
Int |
소스 값 |
Int /Decimal |
Int /Decimal |
첫 번째 인수가 두 번째 인수로 지정된 길이로 절사됩니다. 두 번째 인수는 Int 가 아닐 경우 가까운 Int 로 내림됩니다. |
Int /Decimal /String |
Int /Decimal |
첫 번째 인수가 두 번째 인수로 지정된 길이로 절사됩니다. 두 번째 인수는 Int 가 아닐 경우 가까운 Int 로 내림됩니다. String 은 Decimal 값으로 변환됩니다. 문자열 변환이 실패할 경우 결과는 Undefined 입니다. |
기타 값 | Undefined . |
upper(String)
지정된 String
의 대문자 버전을 반환합니다. 비 String
인수는 표준 변환 규칙을 사용하여 String
으로 변환됩니다. SQL 버전 2015-10-08 이상에서 지원됩니다.
예:
upper("hello")
= "HELLO"
upper(["hello"])
= "[\"HELLO\"]"