In diesem Dokument wird beschrieben, wie Sie Datenherkunft fürGoogle Cloud Serverless für Apache Spark-Batcharbeitslasten und interaktive Sitzungen auf Projekt-, Batcharbeitslast- oder interaktiver Sitzung-Ebene aktivieren.
Übersicht
Die Datenherkunft ist eine Dataplex Universal Catalog-Funktion, mit der Sie verfolgen können, wie sich Daten durch Ihre Systeme bewegen: woher sie stammen, wohin sie übertragen werden und welche Transformationen auf sie angewendet werden.
Google Cloud Bei Serverless for Apache Spark-Arbeitslasten und -Sitzungen werden Herkunftsereignisse erfasst und in der Data Lineage API des Dataplex Universal Catalog veröffentlicht. Serverless für Apache Spark wird über OpenLineage in die Data Lineage API eingebunden. Dazu wird das OpenLineage Spark-Plug-in verwendet.
Sie können über Dataplex Universal Catalog auf Informationen zur Datenherkunft zugreifen. Dazu verwenden Sie Abstammungsdiagramme und die Data Lineage API. Weitere Informationen finden Sie unter Herkunftsgraphen in Dataplex Universal Catalog ansehen.
Verfügbarkeit, Funktionen und Einschränkungen
Die Datenherkunft, die BigQuery- und Cloud Storage-Datenquellen unterstützt, ist für Arbeitslasten und Sitzungen verfügbar, die mit den Serverless for Apache Spark-Laufzeitversionen 1.1
, 1.2
und 2.2
ausgeführt werden. Es gelten die folgenden Ausnahmen und Einschränkungen:
- Data Lineage ist für SparkR- oder Spark-Streaming-Arbeitslasten oder ‑Sitzungen nicht verfügbar.
Hinweise
Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl das Projekt aus, das Sie für Ihre Serverless for Apache Spark-Arbeitslasten oder -Sitzungen verwenden möchten.
Aktivieren Sie die Data Lineage API.
Erforderliche Rollen
Wenn für Ihre Batcharbeitslast das Standarddienstkonto Serverless for Apache Spark verwendet wird, hat es die Rolle Dataproc Worker
, die die Datenherkunft ermöglicht. Sie müssen nichts weiter unternehmen.
Wenn für Ihren Batch-Arbeitslast jedoch ein benutzerdefiniertes Dienstkonto verwendet wird, um die Datenherkunft zu aktivieren, müssen Sie dem benutzerdefinierten Dienstkonto eine erforderliche Rolle zuweisen, wie im folgenden Absatz beschrieben.
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das benutzerdefinierte Dienstkonto Ihrer Batcharbeitslast zuzuweisen, um die Berechtigungen zu erhalten, die Sie für die 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-Ersteller (
roles/datalineage.producer
) -
Administrator für Datenherkunft (
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.
Data Lineage auf Projektebene aktivieren
Sie können die Datenherkunft auf Projektebene aktivieren. Wenn die Funktion auf Projektebene aktiviert ist, ist für alle nachfolgenden Batcharbeitslasten und interaktiven Sitzungen, die Sie im Projekt ausführen, die Spark-Lineage aktiviert.
Datenherkunft auf Projektebene aktivieren
Wenn Sie die 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 Datenherkunft auf Projektebene deaktivieren, indem Sie die Metadaten DATAPROC_LINEAGE_ENABLED
auf false
setzen.
Data Lineage für eine Spark-Batcharbeitslast aktivieren
Sie können die Datenherkunft für einen Batch-Workload aktivieren, indem Sie beim Einreichen des Workloads das Attribut spark.dataproc.lineage.enabled
auf true
setzen.
Beispiel für eine Batch-Arbeitslast
In diesem Beispiel wird ein lineage-example.py
-Batch-Workload mit aktivierter Spark-Lineage gesendet.
gcloud dataproc batches submit pyspark lineage-example.py \ --region=REGION \ --deps-bucket=gs://BUCKET \ --properties=spark.dataproc.lineage.enabled=true
lineage-example.py
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()
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) \
.option('writeMethod', 'direct') \
.save()
Ersetzen Sie die folgenden Werte:
REGION: Wählen Sie eine Region aus, in der Ihre Arbeitslast ausgeführt werden soll.
BUCKET: Der Name eines vorhandenen Cloud Storage-Bucket zum Speichern von Abhängigkeiten.
PROJECT_ID, DATASET und TABLE: Geben 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-Benutzeroberfläche ansehen.
Data Lineage für eine interaktive Spark-Sitzung aktivieren
Sie können die Datenherkunft für eine interaktive Spark-Sitzung aktivieren, indem Sie die Eigenschaft spark.dataproc.lineage.enabled
auf true
setzen, wenn Sie die Sitzung oder Sitzungsvorlage erstellen.
Beispiel für eine interaktive Sitzung
Mit dem folgenden PySpark-Notebook-Code wird eine interaktive Sitzung für Serverless für Apache Spark mit aktivierter Spark-Datenherkunft konfiguriert. Anschließend wird eine Spark Connect-Sitzung erstellt, in der eine Wordcount-Abfrage für ein öffentliches BigQuery-Shakespeare-Dataset ausgeführt und die Ausgabe in eine neue Tabelle in einem vorhandenen BigQuery-Dataset geschrieben wird.
# Configure the Dataproc Serverless interactive session
# to enable Spark data lineage.
from google.cloud.dataproc_v1 import Session
session = Session()
session.runtime_config.properties["spark.dataproc.lineage.enabled"] = "true"
# Create the Spark Connect session.
from google.cloud.dataproc_spark_connect import DataprocSparkSession
spark = DataprocSparkSession.builder.dataprocSessionConfig(session).getOrCreate()
# Run a wordcount query on the public BigQuery Shakespeare dataset.
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')
# Output the results to a BigQuery destination table.
destination_table = 'PROJECT_ID:DATASET.TABLE'
word_count.write.format('bigquery') \
.option('table', destination_table) \
.save()
Ersetzen Sie die folgenden Werte:
- PROJECT_ID, DATASET und TABLE: Geben 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 Datenherkunftsdiagramm aufrufen, indem Sie im Navigationsbereich auf der BigQuery-Seite Explorer auf den Namen der Zieltabelle klicken und dann im Bereich mit den Tabellendetails den Tab „Herkunft“ auswählen.
Lineage in Dataplex Universal Catalog ansehen
Ein Herkunftsdiagramm zeigt die Beziehungen zwischen Ihren Projektressourcen und den Prozessen, mit denen sie erstellt wurden. Sie können Informationen zur Datenherkunft in der Google Cloud -Konsole ansehen oder die Informationen als JSON-Daten über die Data Lineage API abrufen.