Ce document explique comment activer la traçabilité des données pour vos tâches Dataproc Spark au niveau du projet ou du cluster.
La traçabilité des données est une fonctionnalité Dataplex Universal Catalog 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.
La traçabilité des données est disponible pour toutes les tâches Dataproc Spark à l'exception des tâches SparkR et Spark Streaming, et est compatible avec les sources de données BigQuery et Cloud Storage Elle est incluse dans Dataproc sur Compute Engine 2.0.74+, 2.1.22+, 2.2.50 et versions d'image ultérieures.
Une fois que vous avez activé la fonctionnalité dans votre cluster Dataproc, les tâches Dataproc Spark capturent les événements de traçabilité des données et les publient dans l'API Data Lineage de Dataplex Universal Catalog. 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é des données via Dataplex Universal Catalog, à l'aide des éléments suivants :
Avant de commencer
Dans la Google Cloud console, sur la page Sélecteur de projet, sélectionnez le projet contenant le cluster Dataproc pour lequel vous souhaitez suivre la traçabilité.
Activez l'API Data Lineage.
Rôles requis
Si vous créez un cluster Dataproc à l'aide du
compte de service de VM par défaut,
il dispose du Dataproc Worker
rôle, qui active la traçabilité des données. Aucune autre action n'est requise.
Toutefois, si vous créez un cluster Dataproc qui utilise un compte de service personnalisé, vous devez attribuer un rôle requis à ce compte pour activer la traçabilité des données sur le cluster, comme expliqué dans le paragraphe suivant.
Pour obtenir les autorisations nécessaires pour utiliser la traçabilité des données avec Dataproc, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le compte de service personnalisé de votre cluster :
-
Attribuez l'un des rôles suivants :
-
Nœud de calcul Dataproc (
roles/dataproc.worker) -
Éditeur de traçabilité des données (
roles/datalineage.editor) -
Producteur de traçabilité des données (
roles/datalineage.producer) -
Administrateur de traçabilité des données (
roles/datalineage.admin)
-
Nœud de calcul Dataproc (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Activer la traçabilité des données Spark au niveau du projet
Vous pouvez activer la traçabilité des données Spark au niveau du projet. Les tâches Spark compatibles exécutées sur des clusters créés après l'activation de la traçabilité des données sur un projet seront activées. Notez que la traçabilité des données ne sera pas activée pour les tâches exécutées sur des clusters existants (clusters créés avant l'activation de la traçabilité des données au niveau du projet).
Activer la traçabilité des données Spark au niveau du projet
Pour activer la traçabilité des données Spark 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 traçabilité des données Spark au niveau du projet en définissant les
DATAPROC_LINEAGE_ENABLED métadonnées sur false.
Activer la traçabilité des données Spark au niveau du cluster
Vous pouvez activer la traçabilité des données Spark lorsque vous créez un cluster. Ainsi, la traçabilité des données sera activée pour toutes les tâches Spark compatibles envoyées au cluster.
Activer la traçabilité des données Spark au niveau du cluster
Pour activer la traçabilité des données Spark sur un cluster,
créez un cluster Dataproc
avec la propriété de cluster dataproc:dataproc.lineage.enabled définie sur true.
Clusters de version d'image 2.0 : L'accès au champ d'application
cloud-platform
des VM de cluster Dataproc est requis pour la traçabilité des données Spark. Les clusters de version d'image Dataproc créés avec la version d'image 2.1 et ultérieures ont cloud-platform activé. Si vous spécifiez la version d'image Dataproc
2.0 lorsque vous créez un cluster, définissez le
champ d'application
sur cloud-platform.
Exemple gcloud CLI :
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--properties 'dataproc:dataproc.lineage.enabled=true'Désactiver la traçabilité des données Spark sur une tâche
Si vous activez la traçabilité des données Spark au niveau du cluster, vous pouvez désactiver
la traçabilité des données Spark sur une tâche spécifique en transmettant la spark.extraListeners
propriété avec une valeur vide ("") lorsque vous envoyez la tâche.
Une fois activée, vous ne pouvez plus désactiver la traçabilité des données Spark sur le cluster. Pour supprimer
la traçabilité des données Spark sur toutes les tâches du cluster, vous pouvez
recréer le cluster
sans la propriété dataproc:dataproc.lineage.enabled.
Envoyer une tâche Spark
Lorsque vous envoyez une tâche Spark sur un cluster Dataproc créé avec la traçabilité des données Spark activée, Dataproc capture et signale les informations de traçabilité des données à l'API Data Lineage.
gcloud dataproc jobs submit spark \
--cluster=CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--class CLASS \
--jars=gs://APPLICATION_BUCKET/spark-application.jar \
--properties=spark.openlineage.namespace=CUSTOM_NAMESPACE,spark.openlineage.appName=CUSTOM_APPNAMERemarques :
- L'ajout des propriétés
spark.openlineage.namespaceetspark.openlineage.appName, qui permettent d'identifier de manière unique la tâche, est facultatif. Si vous n'ajoutez pas ces propriétés, 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
- Valeur par défaut pour
Afficher la traçabilité dans Dataplex Universal Catalog
Un graphique de traçabilité affiche les relations entre les ressources de votre projet et les processus qui les ont créées. Vous pouvez afficher les informations de traçabilité des données dans la Google Cloud consoleou les récupérer à partir de l'API Data Lineage sous forme de données JSON.
Exemple de code PySpark :
La tâche PySpark suivante lit les données d'une table BigQuery publique, puis écrit la sortie dans une nouvelle table d'un ensemble de données BigQuery existant. Elle utilise un bucket Cloud Storage pour le stockage temporaire.
#!/usr/bin/env python
from pyspark.sql import SparkSession
import sys
spark = SparkSession \
.builder \
.appName('LINEAGE_BQ_TO_BQ') \
.getOrCreate()
bucket = 'gs://BUCKET`
spark.conf.set('temporaryCloudStorageBucket', bucket)
source = 'bigquery-public-data:samples.shakespeare'
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_table = 'PROJECT_ID:DATASET.TABLE'
word_count.write.format('bigquery') \
.option('table', destination_table) \
.save()
Effectuez les remplacements suivants :
BUCKET : nom d'un bucket Cloud Storage existant.
PROJECT_ID, DATASET, et TABLE : insérez votre ID de projet, le nom d'un ensemble de données BigQuery existant et le nom d'une nouvelle table à créer dans l'ensemble de données (la table ne doit pas exister).
Vous pouvez afficher le graphique de traçabilité dans l'interface utilisateur de Dataplex Universal Catalog.
Étape suivante
- Découvrez-en plus sur la traçabilité des données.