Compartilhar via


Plug-in schema_merge

Mescla definições de esquema tabular em um esquema unificado.

Espera-se que as definições de esquema estejam no formato produzido pelo getschema operador.

A schema merge operação une colunas em esquemas de entrada e tenta reduzir os tipos de dados a comuns. Se os tipos de dados não puderem ser reduzidos, um erro será exibido na coluna problemática.

O plugin é invocado com o evaluate operador.

Sintaxe

T| evaluate schema_merge(PreserveOrdem)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
PreserveOrdem bool Quando definido como true, direciona o plug-in para validar a ordem das colunas, conforme definido pelo primeiro esquema tabular mantido. Se a mesma coluna estiver em vários esquemas, o ordinal da coluna deverá ser como o ordinal da coluna do primeiro esquema em que apareceu. O valor padrão é true.

Devoluções

O schema_merge plugin retorna uma saída semelhante à que getschema o operador retorna.

Exemplos

Mesclar com um esquema que tenha uma nova coluna 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()

Saída

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String string
HttpStatus 1 System.Int32 int
Referenciador 2 System.String string

Mesclar com um esquema que tenha uma ordem de coluna diferente (HttpStatus alterações ordinais de 1 para 2 na nova 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()

Saída

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String string
Referenciador 1 System.String string
HttpStatus -1 ERROR(unknown CSL type:ERROR(colunas estão fora de ordem)) ERROR(colunas estão fora de ordem)

Mesclar com um esquema que tenha uma ordem de coluna diferente, mas com PreserveOrder definido como 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)

Saída

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String string
Referenciador 1 System.String string
HttpStatus 2 System.Int32 int