Dokumen ini menjelaskan cara mengaktifkan lineage data untuk tugas Spark Dataproc Anda di tingkat project atau cluster.
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.
Lineage data tersedia untuk semua tugas Spark Dataproc kecuali tugas streaming SparkR dan Spark, serta mendukung sumber data BigQuery dan Cloud Storage. Image ini disertakan dengan Dataproc pada versi image Compute Engine 2.0.74+ dan 2.1.22+.
Setelah Anda mengaktifkan fitur ini di cluster Dataproc, tugas Dataproc Spark akan merekam peristiwa urutan data dan memublikasikannya ke Data Lineage API Dataplex. Dataproc terintegrasi dengan Data Lineage API melalui OpenLineage, menggunakan plugin OpenLineage Spark.
Anda dapat mengakses informasi silsilah data melalui Dataplex, menggunakan hal berikut:
Sebelum memulai
Di konsol Google Cloud, pada halaman pemilih project, pilih project yang berisi cluster Dataproc yang ingin Anda lacak silsilahnya.
Aktifkan Data Lineage API dan Dataplex API.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menggunakan silsilah data di Dataproc, minta administrator untuk memberi Anda peran IAM berikut di akun layanan VM cluster Dataproc:
-
Melihat urutan data di Dataplex atau menggunakan Data Lineage API:
Data Lineage Viewer (
roles/datalineage.viewer
) -
Buat lineage data 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 Spark di level project
Anda dapat mengaktifkan silsilah data Spark di tingkat project. Tugas Spark yang didukung yang berjalan di cluster yang dibuat setelah silsilah data diaktifkan di project akan mengaktifkan silsilah data. Perhatikan bahwa tugas yang berjalan di cluster yang ada—cluster yang dibuat sebelum mengaktifkan lineage data di tingkat project—tidak akan mengaktifkan lineage data.
Cara mengaktifkan silsilah data Spark di tingkat project
Untuk mengaktifkan silsilah data Spark 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 Spark di tingkat project dengan menetapkan metadata DATAPROC_LINEAGE_ENABLED
ke false
.
Mengaktifkan silsilah data Spark di tingkat cluster
Anda dapat mengaktifkan lineage data Spark saat membuat cluster sehingga semua tugas Spark yang didukung dan dikirim ke cluster akan mengaktifkan lineage data.
Cara mengaktifkan silsilah data Spark di tingkat cluster
Untuk mengaktifkan silsilah data Spark di cluster,
buat cluster Dataproc
dengan properti cluster dataproc:dataproc.lineage.enabled
ditetapkan ke true
.
Cluster versi image 2.0: Cakupan cloud-platform
akses VM cluster Dataproc diperlukan untuk silsilah data Spark. Cluster versi gambar Dataproc yang dibuat dengan versi gambar
2.1 dan yang lebih baru telah mengaktifkan cloud-platform
. Jika Anda menentukan versi image Dataproc
2.0
saat membuat cluster, tetapkan
cakupan
ke cloud-platform
.
Contoh gcloud CLI:
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--properties 'dataproc:dataproc.lineage.enabled=true'
Menonaktifkan silsilah data Spark pada tugas
Jika mengaktifkan silsilah data Spark di tingkat cluster, Anda dapat menonaktifkan silsilah data Spark pada tugas tertentu dengan meneruskan properti spark.extraListeners
dengan nilai kosong ("") saat mengirimkan tugas.
Setelah diaktifkan, Anda tidak dapat menonaktifkan silsilah data Spark di cluster. Untuk menghapus
lineage data Spark di semua tugas cluster, Anda dapat
membuat ulang cluster
tanpa properti dataproc:dataproc.lineage.enabled
.
Mengirim tugas Spark
Saat Anda mengirimkan tugas Spark di cluster Dataproc yang dibuat dengan silsilah data Spark diaktifkan, Dataproc akan mengambil dan melaporkan informasi silsilah data ke Data Lineage API.
gcloud dataproc jobs submit spark \
--cluster=CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--class CLASS \
--jars=gs://APPLICATION_BUCKET/spark-application.jar \
--properties=spark.openlineage.namespace=CUSTOM_NAMESPACE,spark.openlineage.appName=CUSTOM_APPNAME
Catatan:
- Menambahkan properti
spark.openlineage.namespace
danspark.openlineage.appName
, yang digunakan untuk mengidentifikasi tugas secara unik, bersifat opsional. Jika Anda tidak menambahkan 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
- Nilai default untuk
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 mengambilnya dari Data Lineage API dalam bentuk data JSON.
Contoh:
Tugas Spark berikut membaca data dari tabel BigQuery, dan menulis ke tabel BigQuery lain.
#!/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 membuat grafik silsilah berikut di UI Dataplex:
Langkah berikutnya
- Pelajari silsilah data lebih lanjut.