La derivazione dei dati è una funzionalità di Dataplex che ti consente di monitorare il modo in cui i dati si spostano attraverso i tuoi sistemi: da dove provengono, dove vengono passati e quali trasformazioni vengono applicate.
La derivazione dei dati è disponibile per tutti i job Dataproc Spark tranne SparkR, con immagini di Dataproc Compute Engine 2.0.74 e versioni successive e 2.1.22 e versioni successive. La derivazione è disponibile per le origini dati BigQuery e Cloud Storage.
Dopo aver abilitato la funzionalità nel cluster Dataproc, i job DataprocSpark acquisiscono gli eventi di derivazione e li pubblicano nell'API Data Lineage di Dataplex. Dataproc si integra con l'API Data Lineage tramite OpenLineage, utilizzando il plug-in Spark OpenLineage.
Puoi accedere alle informazioni sulla derivazione tramite Dataplex, utilizzando quanto segue:
Limitazioni
La derivazione non è supportata per:
- Connettore BigQuery versione 2 (versione 2 dell'API dell'origine dati di Spark)
- Carico di lavoro per flussi di dati Spark
Prima di iniziare
Nella pagina del selettore dei progetti della console Google Cloud, seleziona il progetto che contiene il cluster Dataproc di cui vuoi monitorare la derivazione.
Abilita l'API Data Lineage e l'API Data Catalog.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per utilizzare la derivazione dei dati in Dataproc, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'account di servizio VM del cluster Dataproc:
-
Visualizza la visualizzazione della derivazione in Data Catalog o per utilizzare l'API Data Lineage:
Data Lineage Viewer (
roles/datalineage.viewer
) -
Produci la derivazione manualmente utilizzando l'API:
Data Lineage Events Producer (
roles/datalineage.producer
) -
Modifica la derivazione utilizzando l'API:
Data Lineage Editor (
roles/datalineage.editor
) -
Esegui tutte le operazioni sulla derivazione:
Amministratore Data Lineage (
roles/datalineage.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Abilita derivazione dei dati in Dataproc
Abilita la derivazione a livello di cluster, in modo che tutti i job Spark inviati nel cluster segnalino le informazioni di derivazione all'API Data Lineage.
Crea un cluster Dataproc
Crea un cluster Dataproc con la proprietà dataproc:dataproc.lineage.enabled
impostata su 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
Invia un job Spark
Quando invii un job Spark su un cluster Dataproc creato con la derivazione abilitata, Dataproc acquisisce e segnala le informazioni di derivazione all'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
Le proprietà spark.openlineage.namespace
e spark.openlineage.appName
sono
facoltative e vengono utilizzate per identificare in modo univoco il job. Se non passi queste proprietà, Dataproc utilizza i seguenti valori predefiniti:
- Valore predefinito per
spark.openlineage.namespace
: PROJECT_ID - Valore predefinito per
spark.openlineage.appName
:spark.app.name
Visualizza i grafici di derivazione in Dataplex
Un grafico di visualizzazione della derivazione mostra le relazioni tra le risorse del progetto e i processi che le hanno create. Puoi visualizzare le informazioni sulla derivazione dei dati sotto forma di grafico nella console Google Cloud o recuperarle dall'API Data Lineage sotto forma di dati JSON.
Per saperne di più, vedi Visualizzare i grafici di derivazione nella UI di Dataplex.
Esempio
Considera il seguente job Spark che legge i dati da una tabella BigQuery e li scrive in un'altra tabella 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()
Questo job Spark crea il seguente grafico di derivazione nella UI di Dataplex:
Disabilita la derivazione dei dati in Dataproc
Dopo aver abilitato la derivazione quando crei un cluster, non puoi disabilitare la derivazione a livello di cluster. Per disabilitare la derivazione in un cluster Dataproc, ricrea il cluster senza la proprietà dataproc:dataproc.lineage.enabled
.
Per disabilitare la derivazione per un determinato job in un cluster creato con la derivazione abilitata, devi passare la proprietà spark.extraListeners
con un valore vuoto quando invii il job.
Passaggi successivi
- Scopri di più sulla discendenza dei dati.