Résoudre les problèmes de transfert de données
Cette page explique comment résoudre les problèmes liés au transfert ou au chargement de données dans BigQuery. Vous pouvez résoudre les erreurs courantes liées au service de transfert de données BigQuery, aux connexions réseau sur Cloud de Confiance by S3NS, aux réseaux Amazon Web Services (AWS), Cloud SQL et de cloud privé virtuel (VPC), ainsi qu'aux jobs de chargement de données CSV depuis Cloud Storage.
Résoudre les problèmes liés aux configurations de transfert
Pour savoir comment résoudre les problèmes liés au service de transfert de données BigQuery, consultez Résoudre les problèmes de configuration des transferts.
Si vous configurez ou exécutez des transferts à partir de sources de données externes ou partenaires, consultez Résoudre les problèmes de configuration d'un transfert tiers.
Diagnostiquer les jobs avec les vues INFORMATION_SCHEMA
Vous pouvez interroger la vue INFORMATION_SCHEMA.JOBS pour diagnostiquer les échecs ou la lenteur des jobs de chargement et des requêtes de transfert en temps quasi réel. Lorsqu'une tâche de chargement ou une requête de transfert échoue, examinez les colonnes error_result et errors pour identifier la cause première, comme des incompatibilités de schéma, des limites de quota ou des erreurs d'autorisation.
L'exemple suivant interroge INFORMATION_SCHEMA.JOBS pour récupérer les détails des erreurs des jobs de chargement ayant échoué au cours des dernières 24 heures :
SELECT job_id, creation_time, user_email, error_result.reason AS error_reason, error_result.message AS error_message, errors FROM `region-REGION`.INFORMATION_SCHEMA.JOBS WHERE job_type = 'LOAD' AND state = 'DONE' AND error_result IS NOT NULL AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) ORDER BY creation_time DESC;
Remplacez <var>REGION</var> par le nom de la région de l'ensemble de données, par exemple us ou europe-west1.
Résoudre les problèmes de connexion réseau pour les transferts
Lorsque vous transférez des données depuis des fournisseurs de cloud externes ou des instances de bases de données privées, le routage réseau ou les règles de pare-feu peuvent bloquer la connectivité. Utilisez les sections suivantes pour résoudre les problèmes liés aux pièces jointes VPN et aux connexions réseau privées.
AWS-Cloud de Confiance VPN et rattachements réseau
Si vous rencontrez des problèmes lors de la configuration de votre rattachement de réseau, procédez comme suit :
- Assurez-vous que les connexions VPN sont opérationnelles dans la console AWS et dans la console Cloud de Confiance .
- Recherchez les erreurs ou les paquets abandonnés dans les journaux du VPN.
- Vérifiez que les tables de routage dans AWS etCloud de Confiance sont correctement configurées.
- Assurez-vous que les ports nécessaires sont ouverts à la fois dans les groupes de sécurité AWS et dans les règles de pare-feu Cloud de Confiance .
Pour en savoir plus sur la configuration des rattachements VPN, consultez Créer un rattachement de réseau et un VPN AWS-Cloud de Confiance .
Accès aux instances Cloud SQL
Si vous rencontrez des problèmes pour configurer votre réseau, procédez comme suit :
- Assurez-vous que l'appairage VPC est établi et que les routes sont correctement configurées.
- Vérifiez que les règles de pare-feu autorisent le trafic sur les ports requis.
- Consultez les journaux du proxy Cloud SQL pour détecter les erreurs et assurez-vous qu'il fonctionne correctement.
- Assurez-vous que le rattachement de réseau est correctement configuré et connecté.
Pour en savoir plus sur la configuration de l'accès privé aux bases de données, consultez Se connecter à une instance Cloud SQL.
Résoudre les problèmes de chargement de fichiers CSV
Lorsque vous chargez des données CSV depuis Cloud Storage dans BigQuery, les jobs peuvent échouer en raison d'erreurs de mise en forme, de limites de taille de fichier ou de problèmes de détection automatique du schéma. Utilisez les sections suivantes pour résoudre les erreurs courantes de chargement de fichiers CSV.
Résoudre les erreurs d'analyse
En cas de problème d'analyse de vos fichiers CSV, la ressource errors du job de chargement est renseignée avec les détails de l'erreur.
En règle générale, ces erreurs identifient le début de la ligne problématique avec un décalage d'octets. Pour les fichiers non compressés, vous pouvez utiliser gcloud storage avec l'argument --recursive pour accéder à la ligne concernée.
Par exemple, vous exécutez la commande bq load et recevez une erreur :
bq load
--skip_leading_rows=1 \
--source_format=CSV \
mydataset.mytable \
gs://my-bucket/mytable.csv \
'Number:INTEGER,Name:STRING,TookOffice:STRING,LeftOffice:STRING,Party:STRING'
L'erreur affichée dans le résultat est semblable à celle-ci :
Waiting on bqjob_r5268069f5f49c9bf_0000018632e903d7_1 ... (0s)
Current status: DONE
BigQuery error in load operation: Error processing job
'myproject:bqjob_r5268069f5f49c9bf_0000018632e903d7_1': Error while reading
data, error message: Error detected while parsing row starting at position: 1405.
Error: Data between close quote character (") and field separator.
File: gs://my-bucket/mytable.csv
Failure details:
- gs://my-bucket/mytable.csv: Error while reading data,
error message: Error detected while parsing row starting at
position: 1405. Error: Data between close quote character (") and
field separator. File: gs://my-bucket/mytable.csv
- Error while reading data, error message: CSV processing encountered
too many errors, giving up. Rows: 22; errors: 1; max bad: 0; error
percent: 0
D'après l'erreur précédente, le fichier comporte une erreur de format.
Pour afficher le contenu du fichier, exécutez la commande gcloud storage cat :
gcloud storage cat 1405-1505 gs://my-bucket/mytable.csv --recursive
Le résultat ressemble à ce qui suit :
16,Abraham Lincoln,"March 4, 1861","April 15, "1865,Republican 18,Ulysses S. Grant,"March 4, 1869", ...
D'après le résultat du fichier, le problème est une guillemet mal placée dans "April 15, "1865.
Fichiers CSV compressés
Le débogage des erreurs d'analyse est plus difficile pour les fichiers CSV compressés, car le décalage d'octets signalé fait référence à l'emplacement dans le fichier non compressé.
La commande gcloud storage cat suivante diffuse le fichier à partir de Cloud Storage, décompresse le fichier, identifie le décalage d'octets approprié et imprime la ligne avec l'erreur de format :
gcloud storage cat gs://my-bucket/mytable.csv.gz | gunzip - | tail -c +1406 | head -n 1
Le résultat ressemble à ce qui suit :
16,Abraham Lincoln,"March 4, 1861","April 15, "1865,Republican
Résoudre les erreurs de quota
Utilisez les informations de cette section pour résoudre les erreurs de quota ou de limite liées au chargement de fichiers CSV dans BigQuery.
Si vous chargez un fichier CSV volumineux à l'aide de la commande bq load avec l'option --allow_quoted_newlines, cette erreur peut se produire.
Message d'erreur
Input CSV files are not splittable and at least one of the files is larger than
the maximum allowed size. Size is: ...
Solution
Pour résoudre cette erreur de quota, procédez comme suit :
- Définissez l'indicateur
--allow_quoted_newlinessurfalse. - Scindez le fichier CSV en fragments plus petits de moins de 4 Go chacun.
Pour en savoir plus sur les limites qui s'appliquent lorsque vous chargez des données dans BigQuery, consultez la section Tâches de chargement.
Résoudre les problèmes liés à la détection automatique de schéma
Lorsque vous détectez automatiquement le schéma des fichiers CSV, vous pouvez rencontrer l'erreur suivante :
Erreur : Error while reading data, error message: CSV processing encountered
too many errors, giving up.
Cette erreur peut se produire lorsque votre fichier CSV comporte une ligne d'en-tête avec des valeurs de chaîne, et que BigQuery ne l'a pas détectée comme en-tête. Vous pouvez utiliser l'option --skip_leading_rows pour ignorer la ligne d'en-tête.