사용자 정의 함수 만들기
UDF(사용자 정의 함수)는 Azure Cosmos DB for NoSQL의 쿼리 언어 문법을 확장하고 사용자 지정 비즈니스 논리를 구현하는 데 사용됩니다. UDF는 SQL 쿼리 언어를 향상시키고 확장할 때 쿼리 내에서만 호출할 수 있습니다.
참고
UDF는 컨텍스트 개체에 액세스할 수 없고 계산 전용 코드로 사용됩니다.
다음은 이름 및 가격 속성이 있는 제품의 JSON 문서 예제입니다.
{
"name": "Black Bib Shorts (Small)",
"price": 80.00
}
이와 같은 항목이 여러 개 포함된 컨테이너에서 데이터를 가져오는 간단한 SQL 쿼리는 두 필드를 포함하도록 구성됩니다.
SELECT
p.name,
p.price
FROM
products p
UDF는 간단한 비즈니스 논리를 쿼리에 삽입할 수 있는 작은 영역을 제공하여 SQL 쿼리 언어를 확장합니다. 그럼 이 예제를 이용해 사용자 정의 함수를 만들어서 사업 소득세를 적용해 보겠습니다. 예제 시나리오에서는 15% 세금을 적용하고 세 번째 priceWithTax 속성을 포함하는 이상적인 결과 집합으로 끝나려고 합니다.
[
{
"name": "Black Bib Shorts (Small)",
"price": 80.00,
"priceWithTax": 92.00
}
]
사용자 정의 함수는 하나 이상의 스칼라 입력을 가져온 다음, 스칼라 값을 출력으로 반환하는 JavaScript 함수로 정의됩니다.
function name(input) {
return output;
}
이 예제 함수에서 스칼라 입력은 1.15 로 배수된 숫자로 간주되어 15개의% 세금을 추가합니다.
function addTax(preTax) {
return preTax * 1.15;
}
업데이트된 쿼리에는 udf.addTax() 필드를 입력 매개 변수로 전달하는 구문을 사용하고 해당 필드의 출력을 priceWithTax라는 이름으로 별칭을 지정하여 udf 함수를 참조하는 세 번째 프로젝션된 필드가 포함됩니다.
SELECT
p.name,
p.price,
udf.addTax(p.price) AS priceWithTax
FROM
products p