Delen via


Invoegtoepassing voor schema_merge

Hiermee worden definities van tabellaire schema's samengevoegd tot een uniform schema.

Schemadefinities worden verwacht in de indeling die door de getschema operator is geproduceerd.

De schema merge bewerking koppelt kolommen in invoerschema's en probeert gegevenstypen te verminderen tot algemene. Als gegevenstypen niet kunnen worden verminderd, wordt er een fout weergegeven in de problematische kolom.

De invoegtoepassing wordt aangeroepen met de evaluate operator.

Syntax

T|evaluateschema_merge(BehoudVolgorde)

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
BehoudVolgorde bool Als deze optie is ingesteld op true, wordt de invoegtoepassing gevraagd om de kolomvolgorde te valideren zoals gedefinieerd door het eerste schema in tabelvorm dat wordt bewaard. Als dezelfde kolom zich in verschillende schema's bevindt, moet de kolomordinaal hetzelfde zijn als de kolomordinaal van het eerste schema waarin deze werd weergegeven. De standaardwaarde is true.

Retouren

De schema_merge invoegtoepassing retourneert uitvoer die vergelijkbaar is met wat getschema de operator retourneert.

Voorbeelden

Samenvoegen met een schema waaraan een nieuwe kolom is toegevoegd.

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

Uitvoer

ColumnName KolomOrdinaal DataType ColumnType
Uri 0 System.String tekenreeks
HttpStatus 1 System.Int32 int
Referrer 2 System.String tekenreeks

Voeg samen met een schema met een andere kolomvolgorde (HttpStatus ordinale wijzigingen van 1 tot 2 in de nieuwe variant).

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

Uitvoer

ColumnName KolomOrdinaal DataType ColumnType
Uri 0 System.String tekenreeks
Referrer 1 System.String tekenreeks
HttpStatus -1 ERROR(onbekend CSL-type:FOUT(kolommen zijn niet in orde)) ERROR(kolommen zijn niet op volgorde)

Voeg samen met een schema met een andere kolomvolgorde, maar met PreserveOrder ingesteld op 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)

Uitvoer

ColumnName KolomOrdinaal DataType ColumnType
Uri 0 System.String tekenreeks
Referrer 1 System.String tekenreeks
HttpStatus 2 System.Int32 int