AccueilBlogTest technique data lineage : OpenLineage, DataHub et traçabilité
Guide recrutement data

Test technique data lineage : OpenLineage, DataHub et traçabilité

Le data lineage permet de savoir d où vient une donnée et où elle va. En 2025, c est un sujet Senior qui différencie les profils avec une vraie culture de gouvernance.

Data Builder·Juin 2025·6 min de lecture·Analytics Engineer · Data Engineer
Sommaire
  1. Pourquoi le data lineage
  2. OpenLineage standard
  3. DataHub et lineage
  4. Lineage dbt
  5. Column-level lineage
  6. Impact analysis
  7. Grille

1Pourquoi le data lineage est critique

Question discriminante

Dans quels cas concrets le data lineage vous a-t-il été utile ?

2OpenLineage : le standard ouvert

Question discriminante

Qu est-ce qu OpenLineage ? Pourquoi est-ce un standard important ?

# Exemple d événement OpenLineage émis par Airflow { 'eventType': 'COMPLETE', 'eventTime': '2025-01-15T08:30:00Z', 'job': { 'namespace': 'airflow', 'name': 'pipeline_ventes.transform_orders' }, 'inputs': [{ 'namespace': 'snowflake', 'name': 'RAW_DB.FIVETRAN.ORDERS', 'facets': { 'schema': { 'fields': [{'name': 'order_id', 'type': 'VARCHAR'}] } } }], 'outputs': [{ 'namespace': 'snowflake', 'name': 'PROD_DB.STAGING.STG_ORDERS' }] }

3DataHub : catalogue et lineage centralisé

Question discriminante

Comment DataHub agrège-t-il le lineage de plusieurs outils différents ?

# Lancer DataHub localement pip install acryl-datahub datahub docker quickstart # Ingestor dbt datahub ingest -c dbt_ingest.yaml # dbt_ingest.yaml source: type: dbt config: manifest_path: ./target/manifest.json catalog_path: ./target/catalog.json sources_path: ./target/sources.json

4Lineage dbt : le point de départ

Question discriminante

Comment dbt génère-t-il le lineage automatiquement ?

5Column-level lineage : la granularité maximale

Question discriminante

Qu est-ce que le column-level lineage ? Pourquoi est-il plus puissant que le table-level lineage ?

6Impact analysis en pratique

Question discriminante

Montrez comment vous utilisez le lineage pour évaluer l impact d un changement.

# dbt : identifier les modèles impactés par un changement # Si je modifie stg_orders.sql, quels modèles sont affectés ? dbt ls --select stg_orders+ # stg_orders et tous ses descendants # Exclure les modèles en dehors du périmètre dbt build --select stg_orders+ # rebuilder la chaîne complète # DataHub API : impact analysis programmatique from datahub.ingestion.api.common import PipelineContext # Requêter les downstream datasets d une colonne client.get_downstream_lineage( dataset='urn:li:dataset:(urn:li:dataPlatform:snowflake,PROD_DB.STAGING.STG_ORDERS,PROD)' )

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméLineage dbt, dbt docs, comprend le conceptUtilise ref() systématiquement, sait générer dbt docs avec le lineageNe sait pas ce qu est le data lineage
SeniorOpenLineage, DataHub, column-level lineage, impact analysisA déployé DataHub, utilise l impact analysis avant chaque changement critiqueN a jamais entendu parler d OpenLineage

Vous recrutez un Analytics Engineer ou Data Engineer ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.