Share via


Complemento schema_merge

Combina definiciones de esquema tabular en un esquema unificado.

Se espera que las definiciones de esquema estén en el formato generado por el getschema operador .

La schema merge operación combina columnas en esquemas de entrada e intenta reducir los tipos de datos a los comunes. Si no se pueden reducir los tipos de datos, se muestra un error en la columna problemática.

El complemento se invoca con el evaluate operador .

Syntax

T|evaluateschema_merge(PreserveOrder)

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
PreserveOrder bool Cuando se establece trueen , dirige el complemento para validar el orden de las columnas según lo definido por el primer esquema tabular que se mantiene. Si la misma columna está en varios esquemas, el ordinal de columna debe ser similar al ordinal de columna del primer esquema en el que apareció. El valor predeterminado es true.

Devoluciones

El schema_merge complemento devuelve una salida similar a la que devuelve el getschema operador .

Ejemplos

Combine con un esquema que tenga una nueva columna anexada.

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

Salida

ColumnName ColumnOrdinal DataType ColumnType
Identificador URI 0 System.String string
HttpStatus 1 System.Int32 int
Referrer 2 System.String string

Combine con un esquema que tenga una ordenación de columnas diferente (HttpStatus cambios ordinales de 1 a 2 en la nueva 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()

Salida

ColumnName ColumnOrdinal DataType ColumnType
Identificador URI 0 System.String string
Referrer 1 System.String string
HttpStatus -1 ERROR(unknown CSL type:ERROR(columns are out of order)) ERROR(las columnas no están ordenadas)

Combine con un esquema que tenga una ordenación de columnas diferente, pero con PreserveOrder establecido en 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)

Salida

ColumnName ColumnOrdinal DataType ColumnType
Identificador URI 0 System.String string
Referrer 1 System.String string
HttpStatus 2 System.Int32 int