Utiliser la traçabilité des données avec Dataproc sans serveur

Ce document explique comment activer la lignée des données pour vos charges de travail par lot Dataproc sans serveur pour Spark au niveau du projet ou de la charge de travail par lot.

Présentation

La traçabilité des données est une fonctionnalité Dataplex qui vous permet de suivre la manière dont les données transitent par vos systèmes: leur origine, la cible de transmission, et les transformations qui leur sont appliquées.

Les charges de travail Dataproc sans serveur pour Spark capturent les événements de la traçabilité et les publient dans l'API Data Lineage de Dataplex. Dataproc sans serveur pour Spark s'intègre à l'API Data Lineage via OpenLineage, à l'aide du plug-in Spark OpenLineage.

Vous pouvez accéder aux informations sur la traçabilité via Dataplex, à l'aide de graphiques de visualisation de la traçabilité et de l'API Data Lineage. Pour en savoir plus, consultez Afficher des graphiques de traçabilité dans Dataplex.

Disponibilité, fonctionnalités et limites

La lignée de données, qui est compatible avec les sources de données BigQuery et Cloud Storage, est disponible pour les charges de travail exécutées avec les versions d'exécution Dataproc Serverless pour Spark 1.1.50+, 1.2.29+ et 2.2.29+, avec les exceptions et les limites suivantes:

  • La traçabilité des données n'est pas disponible pour les charges de travail SparkR ou Spark Streaming.

Avant de commencer

  1. Sur la page de sélection du projet dans la console Google Cloud, sélectionnez le projet à utiliser pour vos charges de travail Dataproc sans serveur pour Spark.

    Accéder au sélecteur de projet

  2. Activez les API Data Lineage et Data Catalog.

    Activer les API

Rôles requis

Pour obtenir les autorisations nécessaires pour utiliser la lignée de données dans Dataproc sans serveur pour Spark, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le compte de service de VM du cluster Dataproc:

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Activer la traçabilité des données au niveau du projet

Vous pouvez activer la traçabilité des données au niveau du projet. Lorsqu'il est activé au niveau du projet, la lignée Spark est activée pour toutes les charges de travail par lot ultérieures que vous exécutez dans le projet.

Activer la traçabilité des données au niveau du projet

Pour activer la lignée des données au niveau du projet, définissez les métadonnées de projet personnalisées suivantes.

Clé Valeur
DATAPROC_LINEAGE_ENABLED true
DATAPROC_CLUSTER_SCOPES https://www.googleapis.com/auth/cloud-platform

Vous pouvez désactiver la lignée des données au niveau du projet en définissant les métadonnées DATAPROC_LINEAGE_ENABLED sur false.

Activer la traçabilité des données pour une charge de travail par lot Spark

Vous pouvez activer la lignée de données sur une charge de travail par lot en définissant la propriété spark.dataproc.lineage.enabled sur true lorsque vous envoyez la charge de travail.

Exemple de CLI gcloud:

gcloud dataproc batches submit pyspark FILENAME.py
    --region=REGION \
    --properties=spark.dataproc.lineage.enabled=true

Afficher les graphiques de traçabilité dans Dataplex

Un graphique de visualisation de la lignée affiche les relations entre les ressources de votre projet et les processus qui les ont créées. Vous pouvez afficher les informations sur la lignée des données dans une visualisation graphique dans la console Google Cloud ou récupérer les informations de l'API Data Lineage sous forme de données JSON.

Pour en savoir plus, consultez la page Utiliser la lignée des données avec les systèmes Google Cloud .

Exemple :

La charge de travail Spark suivante lit les données d'une table BigQuery, puis écrit la sortie dans une autre table BigQuery.

#!/usr/bin/env python

from pyspark.sql import SparkSession
import sys

spark = SparkSession \
  .builder \
  .appName('LINEAGE_BQ_TO_BQ') \
  .getOrCreate()

bucket = lineage-ol-test
spark.conf.set('temporaryGcsBucket', bucket)

source = sample.source
words = spark.read.format('bigquery') \
  .option('table', source) \
  .load()
words.createOrReplaceTempView('words')

word_count = spark.sql('SELECT word, SUM(word_count) AS word_count FROM words GROUP BY word')

destination = sample.destination
word_count.write.format('bigquery') \
  .option('table', destination) \
  .save()

Cette charge de travail Spark crée le graphique de traçabilité suivant dans l'interface utilisateur de Dataplex:

Exemple de graphique de traçabilité

Étape suivante