buildschema() (aggregációs függvény)

Létrehozza azt a minimális sémát, amely a DynamicExpr összes értékét elismeri.

Megjegyzés

Ezt a függvényt az összegző operátorral együtt használja a rendszer.

Syntax

buildschema(DynamicExpr)

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
DynamicExpr dynamic ✔️ Az összesítés kiszámításához használt kifejezés.

Válaszok

A DynamicExpr összes értékét elismerő minimális sémát adja vissza.

Tipp

Ha a bemenet egy JSON-sztring, a parse_json() függvénnyel alakítsa át a JSON-t dinamikus értékké. Ellenkező esetben hiba fordulhat elő.

Példa

Az alábbi példa egy sémát hoz létre a következők alapján:

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

Results (Eredmények)

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

Az eredményként kapott séma a következőt mutatja:

  • A gyökérobjektum egy tároló, amelynek négy tulajdonsága van: x, y, z és t.
  • A nevű x tulajdonság hosszú vagy sztring típusú.
  • A ii típusú kettős tulajdonságy, vagy egy másik tároló, amelynek a tulajdonsága wsztring típusú.
  • A indexer kulcsszó azt jelzi, hogy z és t tömbök.
  • A tömb z minden eleme hosszú vagy sztring típusú.
  • t sztringek tömbje.
  • Minden tulajdonság implicit módon nem kötelező, és bármelyik tömb üres lehet.

Sémamodell

A visszaadott séma szintaxisa a következő:

Tároló ::= '{' Named-type* '}'; Név-típus: := (név | ""indexer") ":" Típus; Típus ::= Primitív-típus | Unió típusa | Konténer; Union-type ::= "[' Type* ""; Primitív-típus::= "hosszú" | "sztring" | ...;

Az értékek egyenértékűek a TypeScript típusú széljegyzetek egy részhalmazával, amely Kusto dinamikus értékként van kódolva. A TypeScriptben a példaséma a következő:

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