Als Entwickler definieren Sie die Spalten und ihre Datentypen in jeder Phase immer auf der Registerkarte ‚Spalte‘.
Wissen Sie, dass Sie eine andere Möglichkeit haben, andere Spalten als die Registerkarte Spalten zu definieren?
Schemas sind eine alternative Möglichkeit, Spaltendefinitionen für die von parallelen Jobs verwendeten Daten anzugeben.
Wie Sie wissen, beziehen die meisten parallelen Jobphasen ihre Metadaten standardmäßig aus der Registerkarte Spalten, die Tabellendefinitionen enthält, die gegebenenfalls durch Formatinformationen aus der Registerkarte Format ergänzt werden.
Für einige Phasen können Sie eine Eigenschaft angeben, die bewirkt, dass die Phase ihre Metadaten stattdessen aus der angegebenen Schemadatei übernimmt.
Lesen Sie auch: Unterschied zwischen Linksortierung und Sortierstufe
In einigen Phasen können wir auch ein Teilschema angeben. Auf diese Weise können Sie nur die Spalten definieren, die in einer bestimmten Phase verarbeitet werden, und den Rest der Spalten ignorieren.
Die Schemadatei ist eine reine Textdatei. Und es ist vorzuziehen, es mit ‚ zu speichern.schema‘ Erweiterung, so dass Sie sie leicht im Dateisystem identifizieren können.
Schemadateiformat:
Ein Schema enthält eine Datensatzdefinition (oder Zeilendefinition). Dies beschreibt jede Spalte (oder jedes Feld), die innerhalb des Datensatzes gefunden wird, und gibt Spaltennamen und Datentyp an. Das folgende Beispiel zeigt ein Datensatzschema:
name:string;
address:nullable string;
value1:int32;
value2:int32;
dateofbirth:date)
Die Zeilenumbrüche sind zum leichteren Lesen vorhanden, wenn Sie möchten, können Sie diese weglassen, wenn Sie ein Teilschema definiert haben, zum Beispiel
record(name:string;value1:int32;dateofbirth:date)
ist ein gültiges Schema.
Das Format jeder Zeile, die eine Spalte beschreibt, ist:
column_name:datatype;
column_name: Dies ist der Name, der die Spalte identifiziert. Namen müssen mit einem Buchstaben oder einem Unterstrich (_) beginnen und dürfen nur alphanumerische Zeichen oder Unterstriche enthalten. Der Name ist nicht case sensitive.
Nullfähigkeit: Sie können optional angeben, ob eine Spalte einen Nullwert enthalten darf oder ob dieser als ungültig angesehen wird. Wenn die Spalte null sein kann, fügen Sie das Wort ’nullable‘ ein. Standardmäßig sind Spalten nicht nullbar.
Sie können auch ’nullable‘ auf Datensatzebene einschließen, um anzugeben, dass alle Spalten nullfähig sind, und dann die Einstellung für einzelne Spalten überschreiben, indem Sie ’not nullable‘ angeben. Zum Beispiel:
name:nicht nullable string;
value1:int32;
dateofbirth:date)
Datentyp: Dies ist der Datentyp der Spalte. Hierbei werden die internen Datentypen verwendet, jedoch keine SQL-Datentypen, wie sie auf den Registerkarten Spalten in Stage-Editoren verwendet werden.
Sie können Kommentare in Schemadefinitionsdateien einfügen. Ein Kommentar beginnt mit einem doppelten Schrägstrich // und endet mit einem Zeilenumbruch.
Sie sollten immer sicherstellen, dass die Laufzeitspaltenausbreitung aktiviert ist, wenn Sie Schemadateien zum Definieren von Spaltenmetadaten verwenden möchten.
Lesen Sie auch: Wie funktioniert die Feldfunktion in DataStage?