In diesem Dokument wird beschrieben, wie Sie die Datenherkunft für Ihre Dataproc Spark-Jobs entweder auf Projekt- oder Clusterebene aktivieren.
Die Datenherkunft ist ein Feature von Dataplex Universal Catalog , mit dem Sie verfolgen können, wie Daten sich durch Ihre Systeme bewegen: woher die Daten stammen, wohin die Daten übertragen werden und welche Transformationen auf sie angewendet werden.
Die Datenherkunft ist für alle Dataproc Spark-Jobs verfügbar mit Ausnahme von SparkR- und Spark-Streaming-Jobs, und unterstützt BigQuery- und Cloud Storage Datenquellen. Sie ist in den Dataproc-Image-Versionen 2.0.74+, 2.1.22+, 2.2.50 und höher für Compute Engine enthalten.
Nachdem Sie das Feature in Ihrem Dataproc-Cluster aktiviert haben, erfassen Dataproc Spark-Jobs Datenherkunftsereignisse und veröffentlichen sie in der Dataplex Universal Catalog Data Lineage API. Dataproc wird über OpenLineagein die Data Lineage API eingebunden, indem das OpenLineage Spark-Plug-inverwendet wird.
Sie können über Dataplex Universal Catalog auf Informationen zur Datenherkunft zugreifen. Dazu haben Sie folgende Möglichkeiten:
Hinweis
Wählen Sie in der Google Cloud Console auf der Projektauswahlseite das Projekt aus, das den Dataproc-Cluster enthält, für den Sie die Herkunft verfolgen möchten.
Aktivieren Sie die Data Lineage API.
Erforderliche Rollen
Wenn Sie einen Dataproc-Cluster mit dem
Standarddienstkonto der VM erstellen,
hat er die Dataproc Worker
Rolle, die die Datenherkunft ermöglicht. Keine zusätzliche Aktion ist notwendig.
Wenn Sie jedoch einen Dataproc-Cluster erstellen, der ein benutzerdefiniertes Dienstkontoverwendet, müssen Sie dem benutzerdefinierten Dienstkonto eine erforderliche Rolle zuweisen, um die Datenherkunft im Cluster zu aktivieren. Das wird im folgenden Absatz erläutert.
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das benutzerdefinierte Dienstkonto Ihres Clusters zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung der Datenherkunft mit Dataproc benötigen:
-
Weisen Sie eine der folgenden Rollen zu:
-
Dataproc Worker (
roles/dataproc.worker) -
Data Lineage-Bearbeiter (
roles/datalineage.editor) -
Data Lineage-Produzent (
roles/datalineage.producer) -
Data Lineage-Administrator (
roles/datalineage.admin)
-
Dataproc Worker (
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.
Spark-Datenherkunft auf Projektebene aktivieren
Sie können die Spark-Datenherkunft auf Projektebene aktivieren. Für unterstützte Spark-Jobs, die in Clustern ausgeführt werden, die nach der Aktivierung der Datenherkunft in einem Projekt erstellt wurden, ist die Datenherkunft aktiviert. Für Jobs, die in vorhandenen Clustern ausgeführt werden, also in Clustern, die vor der Aktivierung von Datenherkunft auf Projektebene erstellt wurden, ist die Datenherkunft nicht aktiviert.
Spark-Datenherkunft auf Projektebene aktivieren
Wenn Sie die Spark-Datenherkunft auf Projektebene aktivieren möchten, legen Sie die folgenden benutzerdefinierten Projektmetadaten fest:
| Schlüssel | Wert |
|---|---|
DATAPROC_LINEAGE_ENABLED |
true |
DATAPROC_CLUSTER_SCOPES |
https://www.googleapis.com/auth/cloud-platform |
Sie können die Spark-Datenherkunft auf Projektebene deaktivieren, indem Sie die
DATAPROC_LINEAGE_ENABLED Metadaten auf false setzen.
Spark-Datenherkunft auf Clusterebene aktivieren
Sie können die Spark-Datenherkunft aktivieren, wenn Sie einen Cluster erstellen, sodass für alle unterstützten Spark-Jobs, die an den Cluster gesendet werden, die Datenherkunft aktiviert ist.
Spark-Datenherkunft auf Clusterebene aktivieren
Wenn Sie die Spark-Datenherkunft in einem Cluster aktivieren möchten,
erstellen Sie einen Dataproc-Cluster
bei dem die dataproc:dataproc.lineage.enabled Clustereigenschaft auf true gesetzt ist.
Cluster mit Image-Version 2.0:Für die Spark-Datenherkunft ist der Dataproc-Cluster-VM-Zugriff
cloud-platformbereich
erforderlich. Für Dataproc-Cluster, die mit Image
Version 2.1 und höher erstellt wurden, ist cloud-platform aktiviert. Wenn Sie beim Erstellen eines Clusters die Dataproc
Image-Version 2.0 angeben, setzen Sie den
Bereich
auf cloud-platform.
Beispiel für die gcloud CLI:
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--properties 'dataproc:dataproc.lineage.enabled=true'Spark-Datenherkunft für einen Job deaktivieren
Wenn Sie die Spark-Datenherkunft auf Clusterebene aktivieren, können Sie sie für einen bestimmten Job deaktivieren, indem Sie beim Senden des Jobs die spark.extraListeners
Eigenschaft mit einem leeren Wert ("") übergeben.
Nach der Aktivierung kann die Spark-Datenherkunft im Cluster nicht mehr deaktiviert werden. Wenn Sie die
Spark-Datenherkunft für alle Clusterjobs deaktivieren möchten, können Sie den
Cluster neu erstellen
ohne die dataproc:dataproc.lineage.enabled Eigenschaft.
Spark-Job senden
Wenn Sie einen Spark-Job senden in einem Dataproc-Cluster, der mit aktivierter Spark-Datenherkunft erstellt wurde, erfasst Dataproc die Informationen zur Datenherkunft und meldet sie an die Data Lineage API.
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_APPNAMEHinweise:
- Das Hinzufügen der Eigenschaften
spark.openlineage.namespaceundspark.openlineage.appName, die zur eindeutigen Identifizierung des Jobs verwendet werden, ist optional. Wenn Sie diese Eigenschaften nicht hinzufügen, verwendet Dataproc die folgenden Standardwerte:- Standardwert für
spark.openlineage.namespace: PROJECT_ID - Standardwert für
spark.openlineage.appName:spark.app.name
- Standardwert für
Lineage in Dataplex Universal Catalog ansehen
Ein Lineage-Diagramm zeigt Beziehungen zwischen Ihren Projekt Ressourcen und den Prozessen, die sie erstellt haben. Sie können Informationen zur Datenherkunft in der Google Cloud Konsole ansehen oder sie in Form von JSON-Daten aus der Data Lineage API abrufen.
Beispielcode für PySpark:
Der folgende PySpark-Job liest Daten aus einer öffentlichen BigQuery Tabelle und schreibt die Ausgabe dann in eine neue Tabelle in einem vorhandenen BigQuery Dataset. Für die temporäre Speicherung wird ein Cloud Storage-Bucket verwendet.
#!/usr/bin/env python
from pyspark.sql import SparkSession
import sys
spark = SparkSession \
.builder \
.appName('LINEAGE_BQ_TO_BQ') \
.getOrCreate()
bucket = 'gs://BUCKET`
spark.conf.set('temporaryCloudStorageBucket', bucket)
source = 'bigquery-public-data:samples.shakespeare'
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_table = 'PROJECT_ID:DATASET.TABLE'
word_count.write.format('bigquery') \
.option('table', destination_table) \
.save()
Ersetzen Sie die folgenden Werte:
BUCKET: Der Name eines vorhandenen Cloud Storage-Buckets.
PROJECT_ID, DATASET, und TABLE: Fügen Sie Ihre Projekt-ID, den Namen eines vorhandenen BigQuery-Datasets und den Namen einer neuen Tabelle ein, die im Dataset erstellt werden soll (die Tabelle darf nicht vorhanden sein).
Sie können das Lineage-Diagramm in der Dataplex Universal Catalog-UI ansehen.
Nächste Schritte
- Weitere Informationen zur Datenherkunft.