Dokumen ini menjelaskan cara mengaktifkan lineage data untuk tugas Dataproc Spark Anda di tingkat project atau cluster.
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.
Lineage data tersedia untuk semua tugas Spark Dataproc kecuali SparkR, dengan image Dataproc Compute Engine 2.0.74+ dan 2.1.22+, serta mendukung sumber data BigQuery dan Cloud Storage.
Setelah Anda mengaktifkan fitur ini di cluster Dataproc, tugas Spark Dataproc 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:
Batasan
Linimasa data tidak tersedia untuk tugas streaming SparkR atau Spark.
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 Data Catalog 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 visualisasi garis keturunan data di Data Catalog 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 di tingkat project
Anda dapat mengaktifkan silsilah data 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 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 di tingkat cluster
Anda dapat mengaktifkan lineage data saat membuat cluster sehingga semua tugas Spark yang didukung yang dikirim ke cluster akan mengaktifkan lineage data.
Cara mengaktifkan silsilah data di tingkat cluster
Untuk mengaktifkan lineage data di cluster,
buat cluster Dataproc
dengan properti cluster dataproc:dataproc.lineage.enabled
ditetapkan ke true
.
Cluster versi image 2.0: Akses VM cluster Dataproc
cakupan cloud-platform
diperlukan untuk garis keturunan data. 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 pada tugas
Jika mengaktifkan lineage data di tingkat cluster, Anda dapat menonaktifkan
lineage data pada tugas tertentu dengan meneruskan properti spark.extraListeners
dengan nilai kosong ("") saat mengirimkan tugas.
Setelah diaktifkan, Anda tidak dapat menonaktifkan silsilah data di cluster. Untuk menghapus
lineage data 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 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 grafik silsilah di Dataplex
Grafik visualisasi silsilah menampilkan hubungan antara resource project dan proses yang membuatnya. Anda dapat melihat informasi silsilah data dalam bentuk visualisasi grafik di Google Cloud Console, atau mengambilnya dari Data Lineage API dalam bentuk data JSON.
Untuk mengetahui informasi selengkapnya, lihat Melihat grafik silsilah di UI Dataplex.
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 selanjutnya
- Pelajari silsilah data lebih lanjut.