Data Lineage ist ein Dataplex-Feature, mit dem Sie verfolgen können, wie sich Daten durch Ihre Systeme bewegen: woher sie kommen, wohin sie übergeben werden und welche Transformationen auf sie angewendet werden.
Data Lineage ist für alle Dataproc Spark-Jobs außer SparkR mit Dataproc Compute Engine-Images ab Version 2.0.74 und 2.1.22 verfügbar. Lineage ist für BigQuery- und Cloud Storage-Datenquellen verfügbar.
Nachdem Sie die Funktion im Dataproc-Cluster aktiviert haben, erfassen Dataproc Spark-Jobs Herkunftsereignisse und veröffentlichen sie in der Dataplex Data Lineage API. Dataproc lässt sich über OpenLineage mit dem OpenLineage Spark-Plug-in in die Data Lineage API einbinden.
So können Sie über Dataplex auf Herkunftsinformationen zugreifen:
Beschränkungen
Herkunft wird für Folgendes nicht unterstützt:
- BigQuery-Connector-Version 2 (Datenquellen-API-Version 2 von Spark)
- Spark-Streamingarbeitslast
Hinweise
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl das Projekt aus, das den Dataproc-Cluster enthält, dessen Herkunft Sie verfolgen möchten.
Data Lineage API und Data Catalog API aktivieren
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das VM-Dienstkonto des Dataproc-Clusters zu gewähren, um die Berechtigungen zu erhalten, die Sie für die Verwendung von Data Lineage in Dataproc benötigen:
-
Sehen Sie sich die Herkunftsvisualisierung in Data Catalog an oder verwenden Sie die Data Lineage API:
Data Lineage Viewer (
roles/datalineage.viewer
) -
Produziere Herkunft manuell mit der API:
Data Lineage Events Producer (
roles/datalineage.producer
) -
Bearbeiten Sie Herkunft mithilfe der API:
Data Lineage-Editor (
roles/datalineage.editor
) -
Führen Sie alle Vorgänge für Lineage aus:
Data Lineage-Administrator (
roles/datalineage.admin
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Data Lineage in Dataproc aktivieren
Aktivieren Sie die Herkunft auf Clusterebene, damit alle gesendeten Spark-Jobs in den Herkunftsinformationen des Clusterberichts an die Data Lineage API gesendet werden.
Dataproc-Cluster erstellen
Erstellen Sie einen Dataproc-Cluster mit dem Attribut dataproc:dataproc.lineage.enabled
auf 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
Spark-Job senden
Wenn Sie in einem Dataproc-Cluster, der mit aktivierter Herkunft erstellt wurde, einen Spark-Job senden, erfasst Dataproc die Herkunftsinformationen und meldet sie an die Data Lineage API.
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
Die Attribute spark.openlineage.namespace
und spark.openlineage.appName
sind optional und werden verwendet, um den Job eindeutig zu identifizieren. Wenn Sie diese Attribute nicht übergeben, verwendet Dataproc die folgenden Standardwerte:
- Standardwert für
spark.openlineage.namespace
: PROJECT_ID - Standardwert für
spark.openlineage.appName
:spark.app.name
Herkunftsdiagramme in Dataplex ansehen
In einem Diagramm zur Herkunft werden die Beziehungen zwischen Ihren Projektressourcen und den Prozessen, mit denen sie erstellt wurden, dargestellt. Sie können Informationen zur Herkunft von Daten in Form einer Grafikvisualisierung in der Google Cloud Console ansehen oder in Form von JSON-Daten aus der Data Lineage API abrufen.
Weitere Informationen finden Sie unter Herkunftsdiagramme in der Dataplex-UI ansehen.
Beispiel
Betrachten Sie den folgenden Spark-Job, der Daten aus einer BigQuery-Tabelle liest und in eine andere BigQuery-Tabelle schreibt:
#!/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()
Dieser Spark-Job erstellt das folgende Herkunftsdiagramm in der Dataplex-UI:
Data Lineage in Dataproc deaktivieren
Nachdem Sie die Laufzeit beim Erstellen eines Clusters aktiviert haben, können Sie die Herkunft nicht mehr auf Clusterebene deaktivieren. Wenn Sie die Herkunft in einem Dataproc-Cluster deaktivieren möchten, erstellen Sie den Cluster ohne das Attribut dataproc:dataproc.lineage.enabled
neu.
Wenn Sie die Herkunft für einen bestimmten Job in einem Cluster deaktivieren möchten, der mit aktivierter Herkunft erstellt wurde, müssen Sie beim Senden des Jobs das Attribut spark.extraListeners
mit leerem Wert übergeben.