El linaje de datos es una función de Dataplex que te permite cómo se mueven los datos a través de tus sistemas: de dónde vienen, hacia dónde se pasan y qué transformaciones se le aplican.
El linaje de datos está disponible para todos los trabajos de Dataproc Spark excepto SparkR, con Dataproc Compute Engine 2.0.74+ y 2.1.22+ imágenes de contenedores. El linaje está disponible para los datos de BigQuery y Cloud Storage fuentes de datos.
Una vez que habilites la función en tu clúster de Dataproc, Los trabajos de Spark capturan eventos de linaje y los publican en Dataplex. API de Data Lineage. Dataproc se integra en la API de Data Lineage a través de OpenLineage, con el Complemento de OpenLineage Spark.
Puedes acceder a la información del linaje a través de Dataplex con lo siguiente:
Limitaciones
El linaje no es compatible con lo siguiente:
- Versión 2 del conector de BigQuery (versión 2 de la API de fuente de datos de Spark)
- Carga de trabajo de transmisión de Spark
Antes de comenzar
En la página del selector de proyectos de la consola de Google Cloud, elige el proyecto que contiene el clúster de Dataproc del que quieres hacer un seguimiento y el linaje de datos.
Habilitar la API de Data Lineage y la API de Data Catalog
Roles obligatorios
A fin de obtener los permisos que necesitas para usar el linaje de datos en Dataproc, solicita a tu administrador que te otorgue el siguientes roles de IAM en la cuenta de servicio de la VM del clúster de Dataproc:
-
Visualiza la visualización del linaje en Data Catalog o para usar la API de Data Lineage:
Visualizador de linaje de datos (
roles/datalineage.viewer
) -
Produce el linaje de forma manual con la API:
Productor de eventos de linaje de datos (
roles/datalineage.producer
) -
Edita el linaje con la API:
Editor de linaje de datos (
roles/datalineage.editor
) -
Realiza todas las operaciones sobre el linaje:
Administrador de linaje de datos (
roles/datalineage.admin
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Habilita el linaje de datos en Dataproc
Habilitar el linaje a nivel del clúster para que todos los trabajos de Spark enviados en los informes del clúster sobre el linaje a la API de Data Lineage.
Crea un clúster de Dataproc
Crea un clúster de Dataproc
con la propiedad dataproc:dataproc.lineage.enabled
configurada como 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
Enviar un trabajo de Spark
Cuando envías un trabajo de Spark en un clúster de Dataproc que se creó con el linaje habilitado Dataproc captura e informa la información del linaje al API de Data Lineage.
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
Las propiedades spark.openlineage.namespace
y spark.openlineage.appName
son
son opcionales y se usan para identificarlo de manera única. Si no apruebas estos
propiedades, Dataproc usa los siguientes valores predeterminados:
- Valor predeterminado para
spark.openlineage.namespace
: PROJECT_ID - Valor predeterminado para
spark.openlineage.appName
:spark.app.name
Ver gráficos de linaje en Dataplex
Un gráfico de visualización del linaje muestra las relaciones entre tu proyecto recursos y los procesos que los crearon. Puedes ver el linaje de datos información en forma de visualización gráfica en la consola de Google Cloud y recuperarlos desde la API de Data Lineage en forma de datos JSON.
Para obtener más información, consulta Visualiza gráficos de linaje en la IU de Dataplex.
Ejemplo
Considera el siguiente trabajo de Spark que lee datos de un BigQuery y escribe en otra tabla de 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()
Este trabajo de Spark crea el siguiente gráfico de linaje en la IU de Dataplex:
Inhabilita el linaje de datos en Dataproc
Después de habilitar el linaje cuando creas un clúster, puedes
no puede inhabilitar el linaje a nivel del clúster. Para inhabilitar el linaje en un
clúster de Dataproc, vuelve a crear el clúster sin el
dataproc:dataproc.lineage.enabled
.
Para inhabilitar el linaje para un trabajo específico en un clúster que se creó con
linaje habilitado, debes pasar la propiedad spark.extraListeners
con un campo
cuando envíes el trabajo.
¿Qué sigue?
- Obtén más información sobre el linaje de datos.