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. Lineage ist für BigQuery- und Cloud Storage-Daten verfügbar Quellen.
Sobald Sie die Funktion in Ihrem Dataproc-Cluster aktiviert haben, Spark-Jobs erfassen Lineage-Ereignisse und veröffentlichen sie in Dataplex Data Lineage API 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
Hinweis
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
Um die erforderlichen Berechtigungen zur Verwendung von Data Lineage in Dataproc zu erhalten, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für das Dienstkonto der Dataproc-Cluster-VM:
-
So rufen Sie die Datenabstammungsvisualisierung im Data Catalog auf oder verwenden 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
Herkunftsdiagramme in Dataplex ansehen
Ein Liniendiagramm zur Herkunftsermittlung zeigt die Beziehungen zwischen Ihren Projektressourcen und den Prozessen, die sie erstellt haben. Sie können die Datenherkunft aufrufen Informationen in Form einer Diagrammvisualisierung in der Google Cloud Console oder und rufen sie aus der Data Lineage API in Form von JSON-Daten ab.
Weitere Informationen finden Sie unter Herkunftsdiagramme in der Dataplex-Benutzeroberfläche ansehen.
Beispiel
Sehen Sie sich den folgenden Spark-Job an, 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()
Mit diesem Spark-Job wird in der Dataplex-Benutzeroberfläche das folgende Herkunftsdiagramm erstellt:
Data Lineage in Dataproc deaktivieren
Wenn Sie die Abstammung beim Erstellen eines Clusters aktivieren, können Sie sie nicht auf Clusterebene deaktivieren. Wenn Sie die Abfolge in einem Dataproc-Cluster deaktivieren möchten, erstellen Sie den Cluster neu, ohne die Eigenschaft dataproc:dataproc.lineage.enabled
.
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.