buildchema() (funzione di aggregazione)

Compila lo schema minimo che ammette tutti i valori di DynamicExpr.

Nota

Questa funzione viene usata insieme all'operatore di riepilogo.

Sintassi

buildschema(DynamicExpr)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
DynamicExpr dynamic ✔️ Espressione usata per il calcolo dell'aggregazione.

Restituisce

Restituisce lo schema minimo che ammette tutti i valori di DynamicExpr.

Suggerimento

Se l'input è una stringa JSON, usare la funzione parse_json() per convertire il codice JSON in un valore dinamico . In caso contrario, è possibile che si verifichi un errore.

Esempio

Nell'esempio seguente viene compilato uno schema basato su:

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

Risultati

schema_value
{"x":["long","string"],"y":["double",{"w":"string"}],"zindexer":{""long","string"]},"tindexer":{"string"}}

Lo schema risultante indica che:

  • L'oggetto radice è un contenitore con quattro proprietà denominate x, y, z e t.
  • La proprietà denominata x è di tipo long o di tipo string.
  • La proprietà denominata y ii di tipo double o un altro contenitore con una proprietà denominata wstringa di tipo.
  • La indexer parola chiave indica che z e t sono matrici.
  • Ogni elemento della matrice z è di tipo lungo o di stringa di tipo.
  • t è una matrice di stringhe.
  • Ogni proprietà è facoltativa in modo implicito e qualsiasi matrice può essere vuota.

Modello di schema

La sintassi dello schema restituito è:

Contenitore ::= '{' Named-type* '}'; Tipo denominato: := (nome | '""indexer") ':' Tipo; Tipo ::= Primitive-type | Tipo di unione | Contenitore; Tipo di unione ::= '[' Tipo* ']'; Tipo primitivo ::= "long" | "string" | ...;

I valori sono equivalenti a un subset di annotazioni di tipo TypeScript, codificate come valore dinamico Kusto. In TypeScript lo schema di esempio sarà:

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