Condividi tramite


buildchema() (funzione di aggregazione)

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft Sentinel

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

Nota

Questa funzione viene usata insieme all'operatore summarize.

Sintassi

buildschema(DynamicExpr)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
DynamicExpr dynamic ✔️ Espressione utilizzata per il calcolo dell'aggregazione.

Valori restituiti

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

L'esempio seguente compila 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"}],"z":{"indexer":["long","string"]},"t":{""indexer"string"}}

Lo schema risultante indica che:

  • L'oggetto radice è un contenitore con quattro proprietà denominate x, y, z e t.
  • La proprietà chiamata x è di tipo long o di tipo string.
  • Proprietà denominata y ii di tipo double o un altro contenitore con una proprietà denominata w stringa di tipo.
  • La indexer parola chiave indica che z e t sono matrici.
  • Ogni elemento nella matrice z è di tipo long o di tipo string.
  • 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* '}'; Named-type: := (name | '""indexer') ':' Type; Tipo ::= Tipo primitivo | Tipo unione | Contenitore; Union-type ::= '[' Type* ']'; 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 }
}