- Kategorien:
VALIDATE¶
Validiert die Dateien, die bei einer früheren Ausführung des Befehls COPY INTO <Tabelle> geladen wurden, und gibt nicht nur den ersten Fehler, sondern alle Fehler zurück, die beim Laden aufgetreten sind.
Syntax¶
VALIDATE( [<namespace>.]<table_name> , JOB_ID => { '<query_id>' | _last } )
Argumente¶
[Namespace.]Tabellenname
Gibt den vollständig qualifizierten Namen der Tabelle an, die das Ladeziel war.
Namespace ist die Datenbank und/oder das Schema, in dem sich die Tabelle befindet, in Form von
Datenbankname.Schemaname
oderSchemaname
. Es ist optional, ob in der Benutzersitzung aktuell eine Datenbank und ein Schema verwendet werden, andernfalls ist es erforderlich.JOB_ID => Abfrage-ID | _last
Die ID für den zu validierenden Befehl COPY INTO <Tabelle>:
Die ID kann der Query ID-Spalte auf der Seite History
der klassischen Weboberfläche entnommen werden. Die angegebene Abfrage-ID muss für die angegebene Zieltabelle bestimmt gewesen sein.
Wenn
_last
anstelle vonAbfrage-ID
angegeben wird, überprüft die Funktion den letzten Ladevorgang, der während der aktuellen Sitzung ausgeführt wurde, unabhängig von der angegebenen Zieltabelle.
Nutzungshinweise¶
Diese Funktion ignoriert die SELECT-Liste in COPY INTO <Tabelle>-Anweisungen, die Daten während eines Ladevorgangs transformieren. Die Funktion analysiert die Dateien, auf die in der Anweisung verwiesen wird, und gibt alle Parsing-Fehler zurück. Dieses Verhalten kann überraschend sein, wenn erwartet wird, dass die Funktion die Dateien im Kontext der COPY INTO <Tabelle>-Ausdrücke auswertet.
Die Validierung gibt keine Ergebnisse für COPY-Anweisungen zurück, in denen
ON_ERROR = ABORT_STATEMENT
(Standardwert) angegeben ist.Die Validierung schlägt in folgenden Fällen fehl:
Der aktuelle Benutzer hat keinen Zugriff auf
Tabellenname
.Der aktuelle Benutzer ist nicht der Benutzer, der
Abfrage-ID
ausgeführt hat, und verfügt nicht über Zugriffssteuerungsrechte für diesen Benutzer.
Wenn seit der Ausführung des Ladevorgangs dem von
Abfrage-ID
verwendeten Stagingbereich neue Dateien hinzugefügt wurden, werden die hinzugefügten Dateien während der Validierung ignoriert.Wenn seit dem Ausführen des Ladevorgangs Dateien aus dem von
Abfrage-ID
verwendeten Stagingbereich entfernt wurden, werden die entfernten Dateien als fehlend gemeldet.
Beispiele¶
COPY INTO t1 FROM @%t1
PATTERN='.*tw01.*'
FILE_FORMAT=(NULL_IF=('') FIELD_OPTIONALLY_ENCLOSED_BY='"')
ON_ERROR = SKIP_FILE;
COPY INTO t1;
FAILURE: Error parsing JSON: unterminated string
File 'tables/530049/bad.json.gz', line 120
Row 0 starts at line 1, column V
If you would like to continue loading when an error is encountered, use other values such as 'SKIP_FILE' or 'CONTINUE' for the ON_ERROR option. For more information on loading options, please run 'info loading_data' in a SQL client.
Geben Sie Fehler für den zuletzt ausgeführten COPY-Befehl zurück:
SELECT * FROM TABLE(VALIDATE(t1, JOB_ID => '_last')); -----------------------------------------------------------------+---------------------------+------+-----------+-------------+----------+--------+-----------+-------------+------------+----------------+ ERROR | FILE | LINE | CHARACTER | BYTE_OFFSET | CATEGORY | CODE | SQL_STATE | COLUMN_NAME | ROW_NUMBER | ROW_START_LINE | -----------------------------------------------------------------+---------------------------+------+-----------+-------------+----------+--------+-----------+-------------+------------+----------------+ Error parsing JSON: unterminated string | tables/530049/bad.json.gz | 120 | [NULL] | 7504 | parsing | 100069 | 22P02 | V | 0 | 1 | Error parsing JSON: misplaced colon | tables/530049/bad.json.gz | 214 | 18 | 84465 | parsing | 100069 | 22P02 | V | 2 | 214 | Error parsing JSON: unknown keyword "tru" | tables/530049/bad.json.gz | 1467 | [NULL] | 85337 | parsing | 100069 | 22P02 | V | 3 | 1445 | Error parsing JSON: unknown keyword "stat" | tables/530049/bad.json.gz | 1469 | 13 | 85353 | parsing | 100069 | 22P02 | V | 5 | 1469 | Error parsing JSON: unknown keyword "ok" | tables/530049/bad.json.gz | 1469 | 20 | 85360 | parsing | 100069 | 22P02 | V | 7 | 1469 | Error parsing JSON: invalid character outside of a string: '\\' | tables/530049/bad.json.gz | 1469 | 21 | 163414 | parsing | 100069 | 22P02 | V | 8 | 1469 | Error parsing JSON: misplaced } | tables/530049/bad.json.gz | 1470 | 3 | 163418 | parsing | 100069 | 22P02 | V | 9 | 1469 | -----------------------------------------------------------------+---------------------------+------+-----------+-------------+----------+--------+-----------+-------------+------------+----------------+
Geben Sie Fehler zurück, indem Sie eine Abfrage-ID angeben, die von der Weboberfläche abgerufen wird:
SELECT * FROM TABLE(VALIDATE(t1, JOB_ID=>'5415fa1e-59c9-4dda-b652-533de02fdcf1'));
Gleiche Abfrage wie oben, aber speichern Sie die Ergebnisse in einer Tabelle zur späteren Verwendung:
CREATE OR REPLACE TABLE save_copy_errors AS SELECT * FROM TABLE(VALIDATE(t1, JOB_ID=>'5415fa1e-59c9-4dda-b652-533de02fdcf1'));