Ce document explique comment activer la traçabilité des données pour vos tâches Managed Service pour Apache 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 Managed Service pour Apache Spark, à l'exception des tâches SparkR et Spark Streaming. Elle est compatible avec les sources de données BigQuery et Cloud Storage. Elle est incluse dans les versions d'image 2.0.74+, 2.1.22+, 2.2.50+, 2.3.1+ et 3.0 de Managed Service pour Apache Spark.
Une fois que vous avez activé la fonctionnalité dans votre cluster Managed Service pour Apache Spark, les tâches Managed Service pour Apache Spark Spark capturent les événements de traçabilité des données et les publient dans le Dataplex Universal Catalog Data Lineage API. Managed Service pour Apache Spark 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 de sélection du projet, sélectionnez le projet contenant le cluster Managed Service pour Apache Spark pour lequel vous souhaitez suivre la traçabilité.
Activez l'API Data Lineage.
Modifications à venir concernant la traçabilité des données Spark : consultez les notes de version de Managed Service pour Apache Spark pour connaître l'annonce d'une modification qui rendra automatiquement la traçabilité des données Spark disponible pour vos projets et clusters lorsque vous activerez l'API Data Lineage (voir Contrôler l'ingestion de la traçabilité pour un service) sans nécessiter de paramètres supplémentaires au niveau du projet ou du cluster.
Rôles requis
Si vous créez un cluster Managed Service pour Apache Spark à l'aide du
compte de service de VM par défaut,
il dispose du rôle Managed Service for Apache Spark Worker, qui active la traçabilité des données. Aucune autre action n'est nécessaire.
Toutefois, si vous créez un cluster Managed Service pour Apache Spark qui utilise un compte de service personnalisé, vous devez attribuer un rôle requis au compte de service personnalisé 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 Managed Service pour Apache Spark, 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 :
-
Managed Service pour Apache Spark Worker (
roles/dataproc.worker) -
Éditeur Data Lineage (
roles/datalineage.editor) -
Producteur Data Lineage (
roles/datalineage.producer) -
Administrateur Data Lineage (
roles/datalineage.admin)
-
Managed Service pour Apache Spark Worker (
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
Vous pouvez activer la traçabilité des données Spark au niveau du projet ou du cluster.
Activer la traçabilité des données Spark au niveau du projet
Une fois que vous avez activé la traçabilité des données Spark au niveau du projet, les tâches Spark suivantes qui s'exécutent sur les clusters Managed Service pour Apache Spark du projet seront activées.
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-platformLa définition de ce champ d'application d'accès aux VM n'est nécessaire que pour les clusters de version d'image 2.0. Il est automatiquement défini sur les clusters de version d'image 2.1 et ultérieures. |
Vous pouvez désactiver la traçabilité des données Spark au niveau du projet en définissant les métadonnées DATAPROC_LINEAGE_ENABLED sur false.
Activer la traçabilité des données Spark au niveau du cluster
Si vous activez la traçabilité des données Spark lorsque vous créez un cluster, les tâches Spark compatibles qui s'exécutent sur les clusters Managed Service pour Apache Spark seront activées. Ce paramètre remplace tout paramètre de traçabilité des données Spark au niveau du projet : si la traçabilité des données Spark est désactivée au niveau du projet, mais activée au niveau du cluster, le niveau du cluster est prioritaire, et les tâches Spark compatibles qui s'exécutent sur le cluster seront activées.
Pour activer la traçabilité des données Spark sur un cluster,
créez un cluster Managed Service pour Apache Spark
avec la dataproc:dataproc.lineage.enabled propriété de cluster définie sur true.
Exemple gcloud CLI :
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--properties 'dataproc:dataproc.lineage.enabled=true'Vous pouvez désactiver la traçabilité des données Spark sur un cluster en définissant la propriété dataproc:dataproc.lineage.enabled sur false lorsque vous créez le cluster.
Désactiver la traçabilité des données sur un cluster : pour créer un cluster avec la traçabilité désactivée, définissez
dataproc:dataproc.lineage.enabled=false. Une fois le cluster créé, vous ne pouvez plus désactiver la traçabilité des données Spark sur le cluster. Pour désactiver la traçabilité des données Spark sur un cluster existant, vous pouvez recréer le cluster avec la propriétédataproc:dataproc.lineage.enableddéfinie surfalse.Définir le champ d'application sur les clusters de version d'image 2.0 : le champ d'application d'accès aux VM de cluster Managed Service pour Apache Spark VM access
cloud-platformscope est requis pour la traçabilité des données Spark. Les clusters de version d'image Managed Service pour Apache Spark créés avec la version d'image2.1et ultérieures sont activés aveccloud-platform. Si vous spécifiez la version d'image2.0de Managed Service pour Apache Spark lorsque vous créez un cluster, définissez le champ d'application surcloud-platform.
Désactiver la traçabilité des données Spark sur une tâche
Si la traçabilité des données Spark est activée sur un cluster, vous pouvez la désactiver sur une tâche en transmettant la propriété spark.extraListeners avec une valeur vide ("") lorsque vous envoyez la tâche.
gcloud dataproc jobs submit spark \
--cluster=CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--class CLASS \
--jars=gs://APPLICATION_BUCKET/spark-application.jar \
--properties=spark.extraListeners=''Envoyer une tâche Spark
Lorsque vous envoyez une tâche Spark compatible sur un cluster Managed Service pour Apache Spark créé avec la traçabilité des données Spark activée, Managed Service pour Apache Spark 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, Managed Service pour Apache Spark 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 : ID du projet, nom d'un ensemble de données BigQuery existant et 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.