Silsilah data adalah fitur Dataplex yang memungkinkan Anda melacak cara data bergerak melalui sistem Anda: dari mana asalnya, ke mana data diteruskan, dan transformasi apa yang diterapkan padanya.
Silsilah data tersedia untuk semua tugas Dataproc Spark kecuali SparkR, dengan gambar Dataproc Compute Engine 2.0.74+ dan 2.1.22+. Lineage tersedia untuk sumber data BigQuery dan Cloud Storage.
Setelah Anda mengaktifkan fitur tersebut di cluster Dataproc, tugas Dataproc Spark merekam peristiwa silsilah dan memublikasikannya ke Data Lineage API Dataplex. Dataproc berintegrasi dengan Data Lineage API melalui OpenLineage, menggunakan plugin OpenLineage Spark.
Anda dapat mengakses informasi silsilah melalui Dataplex, menggunakan hal berikut:
Batasan
Silsilah tidak didukung untuk hal berikut:
- BigQuery Connector versi 2 (API sumber data Spark versi 2)
- Picu workload streaming
Sebelum memulai
Di Konsol Google Cloud, pada halaman pemilih project, pilih project yang berisi cluster Dataproc yang silsilahnya ingin Anda lacak.
Aktifkan Data Lineage API dan Data Catalog API.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk menggunakan silsilah data di Dataproc, minta administrator untuk memberi Anda peran IAM berikut pada akun layanan VM cluster Dataproc:
-
Lihat visualisasi silsilah di Data Catalog atau untuk menggunakan Data Lineage API:
Data Lineage Viewer (
roles/datalineage.viewer
) -
Buat silsilah secara manual menggunakan API:
Produser Acara Lineage Data (
roles/datalineage.producer
) -
Edit silsilah menggunakan API:
Data Lineage Editor (
roles/datalineage.editor
) -
Melakukan semua operasi pada silsilah:
Administrator Lineage Data (
roles/datalineage.admin
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengaktifkan silsilah data di Dataproc
Aktifkan silsilah di tingkat cluster, sehingga semua tugas Spark yang dikirimkan dalam informasi silsilah cluster melaporkan ke Data Lineage API.
Membuat cluster Dataproc
Buat cluster Dataproc dengan properti dataproc:dataproc.lineage.enabled
ditetapkan ke true
.
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
Mengirim tugas Spark
Saat Anda mengirimkan tugas Spark di cluster Dataproc yang dibuat dengan silsilah diaktifkan, Dataproc akan mengambil dan melaporkan informasi silsilah ke 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
Properti spark.openlineage.namespace
dan spark.openlineage.appName
bersifat
opsional, dan digunakan untuk mengidentifikasi tugas secara unik. Jika Anda tidak meneruskan properti ini, Dataproc akan menggunakan nilai default berikut:
- Nilai default untuk
spark.openlineage.namespace
: PROJECT_ID - Nilai default untuk
spark.openlineage.appName
:spark.app.name
Melihat grafik silsilah di Dataplex
Grafik visualisasi silsilah menampilkan hubungan antara resource project Anda dan proses yang membuatnya. Anda dapat melihat informasi silsilah data dalam bentuk visualisasi grafik di Konsol Google Cloud, atau mengambilnya dari Data Lineage API dalam bentuk data JSON.
Untuk informasi selengkapnya, lihat Melihat grafik silsilah di UI Dataplex.
Contoh
Pertimbangkan tugas Spark berikut yang membaca data dari tabel BigQuery dan menulis ke tabel BigQuery lainnya:
#!/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()
Tugas Spark ini membuat grafik silsilah berikut di UI Dataplex:
Menonaktifkan silsilah data di Dataproc
Setelah mengaktifkan link saat membuat cluster, Anda
tidak dapat menonaktifkan silsilah di tingkat cluster. Untuk menonaktifkan silsilah di
cluster Dataproc, buat ulang cluster tanpa
properti dataproc:dataproc.lineage.enabled
.
Guna menonaktifkan silsilah untuk tugas tertentu di cluster yang dibuat dengan garis turunan diaktifkan, Anda harus meneruskan properti spark.extraListeners
dengan nilai kosong saat mengirimkan tugas.
Langkah selanjutnya
- Pelajari silsilah data lebih lanjut.