Systemtabellen für die Behebung von Fehlern beim Laden von Daten - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

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.

    • Werte außerhalb des Bereichs in den Eingabedateien (für numerische Spalten).

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