Dokumen ini menjelaskan cara mengaktifkan lineage data di Dataproc Serverless untuk workload batch Spark dan sesi interaktif di tingkat project, workload batch, atau sesi interaktif.
Ringkasan
Silsilah data adalah fitur Dataplex yang memungkinkan Anda melacak bagaimana data bergerak melalui sistem: dari mana data berasal, tempat data diteruskan, dan transformasi yang diterapkan pada data.
Dataproc Serverless for Spark mencatat peristiwa lineage dan memublikasikannya ke Data Lineage API Dataplex. Dataproc Serverless untuk Spark terintegrasi dengan Data Lineage API melalui OpenLineage, menggunakan plugin Spark OpenLineage.
Anda dapat mengakses informasi silsilah melalui Dataplex, menggunakan grafik silsilah dan Data Lineage API. Untuk informasi selengkapnya, lihat Melihat grafik silsilah di Dataplex.
Ketersediaan, kemampuan, dan batasan
Lineage data, yang mendukung sumber data BigQuery dan Cloud Storage, tersedia untuk workload dan sesi yang berjalan dengan versi runtime Dataproc Serverless for Spark 1.1
, 1.2
, dan 2.2
, dengan pengecualian dan batasan berikut:
- Lineage data tidak tersedia untuk sesi atau beban kerja streaming SparkR atau Spark.
Sebelum memulai
Di halaman pemilih project di konsol Google Cloud, pilih project yang akan digunakan untuk sesi atau beban kerja Dataproc Serverless for Spark.
Aktifkan Data Lineage API dan Dataplex API.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna menggunakan silsilah data di Dataproc Serverless untuk Spark, minta administrator untuk memberi Anda peran IAM berikut di akun layanan VM cluster Dataproc:
-
Melihat lineage di Dataplex atau menggunakan Data Lineage API:
Data Lineage Viewer (
roles/datalineage.viewer
) -
Buat lineage secara manual menggunakan API:
Data Lineage Events Producer (
roles/datalineage.producer
) -
Mengedit garis keturunan menggunakan API:
Data Lineage Editor (
roles/datalineage.editor
) -
Melakukan semua operasi pada silsilah:
Administrator Silsilah Data (
roles/datalineage.admin
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengaktifkan silsilah data di level project
Anda dapat mengaktifkan silsilah data di tingkat project. Jika diaktifkan di level project, semua beban kerja batch berikutnya dan sesi interaktif yang Anda jalankan di project akan memiliki lineage Spark yang diaktifkan.
Cara mengaktifkan silsilah data di tingkat project
Untuk mengaktifkan silsilah data di tingkat project, tetapkan metadata project kustom berikut.
Kunci | Nilai |
---|---|
DATAPROC_LINEAGE_ENABLED |
true |
DATAPROC_CLUSTER_SCOPES |
https://www.googleapis.com/auth/cloud-platform |
Anda dapat menonaktifkan silsilah data di tingkat project dengan menetapkan
metadata DATAPROC_LINEAGE_ENABLED
ke false
.
Mengaktifkan silsilah data untuk workload batch Spark
Anda dapat mengaktifkan silsilah data pada beban kerja batch
dengan menetapkan properti spark.dataproc.lineage.enabled
ke true
saat
mengirimkan beban kerja.
Contoh workload batch
Contoh ini mengirimkan beban kerja lineage-example.py
batch dengan lineage Spark
yang diaktifkan.
gcloud dataproc batches submit pyspark lineage-example.py \ --region=REGION \ --properties=spark.dataproc.lineage.enabled=true
lineage-example.py
membaca data dari tabel BigQuery, lalu menulis output ke tabel BigQuery yang berbeda.
#!/usr/bin/env python
from pyspark.sql import SparkSession
import sys
spark = SparkSession \
.builder \
.appName('LINEAGE_BQ_TO_BQ') \
.getOrCreate()
bucket = lineage-demo
spark.conf.set('temporaryCloudStorageBucket', 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()
Anda dapat melihat grafik silsilah di UI Dataplex.
Mengaktifkan silsilah data untuk sesi interaktif Spark
Anda dapat mengaktifkan silsilah data di sesi interaktif Spark
dengan menetapkan properti spark.dataproc.lineage.enabled
ke true
saat Anda
membuat sesi atau template sesi.
Contoh sesi interaktif
Kode notebook PySpark berikut mengonfigurasi sesi interaktif Dataproc Serverless dengan silsilah data Spark yang diaktifkan dan berjalan di subnet regional VPC Akses Google Pribadi. Kemudian, sesi Spark Connect akan dibuat yang menjalankan kueri jumlah kata pada set data Shakespeare BigQuery publik, lalu menulis output ke tabel BigQuery.
from dataproc_spark_session.session.spark.connect import DataprocSparkSession
from google.cloud.dataproc_v1 import Session
session = Session()
# Configure the Dataproc Serverless interactive session. Enable Spark data lineage.
project_id = "sample-project-id"
region = "us-central1"
subnet_name = "sample-private-google-access-subnet"
session.environment_config.execution_config.subnetwork_uri = f"projects/{project_id}/regions/{region}/subnetworks/{subnet_name}"
session.runtime_config.properties["spark.dataproc.lineage.enabled"] = "true"
session.runtime_config.version = "2.2"
# Create the Spark Connect session.
spark = (
DataprocSparkSession.builder
.appName("LINEAGE_BQ_TO_BQ")
.dataprocConfig(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 = sample.destination
word_count.write.format('bigquery') \
.option('table', destination) \
.save()
Anda dapat melihat grafik garis keturunan data dengan mengklik nama tabel tujuan yang tercantum di panel navigasi pada halaman Explorer BigQuery, lalu memilih tab garis keturunan di panel detail tabel.
Melihat silsilah di Dataplex
Grafik silsilah menampilkan hubungan antara resource project dan proses yang membuatnya. Anda dapat melihat informasi silsilah data di konsol Google Cloud atau mengambil informasi dari Data Lineage API sebagai data JSON.
Langkah berikutnya
- Pelajari silsilah data lebih lanjut.