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 true wartoś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 |