Partager via


buildschema() (fonction d’agrégation)

Génère le schéma minimal qui admet toutes les valeurs de DynamicExpr.

Notes

Cette fonction est utilisée conjointement avec l’opérateur summarize.

Syntax

buildschema(DynamicExpr)

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
DynamicExpr dynamic ✔️ Expression utilisée pour le calcul d’agrégation.

Retours

Retourne le schéma minimal qui accepte toutes les valeurs de DynamicExpr.

Conseil

Si l’entrée est une chaîne JSON, utilisez la fonction parse_json() pour convertir le JSON en valeur dynamique . Sinon, une erreur risque de se produire.

Exemple

L’exemple suivant génère un schéma basé sur :

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

Résultats

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

Le schéma résultant nous indique que :

  • L’objet racine est un conteneur avec quatre propriétés nommées x, y, z et t.
  • La propriété appelée x est de type long ou de type chaîne.
  • Propriété appelée y ii de type double, ou autre conteneur avec une propriété appelée w de type chaîne.
  • Le indexer mot clé indique que z et t sont des tableaux.
  • Chaque élément du tableau z est de type long ou de type chaîne.
  • t est un tableau de chaînes.
  • Chaque propriété est implicitement facultative et tout tableau peut être vide.

Modèle de schéma

La syntaxe du schéma retourné est la suivante :

Conteneur ::= '{' Named-type* '}' ; Type nommé : := (name | '"indexer"') ' :' Type ; Type ::= Primitive-type | Union-type | Conteneur; Union-type ::= '[' Type* ']' ; Primitive-type ::= « long » | « string » | ...;

Les valeurs sont équivalentes à un sous-ensemble d’annotations de type TypeScript, encodées en tant que valeur dynamique Kusto. Dans TypeScript, l’exemple de schéma serait :

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