Mengaktifkan silsilah data di Dataproc

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

Batasan

Linimasa data tidak tersedia untuk tugas streaming SparkR atau Spark.

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 Data Catalog 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 di level 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 silsilah 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 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 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:

Contoh grafik silsilah

Langkah selanjutnya