Questo documento descrive come attivare la trasparenza dei dati per i job Spark Dataproc a livello di progetto o cluster.
Panoramica
La derivazione dei dati è una funzionalità di Dataplex che consente di monitorare il modo in cui i dati vengono spostati nei sistemi: da dove provengono, dove vengono inviati e a quali trasformazioni sono sottoposti.
La cronologia dei dati è disponibile per tutti i job Spark di Dataproc tranne SparkR, con le immagini Dataproc Compute Engine 2.0.74 e successive e 2.1.22 e successive e supporta le origini dati BigQuery e Cloud Storage.
Dopo aver attivato la funzionalità nel cluster Dataproc, i job Spark di Dataproc acquisiscono gli eventi di eredità dei dati 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 dei dati tramite Dataplex utilizzando quanto segue:
Limitazioni
La derivazione dei dati non è disponibile per i job SparkR o Spark streaming.
Prima di iniziare
Nella console Google Cloud, nella pagina di selezione del progetto, seleziona il progetto che contiene il cluster Dataproc per cui vuoi monitorare la sequenza.
Abilita le API Data Lineage e Data Catalog.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per utilizzare la cronologia dei dati in Dataproc, chiedi all'amministratore di concederti i seguenti ruoli IAM nell'account di servizio VM del cluster Dataproc:
-
Visualizza la visualizzazione della struttura dei dati in Data Catalog o utilizza l'API Data Lineage:
Data Lineage Viewer (
roles/datalineage.viewer
) -
Crea la genealogia dei dati manualmente utilizzando l'API:
Data Lineage Events Producer (
roles/datalineage.producer
) -
Modificare la struttura utilizzando l'API:
Data Lineage Editor (
roles/datalineage.editor
) -
Esegui tutte le operazioni sulla derivazione:
Amministratore di Data Lineage (
roles/datalineage.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Attivare la derivazione dei dati a livello di progetto
Puoi attivare la derivazione dei dati a livello di progetto. Per i job Spark supportati eseguiti su cluster creati dopo l'attivazione della tracciabilità dei dati in un progetto, la tracciabilità dei dati sarà abilitata. Tieni presente che i job eseguiti su cluster esistenti, ovvero cluster creati prima dell'attivazione della concatenazione dei dati a livello di progetto, non avranno la concatenazione dei dati attivata.
Come attivare la derivazione dei dati a livello di progetto
Per attivare la definizione della struttura dei dati a livello di progetto, imposta i seguenti metadati di progetto personalizzati:
Chiave | Valore |
---|---|
DATAPROC_LINEAGE_ENABLED |
true |
DATAPROC_CLUSTER_SCOPES |
https://www.googleapis.com/auth/cloud-platform |
Puoi disattivare la definizione della struttura dei dati a livello di progetto impostando i metadati DATAPROC_LINEAGE_ENABLED
su false
.
Attivare la derivazione dei dati a livello di cluster
Puoi attivare la tracciabilità dei dati quando crei un cluster in modo che tutti i job Spark supportati inviati al cluster abbiano la tracciabilità dei dati attivata.
Come attivare la derivazione dei dati a livello di cluster
Per attivare la concatenazione dei dati su un cluster,
crea un cluster Dataproc
con la proprietà del cluster dataproc:dataproc.lineage.enabled
impostata su true
.
Cluster con versione immagine 2.0: per la definizione della struttura dei dati è obbligatorio l'cloud-platform
ambito di accesso alle VM del cluster Dataproc. I cluster con versione immagine Dataproc creati con la versione immagine 2.1 e successive hanno cloud-platform
abilitato. Se specifichi la versione dell'immagine Dataproc 2.0
quando crei un cluster, imposta il ambito su cloud-platform
.
Esempio della gcloud CLI:
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--properties 'dataproc:dataproc.lineage.enabled=true'
Disattivare la derivazione dei dati in un job
Se attivi la consistenza dei dati a livello di cluster, puoi disattivarla
in un job specifico passando la proprietà spark.extraListeners
con un valore vuoto ("") quando invii il job.
Una volta attivata, non puoi disattivare la concatenazione dei dati nel cluster. Per eliminare la rappresentazione della cronologia dei dati in tutti i job del cluster, puoi ricreare il cluster senza la proprietà dataproc:dataproc.lineage.enabled
.
Invia un job Spark
Quando invii un job Spark su un cluster Dataproc creato con la derivazione dei dati abilitata, Dataproc acquisisce e registra le informazioni sulla derivazione dei dati nell'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_APPNAME
Note:
- L'aggiunta delle proprietà
spark.openlineage.namespace
espark.openlineage.appName
, che vengono utilizzate per identificare in modo univoco il job, è facoltativa. Se non aggiungi 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
- Valore predefinito per
Visualizzare i grafici della derivazione in Dataplex
Un grafico di visualizzazione della struttura mostra le relazioni tra le risorse del progetto e i processi che le hanno create. Puoi visualizzare le informazioni sulla cronologia dei dati sotto forma di visualizzazione di grafici nella console Google Cloud o recuperarle dall'API Data Lineage sotto forma di dati JSON.
Per saperne di più, consulta Visualizzare i grafici della derivazione nell'interfaccia utente di Dataplex.
Esempio:
Il seguente job Spark 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()
Il job Spark crea il seguente grafico della struttura nella UI di Dataplex:
Passaggi successivi
- Scopri di più sulla derivazione dei dati.