Dokumen ini menjelaskan cara mengaktifkan silsilah data pada workload batch dan sesi interaktif Managed Service untuk Apache Spark di tingkat project, workload batch, atau sesi interaktif atau profil runtime (template sesi).
Ringkasan
Silsilah data adalah fitur Knowledge Catalog yang memungkinkan Anda melacak bagaimana data bergerak melalui sistem: dari mana data berasal, tempat data diteruskan, dan transformasi yang diterapkan pada data.
Workload dan sesi Managed Service untuk Apache Spark menangkap peristiwa silsilah dan memublikasikannya ke Data Lineage API Knowledge Catalog. Managed Service untuk Apache Spark terintegrasi dengan Data Lineage API melalui OpenLineage, menggunakan plugin OpenLineage Spark.
Anda dapat mengakses informasi silsilah melalui Knowledge Catalog, menggunakan grafik silsilah dan Data Lineage API. Untuk mengetahui informasi selengkapnya, lihat Melihat grafik silsilah di Knowledge Catalog.
Ketersediaan
Silsilah data, yang mendukung sumber data BigQuery dan Cloud Storage, tersedia untuk workload dan sesi yang berjalan dengan versi runtime Managed Service untuk Apache Spark yang didukung dengan pengecualian dan batasan berikut:
- Silsilah data tidak tersedia untuk workload atau sesi streaming SparkR atau Spark.
Sebelum memulai
Di halaman pemilih project di konsol Google Cloud , pilih project yang akan digunakan untuk workload atau sesi Managed Service untuk Apache Spark Anda.
Aktifkan Data Lineage API.
Perubahan silsilah data Spark mendatang Lihat catatan rilis Managed Service untuk Apache Spark untuk pengumuman perubahan yang akan otomatis membuat silsilah data Spark tersedia untuk project, workload batch, dan sesi interaktif Anda saat Anda mengaktifkan Data Lineage API (lihat Mengontrol penyerapan silsilah untuk layanan) tanpa memerlukan setelan project, workload batch, atau sesi interaktif tambahan.
Peran yang diperlukan
Jika workload batch Anda menggunakan
akun layanan Managed Service untuk Apache Spark default,
workload tersebut memiliki peran Managed Service for Apache Spark Worker,
yang berisi izin yang diperlukan oleh silsilah data.
Namun, jika workload batch Anda menggunakan akun layanan kustom untuk mengaktifkan silsilah data, Anda harus memberikan salah satu peran yang tercantum dalam paragraf berikut, yang berisi izin yang diperlukan oleh silsilah data, ke akun layanan kustom.
Untuk mendapatkan izin yang Anda perlukan untuk menggunakan silsilah data dengan Managed Service untuk Apache Spark, minta administrator untuk memberi Anda peran IAM berikut di akun layanan kustom workload batch Anda:
-
Berikan salah satu peran berikut:
- Managed Service for Apache Spark Worker (
roles/dataproc.worker) - Data Lineage Editor (
roles/datalineage.editor) - Data Lineage Producer (
roles/datalineage.producer) - Data Lineage Administrator (
roles/datalineage.admin)
- Managed Service for Apache Spark Worker (
Untuk mengetahui informasi selengkapnya tentang pemberian 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 Spark
Anda dapat mengaktifkan silsilah data Spark untuk project, workload batch, atau sesi interaktif.
Mengaktifkan silsilah data di level project
Setelah Anda mengaktifkan silsilah data Spark di level project, tugas Spark berikutnya yang berjalan dalam workload batch atau sesi interaktif akan mengaktifkan silsilah data Spark.
Untuk mengaktifkan silsilah data Spark di project Anda, tetapkan metadata project kustom berikut:
| Kunci | Nilai |
|---|---|
DATAPROC_LINEAGE_ENABLED |
true |
Anda dapat menonaktifkan silsilah data Spark untuk project dengan menetapkan metadata DATAPROC_LINEAGE_ENABLED ke false.
Mengaktifkan silsilah data pada workload batch Spark
Untuk mengaktifkan silsilah data pada workload batch,
tetapkan properti spark.dataproc.lineage.enabled ke true saat Anda
mengirimkan workload. Setelan ini menggantikan setelan silsilah data Spark
di level project: jika silsilah data Spark
dinonaktifkan di level project, tetapi diaktifkan untuk workload batch,
setelan workload batch akan lebih diutamakan.
Anda dapat menonaktifkan silsilah data Spark pada workload batch Spark
dengan menetapkan properti spark.dataproc.lineage.enabled ke false
saat mengirimkan workload.
Contoh ini menggunakan gcloud CLI untuk mengirimkan workload batch lineage-example.py dengan silsilah Spark diaktifkan.
gcloud dataproc batches submit pyspark lineage-example.py \ --region=REGION \ --deps-bucket=gs://BUCKET \ --properties=spark.dataproc.lineage.enabled=true
Kode lineage-example.py berikut membaca data dari tabel BigQuery publik, lalu menulis output ke tabel baru dalam set data BigQuery yang ada. Solusi ini menggunakan bucket Cloud Storage untuk penyimpanan sementara.
#!/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()
Ganti kode berikut:
- REGION: Region untuk menjalankan workload
- BUCKET: Nama bucket Cloud Storage yang ada untuk menyimpan dependensi
- PROJECT_ID, DATASET, dan TABLE: Project ID, nama set data BigQuery yang ada, dan nama tabel baru yang akan dibuat dalam set data (tabel tidak boleh ada)
Anda dapat melihat grafik silsilah di UI Knowledge Catalog.
Mengaktifkan silsilah data di sesi interaktif atau profil runtime Spark (template sesi)
Untuk mengaktifkan silsilah data pada sesi interaktif atau profil runtime Spark
(template sesi), tetapkan properti spark.dataproc.lineage.enabled ke true
saat Anda
membuat sesi atau profil runtime (template sesi).
Misalnya, di halaman Create a runtime profile di konsol Google Cloud ,
di bagian Additional configuration, edit Other customizations dan tambahkan
properti spark.dataproc.lineage.enabled dengan nilai true di bagian Spark
properties. Setelan ini menggantikan setelan silsilah data Spark di
level project: jika silsilah data Spark
dinonaktifkan di level project, tetapi diaktifkan untuk sesi interaktif,
setelan sesi interaktif akan lebih diutamakan.
Anda dapat menonaktifkan silsilah data Spark pada sesi interaktif atau profil runtime Spark (template sesi) dengan menetapkan properti spark.dataproc.lineage.enabled ke false saat Anda membuat sesi interaktif atau profil runtime (template sesi).
Kode notebook PySpark berikut mengonfigurasi sesi interaktif Managed Service untuk Apache Spark dengan silsilah data Spark diaktifkan. Kemudian, kode ini membuat sesi Spark Connect yang menjalankan kueri jumlah kata pada set data Shakespeare BigQuery publik, lalu menulis output ke tabel baru dalam set data BigQuery yang ada (lihat Membuat sesi Spark di notebook BigQuery Studio) .
# 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()
Ganti kode berikut:
- PROJECT_ID, DATASET, dan TABLE: Project ID, nama set data BigQuery yang ada, dan nama tabel baru yang akan dibuat dalam set data (tabel tidak boleh ada)
Anda dapat melihat grafik silsilah data dengan mengklik nama tabel tujuan yang tercantum di panel navigasi pada halaman Explorer BigQuery, lalu memilih tab silsilah di panel detail tabel.
Melihat silsilah di Knowledge Catalog
Grafik silsilah menampilkan hubungan antara resource project Anda 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.
- Coba silsilah data di lab interaktif: Capture and Explore Data Updates With Data Lineage and OpenLineage in Dataplex.