Dokumen ini menjelaskan cara mengaktifkan asal data untuk tugas Dataproc Spark di tingkat project atau cluster.
Silsilah data adalah fitur Dataplex Universal Catalog yang memungkinkan Anda melacak bagaimana data bergerak melalui sistem: dari mana data berasal, tempat data diteruskan, dan transformasi yang diterapkan pada data.
Silsilah data tersedia untuk semua tugas Spark Dataproc, kecuali tugas streaming Spark dan SparkR, serta mendukung sumber data BigQuery dan Cloud Storage. Fitur ini disertakan dengan Dataproc di Compute Engine 2.0.74+, 2.1.22+, 2.2.50, dan versi image yang lebih baru.
Setelah Anda mengaktifkan fitur di cluster Dataproc, tugas Spark Dataproc akan merekam peristiwa silsilah data dan memublikasikannya ke Data Lineage API Dataplex Universal Catalog. Dataproc terintegrasi dengan Data Lineage API melalui OpenLineage, menggunakan plugin OpenLineage Spark.
Anda dapat mengakses informasi silsilah data melalui Dataplex Universal Catalog, menggunakan berikut ini:
Sebelum memulai
Di Google Cloud konsol, pada halaman pemilih project, pilih project yang berisi cluster Dataproc yang ingin Anda lacak silsilahnya.
Aktifkan Data Lineage API.
Peran yang diperlukan
Jika Anda membuat cluster Dataproc menggunakan
akun layanan VM default,
cluster tersebut memiliki peran Dataproc Worker
, yang memungkinkan pelacakan asal data. Anda tidak perlu melakukan tindakan tambahan apa pun.
Namun, jika Anda membuat cluster Dataproc yang menggunakan akun layanan kustom, untuk mengaktifkan silsilah data di cluster, Anda harus memberikan peran yang diperlukan ke akun layanan kustom seperti yang dijelaskan dalam paragraf berikut.
Untuk mendapatkan izin yang Anda perlukan guna menggunakan silsilah data dengan Dataproc, minta administrator untuk memberi Anda peran IAM berikut di akun layanan kustom cluster Anda:
-
Beri salah satu peran berikut:
-
Pekerja Dataproc (
roles/dataproc.worker
) -
Editor urutan data (
roles/datalineage.editor
) -
Produsen urutan data (
roles/datalineage.producer
) -
Administrator urutan data (
roles/datalineage.admin
)
-
Pekerja Dataproc (
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 kustom atau peran yang telah ditentukan 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 silsilah data di tingkat project—tidak akan mengaktifkan silsilah data.
Mengaktifkan silsilah data Spark di level 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 silsilah data Spark saat membuat cluster sehingga semua tugas Spark yang didukung yang dikirimkan ke cluster akan mengaktifkan silsilah data.
Mengaktifkan silsilah data Spark di tingkat cluster
Untuk mengaktifkan asal data Spark di cluster,
buat cluster Dataproc
dengan properti cluster dataproc:dataproc.lineage.enabled
yang ditetapkan ke true
.
Cluster versi image 2.0: Cakupan
cloud-platform
akses VM cluster Dataproc
diperlukan untuk asal data Spark. Cluster versi image Dataproc yang dibuat dengan versi image 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 Anda mengaktifkan asal-usul data Spark di tingkat cluster, Anda dapat menonaktifkan asal-usul data Spark pada tugas tertentu dengan meneruskan properti spark.extraListeners
dengan nilai kosong ("") saat Anda mengirimkan tugas.
Setelah diaktifkan, Anda tidak dapat menonaktifkan silsilah data Spark di cluster. Untuk menghilangkan
silsilah data Spark di semua tugas cluster, Anda dapat
membuat ulang cluster
tanpa properti dataproc:dataproc.lineage.enabled
.
Mengirimkan tugas Spark
Saat Anda mengirimkan tugas Spark di cluster Dataproc yang dibuat dengan mengaktifkan silsilah data Spark, Dataproc akan merekam 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 Universal Catalog
Grafik silsilah menampilkan hubungan antara resource project Anda 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 kode PySpark:
Tugas PySpark berikut membaca data dari tabel BigQuery publik, lalu menulis output ke tabel baru dalam set data BigQuery yang ada. Bucket 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()
bucket = 'gs://BUCKET`
spark.conf.set('temporaryCloudStorageBucket', bucket)
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) \
.save()
Lakukan penggantian berikut:
BUCKET: Nama bucket Cloud Storage yang ada.
PROJECT_ID, DATASET, dan TABLE: Masukkan ID project, nama set data BigQuery yang ada, dan nama tabel baru yang akan dibuat di set data (tabel tidak boleh ada).
Anda dapat melihat grafik silsilah di UI Dataplex Universal Catalog.
Langkah berikutnya
- Pelajari lebih lanjut silsilah data.