다음을 통해 공유


.create function 명령

지정된 이름을 사용하여 재사용 가능한 KQL 쿼리인 저장된 함수를 만듭니다. 함수 정의는 데이터베이스 메타데이터와 함께 유지됩니다.

함수는 다른 함수를 호출할 수 있습니다(재귀성은 지원되지 않음). let 또한 문은 함수 본문의 일부로 허용됩니다. 문을 참조 let 하세요.

매개 변수 형식 및 CSL 문에 대한 규칙은 문과 동일합니다let.

사용 권한

이 명령을 실행하려면 데이터베이스 사용자 이상의 권한이 있어야 합니다.

Syntax

.createfunction [ ifnotexists ] [ with(propertyName=propertyValue [, ...]) ] functionName(매개 변수){}

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 형식 필수 Description
ifnotexists string 지정된 경우 함수가 아직 없는 경우에만 함수가 만들어집니다.
functionName string ✔️ 만들거나 변경할 함수의 이름입니다.
propertyName, propertyValue string 키-값 속성 쌍의 쉼표로 구분된 목록입니다. 지원되는 속성을 참조하세요.
parameters string 함수에 필요한 매개 변수의 쉼표로 구분된 목록입니다. 각 매개 변수의 형식은 ParameterName:ParameterDataType이어야 합니다.
body string ✔️ 사용자 정의 함수 식입니다.

지원되는 속성

Name 형식 Description
docstring string UI용 함수에 대한 설명입니다.
folder string UI 함수 분류에 사용되는 폴더의 이름입니다.
view bool 이 함수를 저장된 보기로 지정합니다. 저장된 뷰는 검색공용 구조체 * 시나리오에 참여할 수 있습니다. 자세한 내용은 보기를 참조하세요.
skipvalidation bool 함수에서 유효성 검사 논리를 실행할지 여부를 결정하고 함수가 유효하지 않은 경우 프로세스에 실패합니다. 기본값은 false입니다.

함수에 클러스터 간 쿼리가 포함되고 Kusto 쿼리 언어 스크립트를 사용하여 함수를 다시 만들려는 경우 를 로 true설정합니다skipvalidation.

반환

출력 매개 변수 형식 Description
Name string 함수의 이름입니다.
매개 변수 string 함수에 필요한 매개 변수입니다.
본문 string (0개 이상) let 문 뒤에 함수 호출 시 평가되는 유효한 CSL 식이 잇습니다.
폴더 string UI 함수 분류에 사용되는 폴더입니다. 이 매개 변수는 함수가 호출되는 방식을 변경하지 않습니다.
DocString string UI용 함수에 대한 설명입니다.

참고

  • 함수가 이미 있는 경우:
    • 플래그를 지정하면 ifnotexists 명령이 무시됩니다(변경 내용이 적용되지 않음).
    • 플래그를 지정하지 않으면 ifnotexists 오류가 반환됩니다.
    • 기존 함수를 변경하려면 .alter function
  • 문에서 let 모든 데이터 형식이 지원되는 것은 아닙니다. 지원되는 형식은 부울, 문자열, long, datetime, timespan, double 및 dynamic입니다.
  • 를 사용하여 skipvalidation 함수의 의미 체계 유효성 검사를 건너뜁니다. 이는 함수가 잘못된 순서로 생성되고 F2를 사용하는 F1이 이전에 만들어진 경우에 유용합니다.

예제

간단한 데모 함수

.create function 
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()  {StormEvents | take 100}
Name 매개 변수 본문 폴더 DocString
MyFunction1 () {StormEvents | take 100} 데모 간단한 데모 함수

매개 변수를 사용하여 데모 함수

.create function
with (docstring = 'Demo function with parameter', folder='Demo')
 MyFunction2(myLimit: long)  {StormEvents | take myLimit}
Name 매개 변수 본문 폴더 DocString
MyFunction2 (myLimit:long) {StormEvents | take myLimit} 데모 매개 변수를 사용하여 데모 함수