Mengaktifkan silsilah data Spark di Dataproc

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

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih project yang berisi cluster Dataproc yang ingin Anda lacak silsilahnya.

    Buka pemilih project

  2. Aktifkan Data Lineage API dan Dataplex API.

    Aktifkan 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:

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 dan spark.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

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:

Contoh grafik silsilah

Langkah berikutnya