- Catégories :
VALIDATE¶
Valide les fichiers chargés lors d’une exécution passée de la commande COPY INTO <table> et renvoie toutes les erreurs rencontrées lors du chargement, plutôt que seulement la première erreur.
Syntaxe¶
VALIDATE( [<namespace>.]<table_name> , JOB_ID => { '<query_id>' | _last } )
Arguments¶
[espace_noms.]nom_table
Spécifie le nom complet de la table qui était la cible du chargement.
L’espace de noms est la base de données et / ou le schéma dans lequel réside la table, sous la forme
nom_base_données.nom_schéma
ounom_schéma
. Il est facultatif si une base de données et un schéma sont actuellement utilisés dans la session utilisateur. Dans le cas contraire, il est nécessaire.JOB_ID => id_requête | _last
ID pour que la commande COPY INTO <table> soit validée :
Vous pouvez obtenir l’ID à partir de la colonne Query ID de la page History
de l”classic web interface. L’ID de requête spécifié doit concerner la table cible spécifiée.
Si
_last
est spécifié au lieu deid_requête
, la fonction valide le dernier chargement exécuté pendant la session en cours, quelle que soit la table cible spécifiée.
Notes sur l’utilisation¶
Cette fonction ignore la liste SELECT dans les instructions COPY INTO <table> qui transforment les données pendant un chargement. La fonction analyse les fichiers référencés dans l’instruction et renvoie toute erreur d’analyse. Ce comportement peut être surprenant si vous vous attendez à ce que la fonction évalue les fichiers dans le contexte des expressions COPY INTO <table>.
La validation ne renvoie aucun résultat pour les instructions COPY spécifiant
ON_ERROR = ABORT_STATEMENT
(valeur par défaut).La validation échoue si :
L’utilisateur actuel n’a pas accès à
nom_table
.L’utilisateur actuel n’est pas l’utilisateur qui a exécuté
id_requête
et ne dispose pas des privilèges de contrôle d’accès sur cet utilisateur.
Si de nouveaux fichiers ont été ajoutés à la zone de préparation utilisée par
id_requête
depuis l’exécution du chargement, les nouveaux fichiers ajoutés sont ignorés lors de la validation.Si des fichiers ont été supprimés de la zone de préparation utilisée par
id_requête
depuis l’exécution du chargement, les fichiers supprimés sont signalés comme étant manquants.
Exemples¶
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.
Renvoyez les erreurs pour la dernière commande COPY exécutée :
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 | -----------------------------------------------------------------+---------------------------+------+-----------+-------------+----------+--------+-----------+-------------+------------+----------------+
Renvoyez les erreurs en spécifiant un ID de requête obtenu à partir de l’interface Web :
SELECT * FROM TABLE(VALIDATE(t1, JOB_ID=>'5415fa1e-59c9-4dda-b652-533de02fdcf1'));
Même requête que ci-dessus, mais enregistrez les résultats dans une table pour référence future :
CREATE OR REPLACE TABLE save_copy_errors AS SELECT * FROM TABLE(VALIDATE(t1, JOB_ID=>'5415fa1e-59c9-4dda-b652-533de02fdcf1'));