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 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 de l'explorateur de journaux suivant renvoie des informations sur un job de configuration de transfert spécifique, ainsi que les messages d'erreur éventuels :
resource.type="bigquery_dts_config"
labels.run_id="RUN_ID"
resource.labels.config_id="CONFIG_ID"
Remplacez les éléments suivants :
RUN_ID: ID d'une exécution de job spécifiqueCONFIG_ID: ID d'un job de configuration de transfert
Avant de contacter Customer Care, capturez 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 basés sur des événements, la configuration de transfert basée sur des événements peut ne pas déclencher d'exécution de transfert. Vous pouvez afficher les messages d'erreur en haut de la page Historique des exécutions ou de la page 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 la configuration de 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... - Solution : cette erreur indique généralement un problème interne temporaire. Si vous rencontrez cette erreur, vous pouvez attendre de voir si elle est résolue 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, demandez de l'aide.
- 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, puisque 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 le même que celui 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 en cas d'échec d'un transfert de données. Pour en savoir plus sur l'échec du transfert de données, vous pouvez utiliser Cloud Logging pour afficher vos journaux. Vous pouvez rechercher les journaux d'une exécution spécifique en effectuant une recherche à l'aide de l'
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, après la suppression d'un transfert, plusieurs jours peuvent s'écouler 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 rattachements de réseau. Pour résoudre cette erreur, attendez plusieurs jours avant d'essayer de supprimer les rattachements de réseau. Si vous souhaitez que les rattachements de réseau soient supprimés plus tôt, 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 de non-concordance entre la configuration de votre fichier CSV dans votre source de données et la configuration du fichier CSV dans la configuration de transfert. Par exemple, cette erreur peut se produire si l'option Lignes d'en-tête à ignorer est définie 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 de 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 principale : 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 multiprojets ou lorsque le transfert est configuré à l'aide d'outils d'infrastructure as code (IaC) tels que Terraform.
Résolution : Attribuez le rôle de 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 se trouve la configuration de transfert. Pour savoir comment identifier votre numéro de projet, consultez Trouver le nom, le numéro et l'ID du projet.
- 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'existe pas de clé primaire ni de colonne indexée d'un 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 en tant que clé primaire ou colonne indexée dans votre table source. Pour en savoir plus, consultez la section sur les limites dans le guide de votre source de transfert.
- Erreur :
Permission bigquery.tables.create denied. Symptôme :
Error code 7 : Access Denied : Dataset [PROJECT_ID]:[DATASET_ID] : Permission bigquery.tables.create denied on dataset [PROJECT_ID]:[DATASET_ID] (or it may not exist).Un transfert Cloud Storage échoue avec une erreur d'accès refusé pour la création de table, même si la table de destination existe déjà et que le compte de service dispose de rôles d'éditeur de données standards.
Cause : Cette erreur se produit lorsqu'une exécution de transfert Cloud Storage implique plus de 10 000 fichiers et que l'autorisation
bigquery.tables.createn'est pas accordée. Lorsque les transferts dépassent 10 000 fichiers, le service partitionne les données dans des tables de préproduction temporaires créées de manière dynamique. Pour ce faire, vous devez disposer de l'autorisation bigquery.tables.create, même si un projet est enregistré pour des transferts volumineux (ou si une augmentation de quota a été approuvée).Résolution : pour transférer plus de 10 000 fichiers, assurez-vous de remplir les deux conditions suivantes :
Vérifier l'inscription aux quotas et aux fonctionnalités : assurez-vous que votre projet est inscrit pour les transferts Cloud Storage volumineux (plus de 10 000 fichiers). Si vous devez transférer plus de 10 000 fichiers, contactez l'assistance pour demander une augmentation du quota du nombre maximal de fichiers par exécution de transfert.
Accorder les autorisations IAM requises : accordez au compte de service ou à l'identité utilisateur exécutant le transfert l'autorisation
bigquery.tables.createsur l'ensemble de données de destination. Cette autorisation est incluse dans les rôles Éditeur de données BigQuery (roles/bigquery.dataEditor) et Administrateur BigQuery (roles/bigquery.admin). Si vous continuez à rencontrer des échecs après avoir accordé les autorisations nécessaires, vous devrez peut-être contacter l'assistance pour confirmer l'état de votre liste d'autorisation.Alternatives : Si vous ne pouvez pas accorder les autorisations requises ou attendre une augmentation de quota et une modification de configuration, envisagez les options suivantes :
- Réduisez le nombre de fichiers par exécution de transfert à 10 000 ou moins, par exemple en utilisant des caractères génériques d'URI plus spécifiques ou en divisant le transfert en plusieurs configurations plus petites.
- Pour les transferts ponctuels ou les chargements urgents, utilisez un job de chargement BigQuery ou l'instruction
LOAD DATA, qui acceptent tous deux un nombre maximal de fichiers par job de chargement plus élevé.
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 exécutez 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 qui exécutent 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 des é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 l'agent de service ne dispose pas du rôle
pubsub.subscriber. 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 nommé
service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.coms'affiche et qu'il dispose du rôle Consommateur Service Usage.
- Problème : Lorsque vous utilisez le transfert Cloud Storage basé sur des événements, 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 de transfert peut prendre plusieurs minutes. Pour vérifier l'état de la prochaine exécution de transfert, vous pouvez consulter le champ Date cible de la prochaine exécution dans l'historique des exécutions. Ce champ affiche l'heure planifiée 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'est déclenchée pendant 10 à 20 minutes, consultez la résolution suivante.
Résolution : Vérifiez que l'abonnement Pub/Sub spécifié dans la configuration de transfert peut recevoir les messages publiés à partir d'é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 y a 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 la notification. Pour en savoir plus sur la configuration d'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 basées sur 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.