ServicesÀ proposNotesContact Me contacter →
EN FR
Note

Dataform en tant que service GCP

Ce qu'est Dataform en 2026 — un service de transformation BigQuery entièrement géré avec une intégration GCP profonde, zéro coût de licence, et du templating SQLX/JavaScript

Planté
dataformbigquerygcpdata engineeringdata modeling

Dataform est un service de transformation SQL entièrement géré, intégré à la console BigQuery. Google a acquis la société — une startup londonienne de 7 personnes fondée par d’anciens Googlers — en décembre 2020. Depuis, il a évolué d’un produit autonome vers un service GCP natif qui concurrence dbt pour les charges de travail de transformation BigQuery.

Fonctionnement

Dataform utilise des fichiers SQLX avec du templating JavaScript au lieu de la combinaison SQL/Jinja de dbt. Les transformations, dépendances et assertions sont définies en SQLX, puis Dataform les compile et les exécute contre BigQuery. La compilation se produit dans un moteur JavaScript, qui historiquement offrait une compilation plus rapide que l’approche Python de dbt.

Un fichier SQLX basique ressemble à du SQL standard avec un bloc config :

config {
type: "table",
schema: "marts",
description: "Customer lifetime metrics",
dependencies: ["stg_customers", "stg_orders"]
}
SELECT
c.customer_id,
c.email,
COUNT(o.order_id) AS total_orders,
SUM(o.amount) AS lifetime_value
FROM ${ref("stg_customers")} c
LEFT JOIN ${ref("stg_orders")} o
ON c.customer_id = o.customer_id
GROUP BY 1, 2

La syntaxe ${ref()} crée des dépendances, analogue au {{ ref() }} de dbt. Le bloc config définit le type de matérialisation et les métadonnées. Le pattern général est familier à quiconque a travaillé avec dbt, mais le langage de templating sous-jacent est JavaScript plutôt que Jinja.

Pour la génération dynamique de modèles, le templating JavaScript de Dataform présente des avantages réels. Créer des modèles identiques pour plusieurs pays ou clients utilise du JavaScript standard :

definitions/country_tables.js
const countries = ["US", "GB", "FR", "DE"];
countries.forEach(country => {
publish(`reporting_${country}`)
.dependencies(["source_table"])
.query(ctx => `SELECT * FROM ${ctx.ref("source_table")} WHERE country = '${country}'`);
});

Cela crée quatre modèles avec une simple boucle. Dans dbt, obtenir le même résultat nécessite le package dbt_codegen, un prétraitement externe, ou du Jinja de plus en plus complexe. La différence importe surtout quand le projet présente des patterns structurels répétitifs à travers de nombreuses entités.

Profondeur de l’intégration GCP

L’intégration avec Google Cloud va bien au-delà de l’hébergement. Dataform se connecte à l’écosystème GCP à plusieurs niveaux :

IAM et contrôle d’accès. Dataform utilise les comptes de service GCP standard pour l’accès à BigQuery. Pas de système de gestion des credentials séparé, pas de couche d’authentification supplémentaire. Les équipes déjà sur GCP IAM obtiennent les permissions Dataform dans le cadre de leur structure de politique existante.

Intégration des métadonnées Dataplex. Les modèles définis dans Dataform apparaissent automatiquement dans le catalogue de données Dataplex. Les descriptions de colonnes, la documentation des tables et la lignée se propagent sans maintenance manuelle du catalogue.

Planification et orchestration. Les configurations de workflow intégrées gèrent la planification basique. Pour une orchestration plus complexe, Cloud Composer (Airflow géré) et Cloud Scheduler fournissent des options natives GCP. Tout reste dans l’écosystème Google.

VPC Service Controls. Depuis la migration vers la version hébergée sur GCP en 2024, Dataform prend en charge les périmètres VPC-SC. Les données restent dans votre périmètre de sécurité sans ingénierie réseau personnalisée.

Conformité. Les certifications SOC 1/2/3, HIPAA et ISO 27001 couvrent Dataform dans le cadre du périmètre de conformité GCP global.

L’IDE intégré

L’IDE Cloud Console offre une expérience de développement basée sur le navigateur avec un retour de compilation en temps réel et des estimations de coût BigQuery au fil de la frappe. On voit immédiatement si la syntaxe SQLX est valide et ce que le SQL compilé coûtera à exécuter. Pas d’étape de build à attendre. Pour les équipes qui n’ont pas besoin d’une intégration IDE profonde avec des outils de développement locaux, ce workflow est rapide et sans friction.

L’IDE Cloud Console est le seul environnement de développement de premier plan. dbt bénéficie de l’extension Cursor Power User (plus d’1 million d’installations) avec visualisation de lignée, auto-complétion des colonnes, et documentation assistée par IA ; Dataform n’a pas d’outillage IDE local comparable. Les options de développement se limitent à l’IDE navigateur ou à un éditeur de texte basique sans fonctionnalités orientées transformation.

Ce que Dataform n’est pas

Dataform est exclusivement un outil de transformation BigQuery. Il ne se connecte pas à Snowflake, Databricks, Redshift, ni aucune autre plateforme de données. Ce n’est pas une lacune susceptible d’être comblée ultérieurement — c’est un choix architectural fondamental. Google a construit Dataform pour servir les utilisateurs de BigQuery, et l’intégration GCP profonde est une conséquence directe de ce focus.

Ce n’est pas non plus un orchestrateur au sens où le sont Airflow ou Dagster. Dataform gère la couche de transformation — compilation, résolution des dépendances, et exécution des modèles SQL — mais ne gère pas l’extraction, le chargement, ni les workflows inter-systèmes. Pour une orchestration de pipeline de bout en bout, il faut encore quelque chose d’externe.

Le service a considérablement mûri depuis 2024 et n’est plus une fonctionnalité bêta expérimentale. Maturité en tant que service GCP et maturité en tant qu’écosystème de transformation sont deux choses différentes. Les lacunes écosystémiques par rapport à dbt restent substantielles même si le moteur de transformation principal est devenu prêt pour la production.