Menggunakan silsilah data di Dataproc

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

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

    Buka pemilih project

  2. Aktifkan Data Lineage API dan Data Catalog API.

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

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:

Contoh grafik garis keturunan

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