Laden von Daten mit fester Breite aus Amazon S3 - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Laden von Daten mit fester Breite aus Amazon S3

Die Datenspalten in Datendateien mit fester Breite haben einheitliche Längen. Jedes Feld in einer Datendatei mit fester Breite besitzt genau dieselbe Länge und Position. Im Fall von Zeichendaten (CHAR und VARCHAR) in einer Datendatei mit fester Breite müssen Sie am Anfang und am Ende Leerzeichen als Platzhalter verwenden, um die einheitliche Breite einzuhalten. Im Fall von Ganzzahlen müssen Sie am Anfang Nullen als Platzhalter verwenden. Eine Datendatei mit fester Breite verwendet keine Trennzeichen, um Spalten zu trennen.

Um eine Datendatei mit fester Breite in eine vorhandene Tabelle zu laden, verwenden Sie den Parameter FIXEDWIDTH im COPY-Befehl. Die Tabellenspezifikationen müssen dem Wert von fixedwidth_spec entsprechen, damit die Daten korrekt geladen werden.

Um Daten mit fester Breite aus einer Datei in eine Tabelle zu laden, geben Sie den folgenden Befehl aus:

copy table_name from 's3://mybucket/prefix' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' fixedwidth 'fixedwidth_spec';

Der Parameter fixedwidth_spec ist eine Zeichenfolge, die einen Bezeichner für jede Spalte und die Breite jeder Spalte enthält, getrennt durch einen Punkt. Die column:width-Paare werden durch Komma getrennt. Der Bezeichner kann von Ihnen frei gewählt werden: Zahlen, Buchstaben oder eine Kombination aus diesen. Der Bezeichner hat keine Beziehung zur Tabelle selbst. Daher muss die Spezifikation die Spalten in derselben Reihenfolge wie die Tabelle enthalten.

Die folgenden beiden Beispiele zeigen dieselbe Spezifikation, wobei die erste numerische Bezeichner und die zweite Zeichenfolgenbezeichner verwendet:

'0:3,1:25,2:12,3:2,4:6'
'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'

Im folgenden Beispiel sind Beispieldaten mit fester Breite zu sehen, die unter Verwendung der oben aufgeführten Spezifikationen in die Tabelle VENUE geladen werden könnten:

1 Toyota Park Bridgeview IL0 2 Columbus Crew Stadium Columbus OH0 3 RFK Stadium Washington DC0 4 CommunityAmerica Ballpark Kansas City KS0 5 Gillette Stadium Foxborough MA68756

Der folgende COPY-Befehl lädt diesen Datensatz in die Tabelle VENUE:

copy venue from 's3://mybucket/data/venue_fw.txt' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6';