Udostępnij za pośrednictwem


schema_merge, wtyczka

Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer

Scala definicje schematów tabelarycznych w ujednolicony schemat.

Definicje schematu powinny być w formacie utworzonym getschema przez operator.

Operacja schema merge łączy kolumny w schematach wejściowych i próbuje zmniejszyć typy danych do typowych. Jeśli nie można zmniejszyć typów danych, w problematycznej kolumnie zostanie wyświetlony błąd.

Wtyczka jest wywoływana z operatorem evaluate .

Składnia

T| evaluate schema_merge(PreserveOrder)

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
PreserveOrder bool Po ustawieniu truewartości na wtyczka przekierowuje wtyczkę w celu zweryfikowania kolejności kolumn zgodnie z definicją pierwszego schematu tabelarycznego, który jest przechowywany. Jeśli ta sama kolumna znajduje się w kilku schematach, porządkowa kolumna musi być podobna do porządkowej kolumny pierwszego schematu, w którego się pojawił. Wartość domyślna to true.

Zwraca

Wtyczka schema_merge zwraca dane wyjściowe podobne do zwracanych getschema przez operator.

Przykłady

Scal z schematem, który ma dołączoną nową kolumnę.

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

Wyjście

ColumnName KolumnaOrdinal DataType Typ kolumny
Identyfikator URI 0 System.String string
HttpStatus 1 System.Int32 int
Referrer 2 System.String string

Scal z schematem, który ma inne kolejność kolumn (HttpStatus zmiany porządkowe z 1 na 2 w nowym wariantie).

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

Wyjście

ColumnName KolumnaOrdinal DataType Typ kolumny
Identyfikator URI 0 System.String string
Referrer 1 System.String string
HttpStatus -1 ERROR(nieznany typ CSL:ERROR(kolumny są poza kolejnością)) ERROR(kolumny są poza kolejnością)

Scal z schematem, który ma inne kolejność kolumn, ale z ustawioną wartością PreserveOrder 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)

Wyjście

ColumnName KolumnaOrdinal DataType Typ kolumny
Identyfikator URI 0 System.String string
Referrer 1 System.String string
HttpStatus 2 System.Int32 int