Read from Variable Format File

Der Schritt „Read from Variable Format File“ liest Daten aus einer Datei mit Datensätzen mit variablem Layout. Jeder Datensatz wird als Listenfeld eingelesen. Sie können das Tag angeben, das den übergeordneten Datensatztyp bezeichnet. Alle anderen Datensatztypen werden dann zu untergeordneten Listenfeldern.

Dateien mit variablem Format haben diese Merkmale:

  • Datensätze in der Datei können unterschiedliche Felder und eine unterschiedliche Anzahl von Feldern enthalten.
  • Jeder Datensatz muss ein Tag (gewöhnlich eine Zahl) enthalten, das den Typ des Datensatzes angibt.
  • Hierarchische Beziehungen werden unterstützt.

Beispiel für eine Datei mit variablem Format

Dieses Beispiel zeigt eine Datei mit variablem Format, die Informationen zur Girokontoaktivität für zwei Kunden, Joe Smith und Anne Johnson, enthält. In diesem Beispiel ist die Datei eine durch Trennzeichen getrennte Datei, in der ein Komma als Feldtrennzeichen verwendet wird.

001   Joe,Smith,M,100 Main St,555-234-1290
100   CHK12904567,12/2/2007,6/1/2012,CHK
200   1000567,1/5/2012,Fashion Shoes,323.12
001   Anne,Johnson,F,1202 Lake St,555-222-4932
100   CHK238193875,1/21/2001,4/12/2012,CHK
200   1000232,3/5/2012,Blue Goose Grocery,132.11
200   1000232,3/8/2012,Trailway Bikes,540.00

Das erste Feld in jedem Datensatz enthält das Tag, das den Typ des Datensatzes und damit sein Format angibt:

  • 001: Kundendatensatz
  • 100: Kontodatensatz
  • 200: Kontotransaktionsdatensatz

Bei durch Trennzeichen getrennten Dateien ist es häufig so, dass der Tagwert (001, 100, 200) in einer festen Anzahl von Byte am Beginn des Datensatzes steht (siehe das obige Beispiel).

Jeder Datensatz hat ein eigenes Format:

  • 001: FirstName,LastName,Gender,Address,PhoneNumber
  • 100: AccountID,DateOpened,ExpirationDate,TypeOfAccount
  • 200: TransactionID,DateOfTransaction,Vendor,Amount

Das Datensatzformat 100 (Kontodatensatz) ist ein untergeordnetes Element des vorherigen 001-Datensatzes und das Datensatzformat 200 (Kontotransaktionsdatensatz) ein untergeordnetes Element des vorherigen 100-Datensatzes (Kontodatensatz). In der Beispieldatei gab es im Konto von Joe Smith, CHK12904567, am 05.01.2012 eine Transaktion mit dem Betrag 323,12 bei Fashion Shoes. Im Konto von Anne Johnson, CHK238193875, wiederum gab es zwei Transaktionen, eine am 05.03.2012 bei Blue Goose Grocery und eine am 08.03.2012 bei Trailway Bikes.

Registerkarte „Dateieigenschaften“

Name der Option Beschreibung

Servername

Dies gibt an, ob sich die von Ihnen als Eingabe ausgewählte Datei auf dem Computer mit dem Enterprise Designer oder auf dem Spectrum™ Technology Platform-Server befindet. Wenn Sie eine Datei auf dem lokalen Computer auswählen, lautet der Servername „Arbeitsplatz“. Wenn Sie eine Datei auf dem Server auswählen, lautet der Servername Spectrum™ Technology Platform.

Dateiname

Gibt den Pfad zur Datei an. Klicken Sie auf die Ellipsenschaltfläche (...), um zur gewünschten Datei zu navigieren.

Sie können ein Platzhalterzeichen verwenden, um Daten aus mehreren Dateien im Verzeichnis einzulesen. Die Platzhalterzeichen * und ? werden unterstützt. Sie können beispielsweise *.csv eingeben, um alle Dateien mit der Erweiterung .csv im Verzeichnis auszulesen. Um mehrere Dateien erfolgreich einzulesen, muss jede Datei über dasselbe Layout (die gleichen Felder an der gleichen Position) verfügen. Alle Datensätze, die nicht mit dem auf der Registerkarte Felder angegebenen Layout übereinstimmen, werden als falsch formatierte Datensätze behandelt.

Beim Lesen einer Datei von einen HDFS-Dateiserver werden die folgenden Komprimierungsformate unterstützt:
  1. GZIP (.gz)
  2. BZIP2 (.bz2)
Anmerkung: Die Erweiterung der Datei zeigt das zum Extrahieren zu verwendende Komprimierungsformat an.
Achtung: Falls der Spectrum™ Technology Platform-Server unter Unix oder Linux ausgeführt wird, berücksichtigen Sie, dass bei Dateinamen und Pfaden auf diesen Plattformen die Groß-/Kleinschreibung beachtet wird.

Datensatztyp

Dies ist das Format der Datensätze in der Datei. Wählen Sie eine Option:

Zeilensequenziell
Dies ist eine Textdatei, in der Datensätze durch ein Zeilenendzeichen (EOL, End of Line) wie Zeilenumbruch oder Zeilenvorschub (CR oder LF, Carriage Return oder Line Feed) getrennt sind und jedes Feld über feste Startzeichen- und Endzeichenpositionen verfügt.
Feste Breite
Dies ist eine Textdatei, in der jeder Datensatz eine bestimmte Anzahl von Zeichen lang ist und jedes Feld über feste Startzeichen- und Endzeichenpositionen verfügt.
Mit Begrenzungszeichen
Dies ist eine Textdatei, in der Datensätze durch ein Zeilenendzeichen (EOL, End of Line) wie Zeilenumbruch oder Zeilenvorschub (CR oder LF, Carriage Return oder Line Feed) getrennt sind und jedes Feld durch ein angegebenes Zeichen wie beispielsweise ein Komma getrennt ist.

Zeichencodierung

Dies ist die Codierung der Textdatei. Wählen Sie eine der folgenden Optionen:

UTF-8
Die Datei unterstützt alle Unicode-Zeichen und ist abwärtskompatibel mit ASCII. Weitere Informationen zu UTF finden Sie unter unicode.org/faq/utf_bom.html.
UTF-16
Die Datei unterstützt alle Unicode-Zeichen, ist aber nicht abwärtskompatibel mit ASCII. Weitere Informationen zu UTF finden Sie unter unicode.org/faq/utf_bom.html.
US-ASCII
Die Zeichencodierung basiert auf der Reihenfolge des englischen Alphabets.
UTF-16BE
Die Datei ist UTF-16-codiert mit Big-Endian-Reihenfolge (höchstwertiges Byte zuerst).
UTF-16LE
Die Datei ist UTF-16-codiert mit Little-Endian-Reihenfolge (niedrigstwertiges Byte zuerst).
ISO-8859-1
Dies ist eine ASCII-Zeichencodierung, die normalerweise für westeuropäische Sprachen verwendet wird. Sie ist auch bekannt als Latin-1.
ISO-8859-3
Dies ist eine ASCII-Zeichencodierung, die normalerweise für südeuropäische Sprachen verwendet wird. Sie ist auch bekannt als Latin-3.
ISO-8859-9
Dies ist eine ASCII-Zeichencodierung, die normalerweise für Türkisch verwendet wird. Sie ist auch bekannt als Latin-5.
CP850
Dies ist eine ASCII-Codeseite, die für westeuropäische Sprachen verwendet wird.
CP500
Dies ist eine EBCDIC-Codeseite, die für westeuropäische Sprachen verwendet wird.
Shift_JIS
Dies ist eine Zeichencodierung für Japanisch.
MS932
Dies ist eine Shift_JIS-Erweiterung von Microsoft, die besondere NEC-Zeichen, eine NEC-Auswahl aus IBM-Erweiterungen und IBM-Erweiterungen einschließt.
CP1047
Dies ist eine EBCDIC-Codeseite mit dem vollständigen Latin-1-Zeichensatz.

Datensatzlänge

Geben Sie bei Dateien an, die Datensätze mit fester Breite enthalten, die genaue Anzahl von Zeichen jedes Datensatzes.

Feldtrennzeichen

Gibt das Zeichen an, das zum Trennen von Feldern in einer Datei mit Begrenzungszeichen verwendet wird.

Im folgenden Beispiel wird ein Pipe-Zeichen ( | ) im Datensatz als Feldtrennzeichen verwendet:

7200 13TH ST|MIAMI|FL|33144

Die folgenden Zeichen stehen zur Definition als Feldtrennzeichen zur Verfügung:

  • Leerzeichen
  • Tabulator
  • Komma
  • Punkt
  • Semikolon
  • Pipe

Wenn in der Datei ein anderes Zeichen als Feldtrennzeichen verwendet wird, klicken Sie auf die Ellipsenschaltfläche, um ein anderes Zeichen als Begrenzungszeichen auszuwählen.

Tag-Trennzeichen Gibt das Zeichen an, das sich hinter dem Tag-Feld befindet, um in einer Datei mit Begrenzungszeichen das Identifizierungsfeld für jeden Datensatz abzugrenzen. Ein Tag-Trennzeichen muss ein einzelnen Zeichen sein.

Standardmäßig stehen die folgenden Zeichen zur Definition als Tag-Trennzeichen zur Verfügung:

  • Leerzeichen
  • Tabulator
  • Komma
  • Punkt
  • Semikolon
  • Pipe

Wenn in der Datei ein anderes Zeichen als Tag-Trennzeichen verwendet wird, klicken Sie auf die Ellipsenschaltfläche, um ein benutzerdefiniertes Tag-Trennzeichen hinzuzufügen und auszuwählen.

Anmerkung: Standardmäßig ist das Datensatz-Trennzeichen dasselbe Zeichen wie das ausgewählte Feldtrennzeichen. Um dieses Feld zu aktivieren und ein anderes Zeichen auszuwählen, deaktivieren Sie das Kästchen Wie Feldtrennzeichen.
Wie Feldtrennzeichen Dies zeigt an, ob das Tag-Trennzeichen dasselbe ist wie das Feldtrennzeichen. Deaktivieren Sie dieses Kästchen, um ein anderes Zeichen als Tag-Trennzeichen auszuwählen.
Anmerkung: Standardmäßig ist dieses Kästchen aktiviert und das Feld Tag-Trennzeichen deaktiviert.

Textbegrenzungszeichen

Dies ist das Zeichen, das in einer Datei mit Begrenzungszeichen Textwerte umschließt.

Im folgenden Beispiel werden im Datensatz doppelte Anführungszeichen (") als Textbegrenzungszeichen verwendet.

"7200 13TH ST"|"MIAMI"|"FL"|"33144"

Die folgenden Zeichen stehen zur Definition als Textbegrenzungszeichen zur Verfügung:

  • einfaches Anführungszeichen ( ' )
  • doppeltes Anführungszeichen ( " )

Wenn in der Datei ein anderes Textbegrenzungszeichen verwendet wird, klicken Sie auf die Ellipsenschaltfläche, um ein anderes Zeichen als Textbegrenzungszeichen auszuwählen.

Datensatz-Trennzeichen

Gibt das Zeichen an, das zum Trennen von Datensätzen in einer zeilensequenziellen Datei oder einer Datei mit Begrenzungszeichen verwendet wird. Dieses Feld ist nicht verfügbar, wenn Sie das Kästchen Standard-Zeilenende verwenden aktivieren.

Die verfügbaren Einstellungen für Datensatz-Trennzeichen sind:

Unix (U+000A)
Die Datensätze sind durch ein Zeilenvorschubzeichen getrennt. Dies ist bei Unix-Systemen das standardmäßige Datensatz-Trennzeichen.
Macintosh (U+000D)
Die Datensätze sind durch ein Zeilenumbruchzeichen getrennt. Dies ist bei Macintosh-Systemen das standardmäßige Datensatz-Trennzeichen.
Windows (U+000D U+000A)
Die Datensätze sind durch ein Zeilenumbruchzeichen gefolgt von einem Zeilenvorschubzeichen getrennt. Dies ist bei Windows-Systemen das standardmäßige Datensatz-Trennzeichen.

Wenn in der Datei ein anderes Datensatz-Trennzeichen verwendet wird, klicken Sie auf die Ellipsenschaltfläche, um ein anderes Zeichen als Datensatz-Trennzeichen auszuwählen.

Root-Tag-Name

Das Tag, das für Datensätze verwendet werden soll, die ein übergeordnetes Element anderer Datensatztypen sind. Wenn Sie beispielsweise die drei Datensatztypen 001, 100 und 200 haben und die Datensatztypen 100 und 200 untergeordnete Elemente des Datensatztyps 001 sind, dann ist 001 das Root-Tag.

Tags mit fester Breite verwenden

Gibt an, ob ein fester Bereich am Beginn jedes Datensatzes zugeordnet werden soll, an dem das Datensatz-Tag eingefügt wird. Das folgende Beispiel zeigt eine Datei mit den Tags 001, 100, und 200 in einem Feld mit fester Breite:

001   Joe,Smith,M,100 Main St,555-234-1290
100   CHK12904567,12/2/2007,6/1/2012,CHK
200   1000567,1/5/2012,Mike's Shoes,323.12

Tag-Startposition

Wenn Sie das Kästchen Tags mit fester Breite verwenden aktivieren, gibt diese Option die Position in jedem Datensatz an, an der das Tag beginnt. Wenn das Tag beispielsweise mit dem vierten Zeichen im Datensatz beginnt, müssten Sie 4 angeben.

Tag-Breite

Wenn Sie das Kästchen Tags mit fester Breite verwenden aktivieren, gibt diese Option die Anzahl von Leerzeichen an, die für Tags ab der im Feld Tag-Startposition angegebenen Position zugeordnet werden sollen. Wenn Sie beispielsweise im Feld Tag-Startposition 3 und im Feld Tag-Breite 7 angeben, würden die Positionen 4 bis 10 als Datensatz-Tag betrachtet. Der angegebene Wert muss groß genug sein, um alle Zeichen des längsten Tag-Namens einzuschließen.

Der Wert im Feld Tag-Breite wird automatisch erhöht, wenn Sie den Tag-Namen im Feld Root-Tag-Name länger machen.

Die maximale Tag-Breite ist 1024.

Standard-Zeilenende verwenden

Gibt an, dass das standardmäßige Zeilenendzeichen (EOL) des Betriebssystems, auf dem der Spectrum™ Technology Platform-Server läuft, als Datensatz-Trennzeichen der Datei verwendet wird.

Wählen Sie diese Option nicht aus, wenn in der Datei ein Zeilenendzeichen verwendet wird, das sich vom standardmäßigen Zeilenendzeichen des Betriebssystems des Servers unterscheidet. Wenn in der Datei beispielsweise ein Windows-Zeilenendzeichen verwendet wird, der Server aber auf Linux läuft, aktivieren Sie diese Option nicht. Wählen Sie stattdessen im Feld Datensatz-Trennzeichen die Option „Windows“ aus.

Datensätze mit weniger Feldern als definiert als falsch formatiert behandeln

Wenn Sie diese Option aktivieren, werden untergeordnete Datensätze, die weniger Felder als ein vollständiger Datensatz enthalten, als falsch formatiert betrachtet. Wenn ein falsch formatierter Datensatz gefunden wird, fährt die Verarbeitung mit dem nächsten Root-Tag fort und ignoriert alle dazwischen liegenden untergeordneten Tags. Zudem wird eine Ausnahme im Protokoll festgehalten, die Informationen zum falsch formatierten untergeordneten Datensatz und die Zeilennummer enthält.

Anmerkung: Datensätze werden in folgenden Situationen, unabhängig von der Aktivierung dieser Option, immer als falsch formatiert betrachtet.
  • Das Tag ist unbekannt.
  • Die Zeile ist leer.
  • Es liegt ein Tag ohne Daten vor.
  • Ein Datensatz mit einem Tag, das ein untergeordnetes Element zu einem anderen Tag ist, erscheint sofort nach einem Datensatz mit einem Root-Tag.

Registerkarte „Felder“

Auf der Registerkarte Felder werden die Merkmale jedes Feldes angegeben, das aus der Datei eingelesen wird.

Registerkarte „Laufzeit“

Feldname Beschreibung

Dateiname

Zeigt den auf der ersten Registerkarte ausgewählten Dateinamen an.

Startdatensatz

Wenn Sie beim Einlesen der Datensätze in den Datenfluss Datensätze am Anfang der Datei überspringen möchten, geben Sie hier den ersten Datensatz an, der gelesen werden soll. Wenn Sie beispielsweise die ersten 50 Datensätze in einer Datei überspringen möchten, geben Sie 51 ein. Der 51. Datensatz ist dann der erste Datensatz, der in den Datenfluss eingelesen wird.

Alle Datensätze

Wählen Sie diese Option aus, wenn Sie alle Datensätze ab dem im Feld Startdatensatz definierten Datensatz bis zum Ende der Datei einlesen möchten.

Max. Anzahl Datensätze

Wählen Sie diese Option aus, wenn Sie nur eine bestimmte Anzahl von Datensätzen ab dem im Feld Startdatensatz angegebenen Datensatz einlesen möchten. Wenn Sie beispielsweise die ersten 100 Datensätze einlesen möchten, wählen Sie diese Option aus und geben Sie 100 an.