Data Lineage in Dataproc verwenden

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

  1. 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.

    Zur Projektauswahl

  2. Aktivieren Sie die Data Lineage API und die Data Catalog API.

    APIs aktivieren

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:

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:

Beispiel für Herkunftsdiagramm

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.

Nächste Schritte