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
-
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); -
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.
-
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 -
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.
-