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

  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

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:

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:

Beispiel für ein Stammbaumdiagramm

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.

Nächste Schritte