Linhagem de dados do Spark

Visão geral

A linhagem de dados é um recurso do Dataplex que permite rastrear como os dados se movem pelos sistemas: de onde vêm, de onde são passados, e quais transformações são aplicadas a ele.

Depois de ativar a linhagem de dados, as cargas de trabalho do Dataproc Serverless para Spark capturam eventos de linhagem e os publicam na API Data Lineage do Dataplex. Dataproc sem servidor para Spark integra-se à API Data Lineage por meio OpenLineage, usando o Plug-in do Spark do OpenLineage.

É possível acessar informações de linhagem com o Dataplex, usando Gráficos de visualização de linhagem e a API Data Lineage. Para mais informações, consulte Visualizar gráficos de linhagem no Dataplex.

Disponibilidade, recursos e limitações

A linhagem de dados do Spark, que inclui fontes de dados do BigQuery e do Cloud Storage, está disponível para cargas de trabalho executadas com o Dataproc Serverless compatível com versões de ambiente de execução do Spark, com as seguintes exceções e limitações:

  • A linhagem de dados do Spark não é fornecida para:
    • Cargas de trabalho da versão 1.2 do ambiente de execução Spark sem servidor do Dataproc
    • Cargas de trabalho de streaming do Spark
    • Conector do BigQuery versão 2 (API da fonte de dados do Spark versão 2)

Antes de começar

  1. Na página do seletor de projetos no console do Google Cloud, selecione o projeto a serem usadas nas cargas de trabalho do Dataproc sem servidor para Spark.

    Acessar o seletor de projetos

  2. Ative as APIs Data Lineage e Data Catalog.

    Ativar as APIs

Funções exigidas

Para ter as permissões necessárias para usar a linhagem de dados no Dataproc sem servidor para Spark, peça ao administrador para conceder a você estes papéis do IAM na conta de serviço da VM do cluster do Dataproc:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Ativar a linhagem de dados para uma carga de trabalho em lote do Spark

É possível ativar a linhagem de dados do Spark para uma carga de trabalho em lote definindo a propriedade spark.dataproc.lineage.enabled como true ao enviar a carga de trabalho.

Exemplo da Google Cloud CLI:

gcloud dataproc batches submit pyspark FILENAME.py
    --region=REGION \
    --version=1.1 \
    --properties=spark.dataproc.lineage.enabled=true \
    other args ...

Acessar gráficos de linhagem no Dataplex

Um gráfico de visualização de linhagem mostra as relações entre os recursos do projeto e os processos que os criaram. É possível conferir as informações de linhagem de dados em uma visualização de gráfico no console do Google Cloud ou extrair as informações da API Data Lineage como dados JSON.

Para mais informações, consulte Usar a linhagem de dados com os sistemas do Google Cloud .

Exemplo:

A carga de trabalho do Spark a seguir lê dados de uma tabela do BigQuery e grava a saída em outra tabela do BigQuery.

#!/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()

Esta carga de trabalho do Spark cria o seguinte gráfico de linhagem na interface do Dataplex:

Exemplo de gráfico de linhagem

A seguir