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
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é.
Activez les API Data Lineage et Data Catalog.
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 afficher la visualisation de la traçabilité dans Data Catalog ou pour utiliser l'API Data Lineage :
Lecteur de la traçabilité des données (
roles/datalineage.viewer
) -
Générer manuellement la traçabilité à l'aide de l'API :
Producteur d'événements de traçabilité des données (
roles/datalineage.producer
) -
Modifiez la traçabilité à l'aide de l'API:
Éditeur de la traçabilité des données (
roles/datalineage.editor
) -
Effectuez toutes les opérations sur la traçabilité:
Administrateur de la traçabilité des données (
roles/datalineage.admin
)
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:
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
- En savoir plus sur la traçabilité des données