Utiliser la traçabilité des données dans Dataproc

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

La traçabilité des données est disponible pour toutes les tâches Spark Dataproc, à l'exception de SparkR, avec les images Dataproc Compute Engine 2.0.74 et versions ultérieures, ainsi que 2.1.22 et versions ultérieures. La traçabilité est disponible pour les données BigQuery et Cloud Storage sources.

Une fois la fonctionnalité activée dans votre cluster Dataproc, les tâches Spark Dataproc capturent les événements de la lignée et les publient dans l'API Data Lineage Dataplex. Dataproc s'intègre à l'API Data Lineage via OpenLineage, à l'aide du plug-in OpenLineage Spark.

Vous pouvez accéder aux informations de traçabilité via Dataplex à l'aide du suivantes:

Limites

La traçabilité n'est pas disponible pour les éléments suivants:

  • BigQuery Connector version 2 (API de source de données version 2 de Spark)
  • Charge de travail de streaming Spark

Avant de commencer

  1. Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez le projet. contenant le cluster Dataproc dont vous souhaitez effectuer le suivi la traçabilité.

    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, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le compte de service de la 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 dans Dataproc

Activez la traçabilité au niveau du cluster, de sorte que tous les jobs Spark envoyés transmettre les informations de traçabilité à l'API Data Lineage.

Créer un cluster Dataproc

Créez un cluster Dataproc avec la propriété dataproc:dataproc.lineage.enabled définie sur true.

gcloud dataproc clusters create CLUSTER_NAME \
--region REGION \
--zone ZONE \
--project PROJECT_ID \
--properties 'dataproc:dataproc.lineage.enabled=true' \
--scopes https://www.googleapis.com/auth/cloud-platform

Envoyer une tâche Spark

Lorsque vous envoyez une tâche Spark sur un cluster Dataproc créé avec la filiation activée, Dataproc capture et signale les informations de filiation à l'API Data Lineage.

gcloud dataproc jobs submit spark \
--project PROJECT_ID \
--cluster=CLUSTER_NAME \
--region REGION \
--class CLASS \
--jars=gs://APPLICATION_BUCKET/spark-application.jar \
--properties=spark.openlineage.namespace=CUSTOM_NAMESPACE,spark.openlineage.appName=CUSTOM_APPNAME

Les propriétés spark.openlineage.namespace et spark.openlineage.appName sont facultatives et servent à identifier de manière unique la tâche. Si vous ne les transmettez pas , Dataproc utilise les valeurs par défaut suivantes:

  • Valeur par défaut pour spark.openlineage.namespace : PROJECT_ID
  • Valeur par défaut pour spark.openlineage.appName: spark.app.name

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 traçabilité des données sous la forme d'une visualisation graphique dans la console Google Cloud ou les récupérer à partir de l'API Data Lineage sous la forme de données JSON.

Pour en savoir plus, consultez Afficher les graphiques de traçabilité dans l'UI Dataplex.

Exemple

Prenons l'exemple du job Spark suivant, qui lit les données d'une table BigQuery et écrit 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()

Ce job Spark crée le graphique de traçabilité suivant dans l'UI Dataplex:

Exemple de graphique de traçabilité

Désactiver la traçabilité des données dans Dataproc

Après avoir activé la liaison lors de la création d'un cluster, vous ne peut pas désactiver la traçabilité au niveau du cluster. Pour désactiver la lignée dans un cluster Dataproc, recréez le cluster sans la propriété dataproc:dataproc.lineage.enabled.

Pour désactiver la traçabilité pour un job spécifique sur un cluster créé avec la traçabilité est activée, vous devez transmettre la propriété spark.extraListeners avec un espace lors de l'envoi de la tâche.

Étape suivante