Plug-In „schema_merge“

Führt tabellarische Schemadefinitionen in einem einheitlichen Schema zusammen.

Es wird erwartet, dass Schemadefinitionen das vom getschema Operator erzeugte Format aufweisen.

Der schema merge Vorgang verknüpft Spalten in Eingabeschemas und versucht, Datentypen auf gängige Zusätze zu reduzieren. Wenn Datentypen nicht reduziert werden können, wird in der problematischen Spalte ein Fehler angezeigt.

Das Plug-In wird mit dem evaluate Operator aufgerufen.

Syntax

T|evaluateschema_merge(PreserveOrder)

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
PreserveOrder bool Wenn auf truefestgelegt ist, weist das Plug-In an, die Spaltenreihenfolge zu überprüfen, wie durch das erste tabellarische Schema definiert, das beibehalten wird. Wenn sich dieselbe Spalte in mehreren Schemas befindet, muss die Ordnungszahl der Spalte der Ordnungszahl des ersten Schemas entsprechen, in dem sie angezeigt wurde. Der Standardwert ist true.

Gibt zurück

Das schema_merge Plug-In gibt eine Ausgabe zurück, die getschema der Rückgabe des Operators ähnelt.

Beispiele

Zusammenführen mit einem Schema, an das eine neue Spalte angefügt ist.

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

Ausgabe

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String Zeichenfolge
HttpStatus 1 System.Int32 INT
Referrer 2 System.String Zeichenfolge

Zusammenführen mit einem Schema, das eine andere Spaltenreihenfolge aufweist (HttpStatus Ordnungsänderungen von 1 zu 2 in der neuen 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()

Ausgabe

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String Zeichenfolge
Referrer 1 System.String Zeichenfolge
HttpStatus -1 ERROR(unknown CSL type:ERROR(columns are out of order)) ERROR(Spalten sind in falscher Reihenfolge)

Führen Sie mit einem Schema zusammen, das eine andere Spaltenreihenfolge aufweist, aber auf PreserveOrderfalsefestgelegt ist.

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)

Ausgabe

ColumnName ColumnOrdinal DataType ColumnType
Uri 0 System.String Zeichenfolge
Referrer 1 System.String Zeichenfolge
HttpStatus 2 System.Int32 INT