Partager via


schema_merge, plug-in

S’applique à : ✅Microsoft Fabric✅Azure Data Explorer

Fusionne les définitions de schéma tabulaire dans un schéma unifié.

Les définitions de schéma sont censées être au format produit par l’opérateur getschema .

L’opération schema merge joint des colonnes dans des schémas d’entrée et tente de réduire les types de données en types communs. Si les types de données ne peuvent pas être réduits, une erreur s’affiche sur la colonne problématique.

Le plug-in est appelé avec l’opérateur evaluate .

Syntaxe

T| evaluate schema_merge(PreserveOrder)

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
PreserveOrder bool Lorsqu’il est défini truesur , dirige le plug-in pour valider l’ordre des colonnes tel que défini par le premier schéma tabulaire conservé. Si la même colonne se trouve dans plusieurs schémas, l’ordinal de colonne doit être semblable à l’ordinal de colonne du premier schéma dans lequel il est apparu. La valeur par défaut est true.

Retours

Le schema_merge plug-in retourne une sortie similaire à celle retournée getschema par l’opérateur.

Exemples

Fusionnez avec un schéma avec une nouvelle colonne ajoutée.

let schema1 = datatable(Uri:string, HttpStatus:int)[] | getschema;
let schema2 = datatable(Uri:string, HttpStatus:int, Referrer:string)[] | getschema;
union schema1, schema2 | evaluate schema_merge()

Sortie

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String string
httpStatus 1 System.Int32 int
Referrer 2 System.String string

Fusionnez avec un schéma qui a un ordre de colonne différent (HttpStatus les modifications ordinales de 1 vers 2 dans la nouvelle variante).

let schema1 = datatable(Uri:string, HttpStatus:int)[] | getschema;
let schema2 = datatable(Uri:string, Referrer:string, HttpStatus:int)[] | getschema;
union schema1, schema2 | evaluate schema_merge()

Sortie

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String string
Referrer 1 System.String string
httpStatus -1 ERROR(unknown CSL type :ERROR(columns are out of order)) ERROR(columns are out of order)

Fusionnez avec un schéma qui a un ordre de colonne différent, mais avec PreserveOrder défini sur false.

let schema1 = datatable(Uri:string, HttpStatus:int)[] | getschema;
let schema2 = datatable(Uri:string, Referrer:string, HttpStatus:int)[] | getschema;
union schema1, schema2 | evaluate schema_merge(PreserveOrder = false)

Sortie

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String string
Referrer 1 System.String string
httpStatus 2 System.Int32 int