Linhagem de dados do Spark

Visão geral

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

Depois que você ativar a linhagem de dados, o Dataproc sem servidor para cargas de trabalho do Spark captura eventos de linhagem e os publica na API Data Lineage do Dataplex. O Dataproc Serverless para Spark é integrado à API Data Lineage por meio do 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 o BigQuery e as fontes de dados do Cloud Storage, está disponível para cargas de trabalho executadas com versões compatíveis do ambiente de execução do Dataproc sem servidor para Spark, com as seguintes exceções e limitações:

  • A linhagem de dados 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
    • Versão 2 do conector do BigQuery (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 ser usado para as 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 receber 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ê os seguintes papéis do IAM na conta de serviço da VM do cluster do Dataproc:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível receber as permissões necessárias com papéis personalizados ou 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 exibe as relações entre os recursos do projeto e os processos que os criaram. É possível acessar as informações da linhagem de dados em uma visualização de gráfico no console do Google Cloud ou recuperar as informações da API Data Lineage como dados JSON.

Para mais informações, acesse 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 uma tabela diferente 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