다음을 통해 공유


buildschema()(집계 함수)

DynamicExpr의 모든 값을 인정하는 최소 스키마를 빌드합니다.

참고

이 함수는 summarize 연산자와 함께 사용됩니다.

Syntax

buildschema(DynamicExpr)

구문 규칙에 대해 자세히 알아보세요.

매개 변수

이름 형식 필수 Description
DynamicExpr dynamic ✔️ 집계 계산에 사용되는 식입니다.

반환

DynamicExpr의 모든 값을 인정하는 최소 스키마를 반환합니다.

입력이 JSON 문자열인 경우 parse_json() 함수를 사용하여 JSON을 동적 값으로 변환합니다. 그렇지 않으면 오류가 발생할 수 있습니다.

예제

다음 예제에서는 다음을 기반으로 스키마를 빌드합니다.

  • {"x":1, "y":3.5}
  • {"x":"somevalue", "z":[1, 2, 3]}
  • {"y":{"w":"zzz"}, "t":["aa", "bb"], "z":["foo"]}
datatable(value: dynamic) [
    dynamic({"x":1, "y":3.5}),
    dynamic({"x":"somevalue", "z":[1, 2, 3]}),
    dynamic({"y":{"w":"zzz"}, "t":["aa", "bb"], "z":["foo"]})
]
| summarize buildschema(value)

결과

schema_value
{"x":["long","string"],"y":["double",{"w":"string"}],"z":{"indexer":["long","string"]},"t":{"indexer":"string"}}

결과 스키마는 다음을 알려줍니다.

  • 루트 개체는 x, y, z 및 t라는 네 개의 속성이 있는 컨테이너입니다.
  • 라는 x 속성은 long 형식이거나 문자열 형식입니다.
  • double 형식의 ii라는 y 속성 또는 문자열 형식이라는 w 속성이 있는 다른 컨테이너입니다.
  • indexer 키워드(keyword) 및 t 가 배열임을 z 나타냅니다.
  • 배열 z 의 각 항목은 long 형식이거나 문자열 형식입니다.
  • t 는 문자열의 배열입니다.
  • 모든 속성은 암시적으로 선택적이며 배열은 비어 있을 수 있습니다.

스키마 모델

반환되는 스키마의 구문은 다음과 같습니다.

컨테이너 ::= '{' Named-type* '}'; Named-type: := (name | '"indexer"') ':' 형식; 형식 ::= Primitive-type | Union-type | 컨테이너; Union-type ::= '[' Type* ']'; Primitive-type ::= "long" | "string" | ...;

값은 Kusto 동적 값으로 인코딩된 TypeScript 형식 주석의 하위 집합과 동일합니다. TypeScript에서 예제 스키마는 다음과 같습니다.

var someobject:
{
    x?: (number | string),
    y?: (number | { w?: string}),
    z?: { [n:number] : (long | string)},
    t?: { [n:number]: string }
}