Résoudre les problèmes liés aux configurations de transfert
Ce document est destiné à vous aider à résoudre les problèmes les plus fréquents lors de la configuration d'un transfert avec le service de transfert de données BigQuery. Ce document n'inclut pas tous les messages d'erreur ou problèmes possibles.
Si vous rencontrez des problèmes qui ne sont pas traités dans ce document, vous pouvez contacter l'assistance.
Avant de contacter le Cloud Customer Care, capturez la configuration du transfert et les détails de l'exécution du transfert. Pour en savoir plus sur l'obtention de ces détails, consultez les pages Obtenir des informations sur un transfert et Afficher les détails d'une exécution de transfert et les messages de journal.
Examiner les erreurs
Si votre transfert initial échoue, vous pouvez examiner les détails de l'historique d'exécution. Les erreurs répertoriées dans l'historique d'exécution peuvent vous aider à identifier une résolution appropriée à l'aide de ce document.
Vous pouvez également afficher les messages d'erreur d'un job de transfert spécifique à l'aide de l'explorateur de journaux. Le filtre Explorateur de journaux suivant renvoie des informations sur un job de configuration de transfert spécifique, ainsi que tous les messages d'erreur :
resource.type="bigquery_dts_config"
labels.run_id="RUN_ID"
resource.labels.config_id="CONFIG_ID"
Remplacez les éléments suivants :
RUN_ID: numéro d'ID d'une exécution de job spécifiqueCONFIG_ID: numéro d'ID d'un job de configuration de transfert
Avant de contacter le service client, relevez toutes les informations pertinentes de l'historique d'exécution ou de l'explorateur de journaux, y compris les messages d'erreur.
Si vous utilisez des transferts déclenchés par des événements, il est possible que la configuration de transfert déclenché par des événements ne déclenche pas d'exécution de transfert. Vous pouvez afficher les messages d'erreur en haut de la page Historique des exécutions ou Configuration.
Problèmes d'ordre général
Lors du diagnostic des problèmes de transfert généraux, vérifiez les points suivants :
- Vérifiez que vous avez effectué toutes les étapes de la section "Avant de commencer".
- Les propriétés de configuration du transfert sont correctes.
- Le compte d'utilisateur utilisé pour créer le transfert a accès aux ressources sous-jacentes.
Si votre configuration de transfert est correcte et si les autorisations appropriées sont accordées, reportez-vous à la section suivante pour obtenir des solutions aux problèmes les plus courants.
- Erreur :
An unexpected issue was encountered. If this issue persists, please contact customer support. - Résolution : Cette erreur indique généralement une panne temporaire ou un problème dans BigQuery. Attendez environ deux heures que le problème soit résolu. Si le problème persiste, contactez l'assistance.
- Erreur :
INTERNAL: An internal error occurred and the request could not be completed. This is usually caused by a transient issue... - Résolution : Cette erreur indique généralement un problème interne temporaire. Si vous rencontrez cette erreur, vous pouvez attendre de voir si elle se résout lors de la prochaine exécution planifiée ou vous pouvez déclencher manuellement un remplissage pour les dates concernées. Si le problème persiste, contactez l'assistance.
- Erreur :
Quota Exceeded. Résolution : Les transferts sont soumis aux quotas sur les tâches de chargement de BigQuery. Si vous devez augmenter votre quota, contactez votre conseiller commercial Cloud de Confiance by S3NS . Pour en savoir plus, consultez la page Quotas et limites.
Si vous chargez des exportations Cloud Billing vers BigQuery, vous pouvez rencontrer l'erreur
Quota Exceeded. Les tables d'exportation Cloud Billing et les tables BigQuery de destination créées par le service de transfert de données BigQuery sont partitionnées. Le choix de l'option overwrite lors de la définition de ces jobs de service de transfert de données BigQuery entraîne des erreurs de quota en fonction de la quantité de données exportées. Pour en savoir plus sur le dépannage des quotas, consultez la page Résoudre les erreurs de quota et de limite.Si l'erreur est due à des jobs du service de transfert de données BigQuery pour les exportations Cloud Billing, notez que, comme les tables d'exportation Cloud Billing individuelles sont partitionnées, la table cible créée par le service de transfert de données BigQuery l'est également. Par conséquent, le choix de l'option overwrite lors de la configuration de ces jobs de transfert de données entraînera des erreurs de quota (LMD) en fonction de l'ancienneté des comptes de facturation. Pour en savoir plus sur le dépannage des quotas, consultez la page Résoudre les erreurs de quota et de limite.
- Erreur :
The caller does not have permission. Résolution : Vérifiez que le compte connecté dans la console Cloud de Confiance est identique au compte que vous sélectionnez pour le service de transfert de données BigQuery lors de la création du transfert.
Compte connecté dans la console Cloud de Confiance :
Choisissez un compte pour accéder au service de transfert de données BigQuery :
- Erreur :
Access Denied: ... Permission bigquery.tables.get denied on table ... Résolution : Vérifiez que l'agent de service du Service de transfert de données BigQuery dispose du rôle
bigquery.dataEditorsur l'ensemble de données cible. Cette autorisation est automatiquement appliquée lors de la création et de la mise à jour du transfert, mais il est possible que la règle d'accès ait été modifiée manuellement par la suite. Pour accorder l'autorisation à nouveau, consultez la section Accorder l'accès à un ensemble de données.- Erreur :
region violates constraint constraints/gcp.resourceLocations on the resource projects/project_id Résolution : cette erreur se produit lorsqu'un utilisateur tente de créer une configuration de transfert dans un emplacement restreint, comme spécifié dans la règle d'administration de restriction d'emplacement. Vous pouvez résoudre ce problème en modifiant la règle d'administration pour autoriser la région, ou en remplaçant la configuration de transfert par un ensemble de données de destination situé dans une région sans restriction de la règle d'administration.
- Erreur :
Please look into the errors[] collection for more details. Résolution : cette erreur peut se produire lorsqu'un transfert de données échoue. Pour en savoir plus sur les raisons de l'échec du transfert de données, vous pouvez utiliser Cloud Logging pour afficher vos journaux. Pour trouver les journaux d'une exécution spécifique, effectuez une recherche à l'aide du
run_iddu transfert.- Erreur :
Network Attachment with connected endpoints cannot be deleted. Résolution : cette erreur peut se produire lorsqu'un utilisateur tente de supprimer ses rattachements de réseau peu de temps après avoir supprimé son transfert. En effet, il peut s'écouler plusieurs jours après la suppression d'un transfert avant que le service de transfert de données BigQuery puisse supprimer complètement toutes les ressources associées au transfert, ce qui peut empêcher la suppression des pièces jointes réseau. Pour résoudre ce problème, patientez plusieurs jours avant de supprimer les pièces jointes réseau. Si vous souhaitez que les rattachements de réseau soient supprimés plus rapidement, vous pouvez contacter l'assistance.
- Erreur :
Error while reading data, error message: CSV processing encountered too many errors, giving up. Résolution : cette erreur peut se produire en cas d'incohérence entre la configuration de votre fichier CSV dans votre source de données et celle du fichier CSV dans la configuration du transfert. Par exemple, cette erreur peut se produire si Lignes d'en-tête à ignorer est défini sur
0, mais que votre fichier CSV source contient une ou plusieurs lignes d'en-tête. Pour corriger cette erreur, vérifiez que la configuration CSV dans la configuration du transfert est correcte et qu'elle correspond à la configuration de votre fichier CSV source.- Erreur :
Error 400: DTS service agent needs iam.serviceAccounts.getAccessToken permission or [SERVICE_ACCOUNT] doesn't exist. Cause première : cette erreur indique que l'agent de service du service de transfert de données BigQuery (DTS) ne dispose pas de l'autorisation nécessaire pour emprunter l'identité du compte de service utilisé pour le transfert. Cela se produit généralement dans les scénarios d'autorisation inter-projets ou lorsque le transfert est configuré à l'aide d'outils Infrastructure as Code (IaC) tels que Terraform.
Solution : Attribuez le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator) à l'agent de service DTS sur le compte de service spécifique dont il doit emprunter l'identité.gcloud iam service-accounts add-iam-policy-binding service_account \ --member serviceAccount:service-destination_project_number@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com \ --role roles/iam.serviceAccountTokenCreator
Où :
- service_account est l'adresse e-mail du compte utilisé pour autoriser le transfert.
- destination_project_number est le numéro du projet dans lequel réside la configuration de transfert. Pour savoir comment identifier votre numéro de projet, consultez Identifier des projets.
- Erreur :
For asset "ASSET", no eligible column found for splitting (Reason: Primary or Indexed Key columns found, but none are of supported types (INTEGER, TINYINT, SMALLINT, FLOAT, REAL, DOUBLE, NUMERIC, BIGINT, DECIMAL, DATE, BOOLEAN)) - Résolution : cette erreur peut se produire lorsque vous essayez de transférer plus de 2 000 000 d'enregistrements d'une table source vers une table BigQuery et qu'il n'y a pas de clé primaire ni de colonne indexée de type de données compatible dans la table source. Pour résoudre ce problème, configurez une colonne avec l'un des types de données compatibles comme clé primaire ou colonne indexée dans votre tableau source. Pour en savoir plus, consultez la section sur les limites du guide de votre source de transfert.
Problèmes d'autorisation
Voici quelques erreurs d'autorisation courantes que vous pouvez rencontrer lorsque vous transférez des données à partir de différentes sources de données :
- Erreur :
BigQuery Data Transfer Service is not enabled for <project_id> - Erreur :
BigQuery Data Transfer Service has not been used in project <project_id> before or it is disabled ... Résolution : vérifiez que le rôle d'agent de service est attribué en procédant comme suit :
Dans la console Cloud de Confiance , accédez à la page IAM et Administration.
Cochez la case Inclure les attributions de rôles fournies par S3NS.
Vérifiez que le compte de service intitulé
service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.coms'affiche ou qu'il a reçu le rôle d'agent de service de transfert de données BigQuery.
Si le compte de service n'est pas affiché ou s'il n'a pas obtenu le rôle d'agent de service du service de transfert de données BigQuery, attribuez le rôle prédéfini dans la console Cloud de Confiance ou en exécutant la commande suivante dans Google Cloud CLI :
gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com \ --role roles/bigquerydatatransfer.serviceAgentRemplacez
PROJECT_NUMBERpar le numéro de projet associé à ce compte de service.- Erreur :
There was an error loading this table. Check that the table exists and that you have the correct permissions. Solution :
Dans la console Cloud de Confiance , accédez à la page BigQuery.
Cliquez sur l'ensemble de données de destination utilisé dans le transfert.
Cliquez sur le menu Partage, puis sur Autorisations.
Développez le rôle Éditeur de données BigQuery.
Vérifiez que l'agent de service du service de transfert de données BigQuery est ajouté à ce rôle. Si ce n'est pas le cas, attribuez le rôle d'éditeur de données BigQuery (
roles/bigquery.dataEditor) à l'agent de service de transfert de données BigQuery.
- Erreur :
A permission denied error was encountered: PERMISSION_DENIED. Please ensure that the user account setting up the transfer config has the necessary permissions, and that the configuration settings are correct Solution :
Dans la console Cloud de Confiance , accédez à la page Transferts de données.
Cliquez sur le transfert ayant échoué, puis sélectionnez l'onglet Configuration.
Vérifiez que le propriétaire du transfert répertorié dans le champ Utilisateur dispose de toutes les autorisations requises pour la source de données.
Si le propriétaire du transfert ne dispose pas de toutes les autorisations requises, accordez-les en mettant à jour leurs identifiants. Vous pouvez également remplacer le propriétaire de transfert par un autre utilisateur disposant des autorisations requises.
- Erreur :
Authentication failure: User Id not found. Error code: INVALID_USERID Résolution : l'ID utilisateur du propriétaire du transfert n'est pas valide. Remplacez le propriétaire du transfert par un autre utilisateur en mettant à jour ses identifiants. Si vous utilisez un compte de service, vous devez également vérifier que les comptes exécutant le transfert de données disposent de toutes les autorisations requises pour utiliser un compte de service.
- Erreur :
The user does not have permission Résolution : Vérifiez que le propriétaire du transfert est un compte de service et que ce service dispose de toutes les autorisations requises définies. Il est également possible que le compte de service utilisé ait été créé dans un projet différent de celui utilisé pour créer ce transfert. Pour résoudre les problèmes d'autorisation entre projets, consultez les ressources suivantes :
- Activer l'association des comptes de service à plusieurs projets
- Autorisation de comptes de service multiprojets (pour accorder les autorisations nécessaires)
- Erreur :
HttpError 403 when requesting returned "The caller does not have permission" googleapiclient.errors.HttpError: <HttpError 403 when requesting returned "The caller does not have permission". Details: "The caller does not have permission">Cette erreur peut se produire lorsque vous tentez de configurer une requête programmée avec un compte de service.
Résolution : assurez-vous que le compte de service dispose de toutes les autorisations requises pour planifier ou modifier une requête programmée, et que l'utilisateur qui configure la requête programmée a accès au compte de service.
Si les autorisations appropriées sont toutes attribuées, mais que vous rencontrez toujours l'erreur, vérifiez si la règle Désactiver l'utilisation des comptes de service multi-projets est appliquée par défaut au projet. Pour vérifier la règle dans la console Cloud de Confiance , accédez à IAM et administration > Règles d'administration, puis recherchez la règle.

Si la règle Désactiver l'utilisation des comptes de service multi-projets est appliquée, vous pouvez la désactiver en procédant comme suit :
- Identifiez les comptes de service associés au projet à l'aide de la console Cloud de Confiance en accédant à IAM et administration > Comptes de service. Cette vue affiche tous les comptes de service du projet en cours.
- Désactivez la règle dans le projet où se trouvent les comptes de service à l'aide de la commande suivante. Pour désactiver cette règle, l'utilisateur doit être un administrateur des règles d'administration. Seul l'administrateur de l'organisation peut attribuer ce rôle à un utilisateur.
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=[PROJECT-ID]
Problèmes de configuration des transferts basés sur des événements
Voici les problèmes courants que vous pouvez rencontrer lors de la création d'un transfert basé sur les événements.
- Erreur :
Data Transfer Service is not authorized to pull message from the provided Pub/Sub subscription. Résolution : Vérifiez que l'agent de service du Service de transfert de données BigQuery dispose du rôle
pubsub.subscriber:Dans la console Cloud de Confiance , accédez à la page Pub/Sub.
Sélectionnez l'abonnement Pub/Sub que vous avez utilisé dans le transfert basé sur des événements.
Si le panneau d'informations est masqué, cliquez sur Afficher le panneau d'informations en haut à droite.
Dans l'onglet Autorisations, vérifiez que l'agent de service du service de transfert de données BigQuery dispose du rôle
pubsub.subscriber.

Si le rôle
pubsub.subscribern'est pas attribué à l'agent de service. Cliquez sur Ajouter un compte principal pour attribuer le rôlepubsub.subscriberàservice-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com.- Erreur :
Cloud Pub/Sub API has not been used in project PROJECT_NUMBER before or it is disabled. Résolution : vérifiez que l'API Cloud Pub/Sub est activée pour votre projet :
Dans la console Cloud de Confiance , accédez à la page API et services.
Cliquez sur Activer les API et les services.
Recherchez
Cloud Pub/Sub API, sélectionnez le premier résultat, puis cliquez sur Activer.
- Erreur :
Data Transfer Service does not have required permission to use project quota of project PROJECT_NUMBER to access Pub/Sub. Résolution : Vérifiez que l'agent de service du Service de transfert de données BigQuery dispose du rôle
serviceusage.serviceUsageConsumer:Dans la console Cloud de Confiance , accédez à la page IAM et Administration.
Cochez la case Inclure les attributions de rôles fournies par S3NS.
Vérifiez que le compte de service intitulé
service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.coms'affiche et qu'il a reçu le rôle de consommateur de l'utilisation du service.
- Problème : lorsque vous utilisez le transfert basé sur les événements Cloud Storage, aucune exécution de transfert n'est déclenchée après l'importation ou la mise à jour de fichiers dans le bucket Cloud Storage.
Les exécutions de transfert ne sont pas déclenchées immédiatement après la réception d'un événement. Le déclenchement d'une exécution du transfert peut prendre plusieurs minutes. Pour vérifier l'état de la prochaine exécution du transfert, vous pouvez consulter le champ Date cible de la prochaine exécution dans l'historique des exécutions. Ce champ affiche l'heure de la prochaine exécution ou En attente d'événements pour planifier l'exécution suivante si aucun événement n'a été reçu. Si vous avez importé ou mis à jour des fichiers dans votre bucket Cloud Storage, mais que la date cible de la prochaine exécution n'a pas été mise à jour et qu'aucune exécution n'a été déclenchée pendant 10 à 20 minutes, consultez la solution suivante.
Résolution : vérifiez que votre abonnement Pub/Sub spécifié dans la configuration du transfert peut recevoir les messages publiés à partir des événements Cloud Storage :
Dans la console Cloud de Confiance , accédez à la page Pub/Sub.
Sélectionnez l'abonnement Pub/Sub que vous avez utilisé dans le transfert basé sur des événements.
Dans l'onglet Métriques, consultez le graphique "Âge du plus ancien message non confirmé" et vérifiez s'il contient des messages.

Si aucun message n'est publié, vérifiez si la notification Pub/Sub est correctement configurée pour Cloud Storage. Vous pouvez utiliser la commande Google Cloud CLI suivante pour vérifier les configurations de notification associées à votre bucket :
gcloud storage buckets notifications list gs://BUCKET_NAMERemplacez
BUCKET_NAMEpar le nom du bucket que vous utilisez pour les notifications. Pour savoir comment configurer une notification Pub/Sub pour Cloud Storage, consultez Configurer une notification Pub/Sub pour Cloud Storage.S'il y a des messages, vérifiez si le même abonnement Pub/Sub est utilisé dans d'autres configurations de transfert basées sur des événements. Le même abonnement Pub/Sub ne peut pas être réutilisé par plusieurs configurations de transfert déclenchées par des événements. Pour en savoir plus sur les transferts basés sur des événements, consultez Transferts basés sur des événements.
Problèmes de quota
- Erreur :
Quota exceeded: Your project exceeded quota for imports per project. - Résolution : Vérifiez que vous n'avez pas programmé trop de transferts dans votre projet. Pour en savoir plus sur le calcul du nombre de tâches de chargement lancées par un transfert, consultez la page Quotas et limites.