Udostępnij za pośrednictwem


buildschema() (funkcja agregacji)

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Tworzy minimalny schemat, który przyznaje wszystkie wartości elementu DynamicExpr.

Uwaga

Ta funkcja jest używana w połączeniu z operatorem podsumowania.

Składnia

buildschema(DynamicExpr)

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
DynamicExpr dynamic ✔️ Wyrażenie używane do obliczania agregacji.

Zwraca

Zwraca minimalny schemat, który przyznaje wszystkie wartości elementu DynamicExpr.

Napiwek

Jeśli dane wejściowe są ciągiem JSON, użyj funkcji parse_json(), aby przekonwertować kod JSON na wartość dynamiczną. W przeciwnym razie może wystąpić błąd.

Przykład

Poniższy przykład tworzy schemat na podstawie:

  • {"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)

Wyniki

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

Wynikowy schemat informuje nas, że:

  • Obiekt główny jest kontenerem o czterech właściwościach o nazwach x, y, z i t.
  • Wywoływana x właściwość jest typu long lub typu ciąg.
  • Właściwość o nazwie y ii typu double lub inny kontener z właściwością o nazwie w ciąg typu.
  • Słowo indexer kluczowe wskazuje, że z i t są tablicami.
  • Każdy element w tablicy z ma typ długi lub ciąg typu.
  • t jest tablicą ciągów.
  • Każda właściwość jest niejawnie opcjonalna, a każda tablica może być pusta.

Model schematu

Składnia zwracanego schematu to:

Kontener ::= '{' Nazwany typ* '}'; Nazwany typ: := (nazwa | '"indexer"') ':' Type; Typ ::= Typ pierwotny | Typ unii | Kontener; Typ unii ::= '[' Type* ']'; Typ pierwotny ::= "long" | "string" | ...;

Wartości są równoważne podzestawowi adnotacji typu TypeScript zakodowanym jako wartość dynamiczna Kusto. W języku TypeScript przykładowy schemat będzie:

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