Ce document présente les fonctionnalités Dataform de Google Cloud.
Dataform est un service sans serveur qui permet aux analystes de données de développer et de déployer des tables, des tables incrémentielles ou des vues dans BigQuery. Dataform offre un environnement Web pour le développement de workflows SQL, la connexion avec GitHub, GitLab et Bitbucket Cloud, l'intégration continue, le déploiement continu et l'exécution de workflows.
Dataform n'est pas compatible avec les clés de chiffrement gérées par le client (CMEK) et VPC Service Controls pour le moment. Pour utiliser Dataform, vous devez exclure les ressources BigQuery de votre périmètre VPC Service Controls. Vous pouvez également développer des workflows SQL en local avec la CLI Dataform.
Dépôts
Chaque projet Dataform est stocké dans un dépôt. Un dépôt Dataform contient une collection de fichiers de configuration JSON, de fichiers SQLX et de fichiers JavaScript.
Les dépôts Dataform contiennent les types de fichiers suivants:
Fichiers de configuration
Les fichiers de configuration JSON ou SQLX vous permettent de configurer vos workflows SQL. Ils contiennent la configuration générale, les calendriers d'exécution ou le schéma de création de tables et de vues.
Définitions
Les définitions sont des fichiers SQLX et JavaScript qui définissent de nouvelles tables, de nouvelles vues et d'autres opérations SQL à exécuter dans BigQuery.
Inclut
Les objets Include sont des fichiers JavaScript dans lesquels vous pouvez définir des variables et des fonctions à utiliser dans votre projet.
Chaque dépôt Dataform est connecté à un compte de service. Vous pouvez sélectionner un compte de service lorsque vous créez un dépôt ou modifier le compte de service ultérieurement.
Par défaut, Dataform utilise un compte de service dérivé de votre numéro de projet au format suivant:
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Contrôle des versions
Dataform utilise le système de contrôle des versions Git pour conserver un enregistrement de chaque modification apportée aux fichiers de projet et pour gérer les versions des fichiers.
Chaque dépôt Dataform peut gérer son propre dépôt Git ou être connecté à un dépôt Git tiers distant. Vous pouvez connecter un dépôt Dataform à un dépôt Cloud GitHub, GitLab ou Bitbucket.
Les utilisateurs contrôlent les versions du code de leur workflow SQL dans les espaces de travail Dataform. Dans un espace de travail Dataform, vous pouvez extraire des modifications du dépôt, valider toutes les modifications ou certaines modifications, puis les transférer vers les branches Git du dépôt.
Développement des workflows
Dans Dataform, vous pouvez modifier les fichiers et les répertoires dans un espace de travail de développement. Un espace de travail de développement est une copie virtuelle et modifiable du contenu d'un dépôt Git. Dataform conserve l'état des fichiers de votre espace de travail de développement entre les sessions.
Dans un espace de travail de développement, vous pouvez développer des actions de workflow SQL à l'aide de Dataform Core avec SQLX et JavaScript, ou exclusivement avec JavaScript.
Chaque élément d'un workflow SQL Dataform, tel qu'une table ou une assertion, correspond à une action effectuée par Dataform dans BigQuery. Par exemple, un fichier de définition de table est une action de création ou de mise à jour de la table dans BigQuery.
Dans un espace de travail Dataform, vous pouvez développer les actions de workflow SQL suivantes:
- Déclarations de données sources
- Tables et vues
- Tables incrémentielles
- Partitions et clusters de table
- Dépendances entre les actions
- Documentation sur les tables
- Opérations SQL personnalisées
- Étiquettes BigQuery
- Tags avec stratégie BigQuery
- Balises Dataform
- Tests de qualité des données, appelés assertions
Vous pouvez réutiliser le code de votre workflow SQL Dataform à l'aide de JavaScript de différentes manières:
- Présentation d'un fichier avec encapsulation de code
- Dans un dépôt avec des inclusions
- Entre les dépôts et les packages
Dataform compile le code du workflow SQL en temps réel dans votre espace de travail. Dans votre espace de travail, vous pouvez afficher les requêtes compilées et le détail des actions dans chaque fichier. Vous pouvez également afficher l'état de la compilation et les erreurs dans le fichier en cours de modification ou dans le dépôt.
Pour tester le résultat d'une requête SQL compilée avant de l'exécuter dans BigQuery, vous pouvez exécuter un aperçu de la requête dans votre espace de travail Dataform.
Pour inspecter l'intégralité du workflow SQL défini dans votre espace de travail, vous pouvez afficher un graphique compilé interactif qui présente toutes les actions compilées de votre workflow SQL, ainsi que les relations entre elles.
Compilation de workflows
Dataform utilise les paramètres de compilation par défaut, configurés dans dataform.json
, pour compiler en temps réel le code du workflow SQL de votre espace de travail en SQL, créant ainsi un résultat de compilation de l'espace de travail.
Vous pouvez ignorer les paramètres de compilation pour personnaliser la façon dont Dataform compile votre workflow SQL et génère un résultat de compilation.
Les remplacements de compilation d'espaces de travail vous permettent de configurer des remplacements de compilation pour tous les espaces de travail d'un dépôt. Vous pouvez définir des remplacements d'espace de travail dynamique afin de créer des résultats de compilation personnalisés pour chaque espace de travail. Les espaces de travail deviennent alors des environnements de développement isolés. Vous pouvez ignorer le projet Google Cloud dans lequel Dataform exécutera le contenu d'un espace de travail, ajouter un préfixe aux noms de toutes les tables compilées et un suffixe au schéma par défaut.
Les configurations de version vous permettent de configurer des modèles de paramètres de compilation pour créer les résultats de compilation d'un dépôt Dataform. Dans une configuration de version, vous pouvez remplacer le projet Google Cloud dans lequel Dataform exécutera les résultats de la compilation, ajouter un préfixe aux noms de toutes les tables compilées, ajouter un suffixe au schéma par défaut, ainsi qu'ajouter des variables de compilation. Vous pouvez également définir la fréquence de création des résultats de compilation. Pour planifier l'exécution de résultats de compilation créés dans une configuration de version sélectionnée, vous pouvez créer une configuration de workflow.
Exécution du workflow
Lors de l'exécution des workflows, Dataform exécute les résultats de la compilation des workflows SQL pour créer ou mettre à jour des éléments dans BigQuery.
Pour créer ou actualiser les tables et les vues définies dans votre workflow SQL dans BigQuery, vous pouvez lancer l'exécution d'un workflow manuellement dans un espace de travail de développement ou planifier des exécutions.
Vous pouvez planifier des exécutions Dataform dans BigQuery de différentes manières:
- Créez des configurations de workflow pour planifier l'exécution des résultats de compilation créés dans les configurations de version.
- Planifier des exécutions avec Cloud Composer
- Planifier des exécutions avec Workflows et Cloud Scheduler
Pour déboguer les erreurs, vous pouvez surveiller les exécutions comme suit:
- Afficher les journaux d'exécution détaillés de Dataform
- Afficher les journaux d'audit pour Dataform
- Afficher les journaux Cloud Logging pour Dataform
Étapes suivantes
- Pour en savoir plus sur Dataform Core, consultez la page Présentation de Dataform Core.
- Pour en savoir plus sur les dépôts Dataform, consultez la page Présentation des dépôts.
- Pour en savoir plus sur les espaces de travail Dataform, consultez Présentation du développement dans un espace de travail.
- Pour en savoir plus sur le développement de workflows SQL dans Dataform, consultez la page Présentation des workflows SQL.
- Pour en savoir plus sur l'utilisation de JavaScript dans Dataform, consultez la page Présentation de JavaScript dans Dataform.
- Pour en savoir plus sur le cycle de vie du code dans Dataform, consultez la page Présentation du cycle de vie du code dans Dataform.