Datenladeoperationen - Amazon Redshift

Datenladeoperationen

Verwalten Sie das Standardverhalten der Ladeoperation, um Fehler zu beheben oder die Ladezeiten zu reduzieren, indem Sie die folgenden Parameter angeben.

Parameter

COMPROWS numrows

Gibt die Anzahl der Zeilen an, die als Stichprobengröße für Kompressionsanalysen verwendet werden soll. Die Analyse wird für Zeilen aus jedem Daten-Slice ausgeführt. Wenn Sie beispielsweise COMPROWS 1000000 (1.000.000) angeben und das System insgesamt vier Slices enthält, werden nicht mehr als 250.000 Zeilen pro Slice gelesen und analysiert.

Wenn COMPROWS nicht angegeben wird, werden standardmäßig 100.000 Zeilen pro Slice als Stichprobe analysiert. Werte für COMPROWS, die niedriger als der Standardwert von 100.000 Zeilen pro Slice sind, werden automatisch auf den Standardwert aktualisiert. Es findet jedoch keine automatische Kompression statt, wenn die Menge der geladenen Daten nicht für eine relevante Stichrobe reicht.

Wenn der Wert für COMPROWS größer als die Anzahl der Zeilen in der Eingabedatei ist, wird der Befehl COPY dennoch fortgesetzt und die Kompressionsanalyse wird für alle verfügbaren Zeilen ausgeführt. Der akzeptierte Bereich für dieses Argument ist eine Zahl zwischen 1000 und 2147483647 (2,147,483,647).

COMPUPDATE [ PRESET | { ON | TRUE } | { OFF | FALSE } ]

Steuert, ob während einer COPY-Operation automatisch komprimierende Codierungen angewendet werden.

Während COMPUPDATE den Wert PRESET hat, wählt der COPY-Befehl die Komprimierungscodierung für jede Spalte, wenn die Zieltabelle leer ist. Dies gilt auch, wenn die Spalten bereits eine andere Codierung als RAW aufweisen. Aktuell angegebene Spaltenkodierungen können ersetzt werden. Die Codierung jeder Spalte basiert auf dem Datentyp der Spalte. Es werden keine Stichproben der Daten genommen. Amazon Redshift weist die Komprimierungskodierung automatisch wie folgt zu:

  • Spalten, die als Sortierschlüssel definiert sind, wird die RAW-Kompression zugewiesen.

  • Spalten, die als die Datentypen BOOLEAN, REAL oder DOUBLE PRECISION definiert sind, wird die RAW-Kodierung zugewiesen.

  • Spalten, die als SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIMESTAMP oder TIMESTAMPTZ definiert sind, wird die AZ64-Komprimierung zugewiesen.

  • Spalten, die als CHAR oder VARCHAR definiert sind, wird LZO-Komprimierung zugewiesen.

Wenn COMPUPDATE ausgelassen wird, wählt der COPY-Befehl die Komprimierungskodierung für die einzelnen Spalten nur dann aus, wenn die Zieltabelle leer ist und Sie keine Kodierung (außer RAW) für die Spalten angegeben haben. Die Kodierung einer jeden Spalte wird durch Amazon Redshift bestimmt. Es werden keine Stichproben der Daten genommen.

Wenn COMPUDATE auf ON (oder TRUE) festgelegt ist oder COMPUPDATE ohne Option angegeben wird, wendet der COPY-Befehl die automatische Komprimierung an, wenn die Tabelle leer ist, auch wenn die Tabellenspalten bereits andere Kodierungen als RAW aufweisen. Aktuell angegebene Spaltenkodierungen können ersetzt werden. Die Kodierung einer jeden Spalte basiert auf der Analyse von Stichprobendaten. Weitere Informationen finden Sie unter Laden von Tabellen mit automatischer Kompression.

Wenn COMPUPDATE auf OFF (oder FALSE eingestellt ist), wird die automatische Kompression deaktiviert. Spaltenkodierungen werden nicht geändert.

Informationen zur Systemtabelle für die Analyse der Komprimierung finden Sie unter STL_ANALYZE_COMPRESSION.

IGNOREALLERRORS

Sie können diese Option angeben, wenn alle Fehler, die während des Ladevorgangs auftreten, ignoriert werden sollen.

Sie können die Option IGNOREALLERRORS nicht angeben, wenn Sie die Option MAXERROR verwenden. Sie können die Option IGNOREALLERRORS nicht für spaltenbasierte Formate wie ORC, Parquet, RcFile und SequenceFile angeben.

MAXERROR [AS] error_count

Wenn der Ladevorgang error_count Fehler oder mehr zurückgibt, schlägt der Ladevorgang fehl. Wenn der Ladevorgang weniger Fehler zurückgibt, wird er fortgesetzt und gibt eine INFO-Meldung zurück, die die Anzahl der Zeilen angibt, die nicht geladen werden konnten. Sie verwenden diesen Parameter, um die Fortsetzung von Ladevorgängen zuzulassen, wenn bestimmte Zeilen aufgrund von Formatierungsfehlern oder aufgrund anderer Inkonsistenzen in den Daten nicht in die Tabelle geladen werden können.

Legen Sie diesen Wert auf 0 oder 1 fest, wenn der Ladevorgang fehlschlagen soll, sobald der erste Fehler auftritt. Das Schlüsselwort AS ist optional. Der Standardwert für MAXERROR ist 0 und das Limit ist 100000.

Aufgrund der parallelen Struktur von Amazon Redshift kann die tatsächliche Zahl der gemeldeten Fehler größer als der für MAXERROR angegebene Wert sein. Wenn ein Knoten im Amazon-Redshift-Cluster feststellt, dass MAXERROR ausgeführt wurde, melden alle Knoten alle Fehler, die sie festgestellt haben.

NOLOAD

Prüft die Gültigkeit der Datendatei, ohne die Daten tatsächlich zu laden. Verwenden Sie den Parameter NOLOAD, um zu prüfen, ob die Datendatei ohne Fehler geladen wird, bevor der tatsächliche Datenladevorgang ausgeführt wird. COPY mit angegebenem Parameter NOLOAD ist sehr viel schneller als das Laden der Daten, da die Dateien lediglich analysiert werden.

STATUPDATE [ { ON | TRUE } | { OFF | FALSE } ]

Regelt die automatische Berechnung und die Aktualisierung der Optimierungsstatistik am Ende eines erfolgreichen COPY-Befehls. Wenn der Parameter STATUPDATE nicht verwendet wird, werden die Statistiken automatisch aktualisiert, wenn die Tabelle anfangs leer ist.

Wenn durch das Hinzufügen von Daten zu einer nicht leeren Tabelle die Größe der Tabelle erheblich verändert wird, sollten Sie die Statistik aktualisieren, indem Sie entweder einen ANALYZE-Befehl ausführen oder das Argument STATUPDATE ON verwenden.

Bei Verwendung des Arguments STATUPDATE ON (oder TRUE) werden die Statistiken automatisch aktualisiert, unabhängig davon, ob die Tabelle anfangs leer ist. Wenn STATUPDATE verwendet wird, muss der aktuelle Benutzer entweder der Tabellenbesitzer oder ein Superuser sein. Wenn STATUPDATE nicht angegeben ist, ist nur die INSERT-Berechtigung erforderlich.

Bei Angabe von STATUPDATE OFF (oder FALSE) werden die Statistiken niemals aktualisiert.

Weitere Informationen finden Sie unter Analysieren von Tabellen.