Problembehandlung beim Laden von Massendaten

Dieses Thema beschreibt einen methodischen Ansatz zur Behebung von Problemen beim Laden von Massendaten.

Unter diesem Thema:

Datenladefehler

Schritt 1: Anzeigen des COPY-Verlaufs der Tabelle

Fragen Sie den Verlauf der Ladeaktivitäten für eine Tabelle ab. Weitere Informationen dazu finden Sie unter COPY_HISTORY. In der Spalte STATUS wird gezeigt, ob ein bestimmter Satz von Dateien geladen, teilweise geladen oder nicht geladen wurde. Die Spalte FIRST_ERROR_MESSAGE bietet eine Hinweis auf die Ursache, warum ein Ladeversuch nur teilweise erfolgreich war oder fehlgeschlagen ist.

Beachten Sie, dass bei mehreren Problemen mit einem Satz von Dateien die Spalte FIRST_ERROR_MESSAGE nur den ersten aufgetretenen Fehler anzeigt. Um alle Fehler in den Dateien anzuzeigen, finden Sie unter Schritt 2: Laden von Daten validieren eine entsprechende Anleitung.

Schritt 2: Laden von Daten validieren

Die Kopieroption VALIDATION_MODE weist eine COPY-Anweisung an, die zu ladenden Daten zu validieren und Ergebnisse basierend auf der angegebenen Validierungsoption zurückzugeben. Bei Angabe dieser Kopieroption werden keine Daten geladen. Weitere Informationen zur Kopieroption finden Sie unter COPY INTO <Tabelle>.

Führen Sie eine COPY-Anweisung aus, wobei die Kopieroption VALIDATION_MODE auf RETURN_ALL_ERRORS gesetzt ist. Verweisen Sie in der Anweisung auf den Satz von Dateien, die Sie zu laden versucht haben.

Im folgenden Beispiel werden Dateien, die Fehler enthalten, validiert. Um die Analyse der Fehler zu erleichtern, lädt eine COPY INTO <Speicherort>-Anweisung dann die problematischen Datensätze in eine Textdatei, damit sie analysiert und in den Originaldateien behoben werden können. Die Anweisung fragt die Tabellenfunktion RESULT_SCAN ab, um die Datensätze abzurufen. Beachten Sie, dass die Anweisungen in diesem Abschnitt nacheinander ausgeführt werden müssen, um die entsprechenden Datensätze mit der Funktion LAST_QUERY_ID abzurufen.

COPY INTO mytable
  FROM @mystage/myfile.csv.gz
  VALIDATION_MODE=RETURN_ALL_ERRORS;

SET qid=last_query_id();

COPY INTO @mystage/errors/load_errors.txt FROM (SELECT rejected_record FROM TABLE(result_scan($qid)));

Andere Probleme

Fehler: Die dem Stagingbereich {1} zugeordnete Integration {0} wurde nicht gefunden

Das Laden von Daten von einem externen Stagingbereich kann einen Fehler ähnlich dem folgenden hervorrufen:

003139=SQL compilation error:\nIntegration ''{0}'' associated with the stage ''{1}'' cannot be found.

Dieser Fehler kann auftreten, wenn die Zuordnung zwischen dem externen Stagingbereich und der mit dem Stagingbereich verknüpften Speicherintegration unterbrochen wurde. Dies geschieht, wenn das Speicherintegrationsobjekt neu erstellt wurde (mithilfe von CREATE OR REPLACE STORAGE INTEGRATION). Ein Stagingbereich ist mit einer Speicherintegration verknüpft, wobei anstelle des Namens der Speicherintegration eine ausgeblendete ID verwendet wird. Im Hintergrund löscht die CREATE OR REPLACE-Syntax das Objekt und erstellt es mit einer anderen verborgenen ID neu.

Wenn Sie eine Speicherintegration neu erstellen müssen, nachdem diese mit einer oder mehreren Stagingbereichen verknüpft wurde, müssen Sie die Zuordnung zwischen einem Stagingbereich und der Speicherintegration neu einrichten, indem Sie ALTER STAGE Stagingbereichsname SET STORAGE_INTEGRATION = Speicherintegrationsname ausführen, wobei:

  • Stagingbereichsname ist der Name des Stagingbereichs.

  • Speicherintegrationsname ist der Name der neuen Speicherintegration.