Partager via


buildschema() (fonction d’agrégation)

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

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

Remarque

Cette fonction est utilisée conjointement avec l’opérateur de synthèse.

Syntaxe

buildschema(DynamicExpr)

En savoir plus sur les conventions de syntaxe.

Paramètres

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

Retours

Retourne le schéma minimal qui admet 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 un autre conteneur avec une propriété appelée w chaîne de type.
  • Le indexer mot clé indique qu’il s’agit z de t 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é : := (nom | '""indexer') ' :' Type ; Type ::= Primitive-type | Type d’union | 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 }
}