Partilhar via


Plug-in schema_merge

Aplica-se a: ✅Microsoft FabricAzure Data Explorer

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 aos comuns. Se os tipos de dados não puderem ser reduzidos, um erro será exibido na coluna problemática.

O plug-in é invocado com o evaluate operador.

Sintaxe

T| evaluate schema_merge(Preservar Ordem)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
Preservar Ordem 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 plug-in retorna uma saída semelhante à que o getschema operador retorna.

Exemplos

Mescle 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 Ordinal de coluna DataType ColumnType
Uri 0 System.String string
HttpStatus 1 System.Int32 int
Referenciador 2 System.String string

Mescle 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 Ordinal de coluna DataType ColumnType
Uri 0 System.String string
Referenciador 1 System.String string
HttpStatus -1 ERROR(tipo de CSL desconhecido:ERROR(as colunas estão fora de ordem)) ERRO(as colunas estão fora de ordem)

Mescle 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 Ordinal de coluna DataType ColumnType
Uri 0 System.String string
Referenciador 1 System.String string
HttpStatus 2 System.Int32 int