Dela via


schema_merge-plugin-program

Sammanfogar tabellschemadefinitioner till ett enhetligt schema.

Schemadefinitioner förväntas vara i det format som genereras av operatorn getschema .

Åtgärden schema merge kopplar kolumner i indatascheman och försöker minska datatyperna till vanliga. Om datatyper inte kan minskas visas ett fel i den problematiska kolumnen.

Plugin-programmet anropas med operatorn evaluate .

Syntax

T|evaluateschema_merge(PreserveOrder)

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
PreserveOrder bool När det är inställt på truedirigeras plugin-programmet för att verifiera kolumnordningen enligt definitionen i det första tabellschemat som behålls. Om samma kolumn finns i flera scheman måste kolumnordningen vara som kolumnordningen för det första schemat som den visades i. Standardvärdet är true.

Returer

Plugin-programmet schema_merge returnerar utdata som liknar vad getschema operatorn returnerar.

Exempel

Sammanfoga med ett schema som har en ny kolumn tillagd.

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

Resultat

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String sträng
HttpStatus 1 System.Int32 int
Hänvisningsadress 2 System.String sträng

Sammanfoga med ett schema som har olika kolumnordning (HttpStatus ordningstalsändringar från 1 till 2 i den nya varianten).

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

Resultat

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String sträng
Hänvisningsadress 1 System.String sträng
HttpStatus -1 ERROR(unknown CSL type:ERROR(columns are out of order)) ERROR(kolumnerna är i fel ordning)

Sammanfoga med ett schema som har en annan kolumnordning, men med PreserveOrder inställt på 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)

Resultat

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String sträng
Hänvisningsadress 1 System.String sträng
HttpStatus 2 System.Int32 int