Ce document explique comment résoudre les problèmes liés à Dataform.
L'accès à BigQuery est refusé
L'erreur suivante se produit lorsque vous déclenchez l'appel d'un pipeline avant d'accorder à Dataform l'accès à BigQuery :
Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.
Pour résoudre cette erreur, accordez à Dataform l'accès à BigQuery.
Le jeton d'accès à un dépôt distant est refusé
L'erreur suivante se produit lorsque votre jeton d'authentification pour un dépôt tiers associé n'a pas accès à ce dépôt :
The access token for remote repository REPOSITORY_NAME was rejected
Pour résoudre cette erreur, vérifiez les autorisations requises dans votre fournisseur Git et mettez à jour le jeton d'authentification Secret Manager en conséquence. Pour en savoir plus sur l'authentification des dépôts Git tiers dans Dataform, consultez Se connecter à un dépôt Git tiers.
Quota BigQuery dépassé
L'erreur suivante se produit lorsque le nombre de requêtes API que Dataform envoie à BigQuery dépasse le quota BigQuery :
Quota exceeded: Your user_method exceeded quota for concurrent api requests
per user per method.
Pour résoudre cette erreur, réduisez le nombre de requêtes parallèles à moins de 250 en procédant comme suit :
- Dans Dataform, vous pouvez catégoriser les actions avec des tags et n'exécuter que les tags sélectionnés à la fois.
- Dans Dataform, présentez les dépendances entre les actions.
- Dans Dataform, divisez les exécutions d'actions entre différents projetsGoogle Cloud .
Pour savoir comment résoudre cette erreur dans BigQuery, consultez Résoudre les erreurs de quota et de limite.
Limite de simultanéité des requêtes BigQuery dépassée
L'erreur suivante se produit lorsque le nombre de requêtes simultanées exécutées sur BigQuery dépasse la limite de simultanéité des requêtes BigQuery :
Exceeded rate limits: too many concurrent queries for this project_and_region
Pour résoudre cette erreur, réduisez le nombre de requêtes parallèles à moins de 250 en procédant comme suit :
- Dans Dataform, vous pouvez catégoriser les actions avec des tags et n'exécuter que les tags sélectionnés à la fois.
- Dans Dataform, présentez les dépendances entre les actions.
- Dans Dataform, divisez les exécutions d'actions entre différents projetsGoogle Cloud .
Pour savoir comment résoudre cette erreur dans BigQuery, consultez Résoudre les erreurs de quota et de limite.
Erreurs d'appel de pipeline BigQuery
Les erreurs suivantes se produisent lors de l'exécution d'un workflow vers BigQuery :
- Erreurs d'appel de pipeline commençant par Messages d'erreur BigQuery.
Pour résoudre ces erreurs, consultez Messages d'erreur BigQuery.
Propriétés includeDependentAssertions
en conflit
L'erreur suivante se produit lors de la compilation lorsque le paramètre includeDependentAssertions
est défini pour la même action avec des valeurs différentes dans un même fichier :
Conflicting "includeDependentAssertions" properties are not allowed. Dependency
dependencyName has different values set for this property.
Pour résoudre cette erreur, modifiez le fichier et supprimez les répétitions conflictuelles du paramètre includeDependentAssertions
.
Pour en savoir plus sur l'utilisation du paramètre includeDependentAssertions
afin de définir des assertions comme dépendances, consultez Définir les assertions d'une action sélectionnée comme dépendances.
Échec de la compilation
Les erreurs suivantes se produisent lors de la compilation en raison de la taille ou du nombre de requêtes compilées :
Compilation timed out. Reduce the complexity of your project to ensure it can compile within limits.
Compilation exceeded its allowed heap memory limits. Reduce the complexity of your project to ensure it can compile within limits.
Compilation exceeded its allowed ArrayBuffer or string memory limits. Reduce the complexity of your project to ensure it can compile within limits.
Pour résoudre ces erreurs, procédez comme suit :
- Mettez à jour Dataform Core vers la dernière version.
- Examinez votre workflow pour identifier et réduire les inefficacités.
- Réduisez la taille des requêtes SQL.
Réduisez la quantité d'opérations JavaScript en mémoire. Par exemple :
config { config {type: "table" }} js { const tooBig = new Uint8Array(110_000_000); } SELECT ...
Pour en savoir plus sur les limites de ressources de compilation Dataform, consultez Quotas et limites.
@dataform/core
erreurs de dépendance
Les erreurs suivantes se produisent lors de la compilation si la dépendance dataform-core
dans package.json
est obsolète :
Failed to resolve @dataform/core
@dataform/core version should be X.X.X or newer
La dépendance @dataform/core
est requise dans le fichier package.json
. Lorsque vous initialisez le premier espace de travail de votre dépôt, Dataform remplit automatiquement package.json
avec la version actuelle de @dataform/core
. Vous devez installer la dernière version de @dataform/core
dès qu'elle est disponible.
Pour résoudre ces erreurs, mettez à jour @dataform/core
vers la dernière version.
Échec de la résolution de dataform.json
L'erreur suivante se produit lorsque vous initialisez un espace de travail Dataform, mais que le processus d'initialisation ne parvient pas à installer tous les packages :
Uncaught Error: Failed to resolve dataform.json
Pour résoudre cette erreur, ouvrez package.json
dans votre espace de travail, puis cliquez sur Installer les packages.
Échec de la résolution de workflow_settings.yaml
L'erreur suivante se produit lorsque vous initialisez un espace de travail Dataform, mais que le processus d'initialisation ne parvient pas à installer tous les packages :
Uncaught Error: Failed to resolve workflow_settings.yaml
Pour résoudre cette erreur, ouvrez workflow_settings.yaml
dans votre espace de travail, puis cliquez sur Installer les packages.
Les cibles de package git+
ne sont pas acceptées.
L'erreur suivante se produit lorsque vous définissez des packages dans package.json
avec des cibles préfixées par git+
:
'git+' prefixed package targets are not currently supported. However,
in most cases they can be used via a '.tar.gz' suffixed target instead.
Dataform n'est pas compatible avec les cibles de package préfixées par git+
.
Pour résoudre cette erreur, générez une URL tar.gz
du package et mettez à jour la cible du package dans package.json
. Pour en savoir plus sur l'installation de packages dans Dataform, consultez Installer un package.
Délai d'installation du package dépassé
L'erreur suivante se produit lorsque la taille des packages définis dans package.json
dépasse la taille maximale des dépendances NPM :
API request error: Package installation timed out
Pour résoudre cette erreur, supprimez les packages redondants de package.json
. Assurez-vous que le fichier package.json
ne contient pas @dataform/cli
et que la taille totale des dépendances NPM définies ne dépasse pas 200 Mo.
Si vos configurations de version font référence à des commits Git, assurez-vous que les fichiers package.json
au niveau de leurs cibles sont valides.
Impossible d'accéder au registre de packages privé
L'erreur suivante se produit lorsque l'authentification Dataform pour un package privé expire :
Permission denied when fetching one or more npm packages. Please verify that
private registry authentication details are valid for each npm registry
Pour résoudre cette erreur, vérifiez que les informations d'authentification du registre privé sont valides pour chaque registre NPM. Pour en savoir plus, consultez Authentifier un package privé.
Impossible d'accéder au dépôt distant
L'erreur suivante se produit en raison de l'instabilité de Git ou lorsque la connexion au dépôt tiers n'a pas été configurée correctement :
Remote repository REPOSITORY_NAME could not be reached.
Pour résoudre cette erreur, vérifiez que toutes les étapes décrites dans Se connecter à un dépôt Git tiers ont été suivies. En particulier, vérifiez que l'hôte de votre dépôt Git est accessible depuis l'Internet public. Vérifiez également que le jeton d'authentification ou la clé privée sont corrects et disposent des autorisations requises pour accéder au dépôt.
Impossible d'accéder au dépôt distant : generic::invalid_argument
L'erreur suivante s'affiche sur la page Informations sur la configuration de la version lorsqu'une version planifiée rencontre occasionnellement une connexion GitHub, GitLab ou Bitbucket lente, instable ou interrompue :
generic::invalid_argument: Remote repository 'REMOTE_REPOSITORY_URL' could not be reached.
Aucune action n'est requise de votre part. Sauf si les problèmes liés à GitHub, GitLab ou Bitbucket Cloud persistent, les versions planifiées suivantes peuvent être déployées avec succès.
Impossible d'accéder au secret d'un dépôt distant
L'erreur suivante se produit lorsque votre compte de service Dataform ne peut pas accéder à votre secret Secret Manager pour un dépôt tiers associé :
Dataform's service account is unable to reach the configured secret.
Make sure the secret exists and is shared with your Dataform service account:
SERVICE_ACCOUNT_ID.
Pour résoudre cette erreur, procédez comme suit :
- Vérifiez que votre compte de service Dataform a accès au secret.
- Excluez le secret de votre périmètre de service VPC-SC. Dataform n'est pas compatible avec VPC-SC pour le moment.
Argument inconnu : tags
L'erreur suivante se produit lorsque votre version de la Dataform CLI ne reconnaît pas l'argument tags
:
Unknown argument: tags
Pour résoudre cette erreur, procédez comme suit :
- Mettez à jour la version de la CLI vers
3.0.0
ou une version ultérieure. Testez toujours les nouvelles versions de package dans un environnement hors production avant de les déployer dans votre environnement de production. - Il est recommandé d'utiliser systématiquement la dernière version disponible du package Dataform Core.
- Spécifiez explicitement la version du package dans
package.json
, par exemple3.0.0
. N'utilisez pas d'autres optionsdependencies
depackage.json
, par exemple>version
.