- Verbinden mit Snowflake
- Laden von Daten in Snowflake
- Übersicht zum Laden von Daten
- Übersicht der Funktionen zum Laden von Daten
- Hinweise zum Laden von Daten
- Vorbereiten des Ladens von Daten
- Massenladen mit COPY
- Kontinuierliches Laden mit Snowpipe
- Laden mithilfe der Weboberfläche (eingeschränkt)
- Abfragen von Daten in Stagingdateien
- Abfragen von Metadaten für bereitgestellte Dateien
- Transformieren von Daten während eines Ladevorgangs
- Tutorials zum Laden von Daten
- Verwendung der Tutorials
- Tutorial: Massenladen aus einem lokalen Dateisystem mit COPY
- Tutorial: Massenladen aus Amazon S3 mit COPY
- Voraussetzungen
- Schritt 1: Dateiformatobjekte erstellen
- Schritt 2: Erstellen eines benannten Stagingobjekts
- Schritt 3: Daten in die Zieltabelle kopieren
- Schritt 4. Beheben von Datenladefehlern im Zusammenhang mit Datenproblemen
- Schritt 5. Überprüfen der geladenen Daten
- Schritt 6. Herzlichen Glückwunsch!
- Skript: Laden von JSON-Daten in eine relationale Tabelle
- Skript: Laden und Entladen von Parquet-Daten
- Entladen von Daten aus Snowflake
- Verwenden von Snowflake
- Sicheres Freigeben von Daten in Snowflake
- Dokumentation »
- Laden von Daten in Snowflake »
- Tutorials zum Laden von Daten »
- Tutorial: Massenladen aus Amazon S3 mit COPY »
- Schritt 4. Beheben von Datenladefehlern im Zusammenhang mit Datenproblemen
Schritt 4. Beheben von Datenladefehlern im Zusammenhang mit Datenproblemen¶
.
Schrittliste
Schritt 4. Beheben von Datenladefehlern im Zusammenhang mit Datenproblemen
Verwenden Sie die Funktion VALIDATE, um die von Ihnen geladenen Datendateien zu überprüfen und alle während des Ladevorgangs aufgetretenen Fehler zurückzugeben.
Fehler überprüfen¶
Der folgende Prozess gibt Fehler nach Abfrage-ID zurück und speichert die Ergebnisse zur späteren Verwendung in einer Tabelle.
Sie können die Abfrage-ID für den COPY-Job auf der Seite History der Weboberfläche anzeigen:
Melden Sie sich bei der Snowflake-Weboberfläche an.
Wechseln Sie zu der Rolle, mit der Sie die SQL-Anweisungen des Tutorials ausgeführt haben.
Klicken Sie auf den Spaltenlink Query ID für den Befehl COPY INTO. Das Fenster Details wird geöffnet.
Führen Sie über die Befehlszeilenschnittstelle (z. B. SnowSQL) den folgenden Befehl aus. Ersetzen Sie
<Abfrage-ID>
durch den Wert Query ID.CREATE OR REPLACE TABLE save_copy_errors AS SELECT * FROM TABLE(VALIDATE(mycsvtable, JOB_ID=>'<query_id>'));
Führen Sie eine Abfrage auf der Ergebnistabelle aus:
SELECT * FROM SAVE_COPY_ERRORS;
Snowflake gibt die folgenden Ergebnisse zurück:
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+------+-----------+-------------+----------+--------+-----------+-------------------------------+------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+ | ERROR | FILE | LINE | CHARACTER | BYTE_OFFSET | CATEGORY | CODE | SQL_STATE | COLUMN_NAME | ROW_NUMBER | ROW_START_LINE | REJECTED_RECORD | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+------+-----------+-------------+----------+--------+-----------+-------------------------------+------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------| | Number of columns in file (11) does not match that of the corresponding table (10), use file format option error_on_column_count_mismatch=false to ignore this error | tutorials/dataloading/contacts3.csv | 3 | 1 | 234 | parsing | 100080 | 22000 | "MYCSVTABLE"[11] | 1 | 2 | 11|Ishmael|Burnett|Dolor Elit Pellentesque Ltd|vitae.erat@necmollisvitae.ca|1-872|600-7301|1-513-592-6779|P.O. Box 975, 553 Odio, Road|Hulste|63345 | | Field delimiter '|' found while expecting record delimiter '\n' | tutorials/dataloading/contacts3.csv | 5 | 125 | 625 | parsing | 100016 | 22000 | "MYCSVTABLE"["POSTALCODE":10] | 4 | 5 | 14|Sophia|Christian|Turpis Ltd|lectus.pede@non.ca|1-962-503-3253|1-157-|850-3602|P.O. Box 824, 7971 Sagittis Rd.|Chattanooga|56188 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+------+-----------+-------------+----------+--------+-----------+-------------------------------+------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
Snowflake hat in tutorials/dataloading/contacts3.csv
zwei Datenfehler festgestellt:
Number of columns in file (11) does not match that of the corresponding table (10)
In Zeile 1 wurde ein Bindestrich versehentlich durch das Pipe-Zeichen (
|
), das Trennzeichen der Datendatei, ersetzt, wodurch eine zusätzliche Spalte im Datensatz erzeugt wurde.Field delimiter '|' found while expecting record delimiter '\n'
In Zeile 5 wurde nach einem Bindestrich ein zusätzliches Pipe-Zeichen (
|
) eingefügt, wodurch der Datensatz unterbrochen wird.
Fehler beheben und neu laden¶
Bei regelmäßigem Gebrauch würden Sie die problematischen Datensätze manuell korrigieren und in eine neue Datendatei schreiben. Alternativ können Sie auch eine neue Datendatei aus der Datenquelle neu generieren, die nur die Datensätze enthält, die nicht geladen wurden.
Sie würden dann die festen Datendateien im S3-Bucket bereitstellen und versuchen, die Daten aus den Dateien neu zu laden.
Nächstes Thema: Schritt 5. Überprüfen der geladenen Daten