Systemtabellen für die Behebung von Fehlern beim Laden von Daten - 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.

Systemtabellen für die Behebung von Fehlern beim Laden von Daten

Die folgenden Amazon-Redshift-Systemtabellen können beim Beheben von Fehlern, die beim Laden von Daten auftreten, nützlich sein:

  • Führen Sie eine Abfrage für STL_LOAD_ERRORS aus, um Fehler zu entdecken, die während spezifischer Ladevorgänge aufgetreten sind.

  • Führen Sie eine Abfrage für STL_FILE_SCAN aus, um die Ladezeiten für spezifische Dateien anzuzeigen oder um festzustellen, ob eine spezifische Datei überhaupt gelesen wurde.

  • Führen Sie eine Abfrage für STL_S3CLIENT_ERROR aus, um Details zu Fehlern zu ermitteln, die während der Übertragung von Daten aus Amazon S3 aufgetreten sind.

So finden und diagnostizieren Sie Ladefehler
  1. Erstellen Sie eine Ansicht oder definieren Sie eine Abfrage, die Details zu Ladefehlern zurückgibt. Im folgenden Beispiel wird ein Join der Tabellen STL_LOAD_ERRORS und STV_TBL_PERM ausgeführt, um die Tabellen-IDs mit den tatsächlichen Tabellennamen abzugleichen.

    create view loadview as (select distinct tbl, trim(name) as table_name, query, starttime, trim(filename) as input, line_number, colname, err_code, trim(err_reason) as reason from stl_load_errors sl, stv_tbl_perm sp where sl.tbl = sp.id);
  2. Legen Sie die Option MAXERRORS in Ihrem COPY-Befehl auf einen Wert fest, der groß genug ist, dass COPY nützliche Informationen zu Ihren Daten zurückgeben kann. Wenn für den COPY-Befehl Fehler auftreten, weist Sie eine Fehlermeldung an, in der Tabelle STL_LOAD_ERRORS nach Details zu suchen.

  3. Führen Sie eine Abfrage für die Ansicht LOADVIEW aus, um Fehlerdetails anzuzeigen. Beispiel:

    select * from loadview where table_name='venue';
    tbl | table_name | query | starttime --------+------------+-------+---------------------------- 100551 | venue | 20974 | 2013-01-29 19:05:58.365391 | input | line_number | colname | err_code | reason +----------------+-------------+-------+----------+--------------------- | venue_pipe.txt | 1 | 0 | 1214 | Delimiter not found
  4. Beheben Sie das Problem in der Eingabedatei oder im Ladeskript basierend auf den Informationen, die von der Ansicht zurückgegeben werden. Typische Ladefehler, auf die Sie achten sollten, sind:

    • Fehlende Übereinstimmung zwischen Datentypen in der Tabelle und Werten in den Eingabedatenfeldern.

    • Fehlende Übereinstimmung zwischen der Anzahl der Spalten in der Tabelle und der Anzahl der Felder in den Eingabedatenfeldern.

    • Nicht übereinstimmende Anführungszeichen. Amazon Redshift unterstützt sowohl einfache als auch doppelte Anführungszeichen. Diese Anführungszeichen müssen jedoch entsprechend ausgeglichen werden.

    • Falsches Format für Datum-/Uhrzeitdaten in Eingabedateien.

    • ut-of-range O-Werte in Eingabedateien (für numerische Spalten).

    • Anzahl der unterschiedlichen Werte für eine Spalte überschreitet die Begrenzung für ihre Kompressionskodierung.