Die Datenherkunft ist eine Dataplex-Funktion, mit der 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.
Die Datenabfolge ist für alle Dataproc-Spark-Jobs mit Ausnahme von SparkR mit Dataproc Compute Engine-Images der Version 2.0.74 und höher sowie 2.1.22 und höher verfügbar. Die Abstammungsinformationen sind für BigQuery- und Cloud Storage-Datenquellen verfügbar.
Nachdem Sie die Funktion in Ihrem Dataproc-Cluster aktiviert haben, erfassen Dataproc-Spark-Jobs Herkunftsereignisse und veröffentlichen sie in der Data Lineage API von Dataplex. Dataproc in die Data Lineage API über OpenLineage mit dem OpenLineage Spark-Plug-in
Sie können über Dataplex auf Lineage-Informationen zugreifen, indem Sie die Folgendes:
Beschränkungen
Die Herkunft wird für Folgendes nicht unterstützt:
- BigQuery-Connector Version 2 (Datenquellen-API Version 2 von Spark)
- Spark-Streaming-Arbeitslast
Hinweise
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl das Projekt aus. der den Dataproc-Cluster enthält, den Sie verfolgen möchten Herkunft.
Aktivieren Sie die Data Lineage API und die Data Catalog API.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das VM-Dienstkonto des Dataproc-Clusters zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwenden der Datenabstammung in Dataproc benötigen:
-
Rufen Sie die Lineage-Visualisierung in Data Catalog auf oder verwenden Sie die Data Lineage API:
Data Lineage-Betrachter (
roles/datalineage.viewer
) -
Erstellen Sie die Herkunft manuell mithilfe der API:
Ersteller von Data Lineage-Ereignissen (
roles/datalineage.producer
) -
Bearbeiten Sie die Herkunft mithilfe der API:
Data Lineage-Bearbeiter (
roles/datalineage.editor
) -
Alle Vorgänge für die Datenherkunft ausführen:
Data Lineage-Administrator (
roles/datalineage.admin
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Data Lineage in Dataproc aktivieren
Aktivieren Sie die Lineage auf Clusterebene, damit alle gesendeten Spark-Jobs in die Informationen zur Herkunft des Clusterberichts an die Data Lineage API.
Dataproc-Cluster erstellen
Dataproc-Cluster erstellen
wobei die Eigenschaft dataproc:dataproc.lineage.enabled
auf true
festgelegt ist.
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 einen Spark-Job senden in einem Dataproc-Cluster, der mit aktivierter Lineage erstellt wurde, Dataproc erfasst die Herkunftsinformationen und meldet sie an den 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 Eigenschaften spark.openlineage.namespace
und spark.openlineage.appName
sind optional und dienen zur eindeutigen Identifizierung des Jobs. Wenn Sie diese Eigenschaften nicht übergeben, verwendet Dataproc die folgenden Standardwerte:
- Standardwert für
spark.openlineage.namespace
: PROJECT_ID - Standardwert für
spark.openlineage.appName
:spark.app.name
Lineage-Diagramme in Dataplex ansehen
Ein Lineage-Visualisierungsdiagramm zeigt die Beziehungen zwischen Ihrem Projekt und die Prozesse, die sie erstellt haben. Sie können Informationen zur Datenherkunft in Form einer Grafikvisualisierung in der Google Cloud Console aufrufen oder sie in JSON-Datenformat über die Data Lineage API abrufen.
Weitere Informationen finden Sie unter Herkunftsdiagramme in der Dataplex-Benutzeroberfläche ansehen.
Beispiel
Betrachten Sie den folgenden Spark-Job, der Daten aus einem BigQuery liest und schreibt in eine andere BigQuery-Tabelle:
#!/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 Lineage-Diagramm in der Dataplex-UI:
Data Lineage in Dataproc deaktivieren
Nachdem Sie Linage beim Erstellen eines Clusters aktiviert haben, gilt Folgendes:
kann die Herkunft auf Clusterebene nicht deaktivieren. Um die Lineage-Funktion in einer
Dataproc-Clusters erstellen Sie den Cluster ohne den
dataproc:dataproc.lineage.enabled
-Property.
So deaktivieren Sie die Herkunft für einen bestimmten Job in einem Cluster, der mit
Herkunft aktiviert ist, müssen Sie das Attribut spark.extraListeners
mit einem leeren Feld
wenn Sie den Job senden.