Usa el linaje de datos en Dataflow

El linaje de datos es una función de Dataflow que te permite hacer un seguimiento de cómo los datos se mueven a través de tus sistemas: de dónde provienen, a dónde se pasan y qué transformaciones se aplican a ellos.

Cada canalización que ejecutas con Dataflow tiene varios recursos de datos asociados. El linaje de un recurso de datos incluye su origen, lo que sucede con él y dónde se mueve con el tiempo. Con el linaje de datos, puedes hacer un seguimiento del movimiento de extremo a extremo de tus recursos de datos, desde el origen hasta el destino final.

Cuando habilitas el linaje de datos para tus trabajos de Dataflow, Dataflow captura eventos de linaje y los publica en la API de Data Lineage de Knowledge Catalog.

Para acceder a la información de linaje a través de Knowledge Catalog, consulta Usa el linaje de datos con Google Cloud sistemas.

Antes de comenzar

Haz lo siguiente para configurar tu proyecto:

  1. Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the Dataplex, BigQuery, and Data lineage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Dataplex, BigQuery, and Data lineage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

En Dataflow, también debes habilitar el linaje a nivel del trabajo. Consulta Habilita el linaje de datos en Dataflow en este documento.

Roles obligatorios

Para obtener los permisos que necesitas para ver los gráficos de visualización de linaje, pídele a tu administrador que te otorgue los siguientes roles de IAM:

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 a través de roles personalizados o cualquier otro rol predefinido.

Para obtener más información sobre los roles de linaje de datos, consulta Roles predefinidos para el linaje de datos.

Asistencia y limitaciones

El linaje de datos en Dataflow tiene las siguientes limitaciones:

  • El linaje de datos es compatible con las versiones 2.63.0 y posteriores del SDK de Apache Beam.
  • Debes habilitar el linaje de datos por trabajo.
  • La captura de datos no es instantánea. Los datos de linaje del trabajo de Dataflow pueden tardar unos minutos en aparecer en Knowledge Catalog.
  • Se admiten las siguientes fuentes y receptores:

    • Apache Kafka
    • BigQuery (los trabajos de transmisión en Python usan el método heredado STREAMING_INSERT, que no admite el linaje de datos. Para usar el linaje de datos, cambia a el método recomendado STORAGE_WRITE_API. Para obtener más información, consulta Escribe desde Dataflow en BigQuery).
    • Bigtable
    • Cloud Storage
    • JDBC (Java Database Connectivity)
    • Pub/Sub
    • Spanner (no se admite Change Stream)

    Las plantillas de Dataflow que usan estas fuentes y receptores también capturan y publican automáticamente eventos de linaje.

Habilita el linaje de datos en Dataflow

Debes habilitar el linaje a nivel del trabajo. Para habilitar el linaje de datos, usa la opción de servicio enable_lineage Dataflow de la siguiente manera:

Java

--dataflowServiceOptions=enable_lineage=true

Python

--dataflow_service_options=enable_lineage=true

Go

--dataflow_service_options=enable_lineage=true

gcloud

Usa el gcloud dataflow jobs run comando con la opción additional-experiments. Si usas plantillas flexibles, usa el gcloud dataflow flex-template run comando.

--additional-experiments=enable_lineage=true

De manera opcional, puedes especificar uno o ambos de los siguientes parámetros con la opción de servicio:

  • process_id: Es un identificador único que Knowledge Catalog usa para agrupar las ejecuciones de trabajos. Si no se especifica, se usa el nombre del trabajo.
  • process_name: Es un nombre legible para el proceso de linaje de datos. Si no se especifica, se usa el nombre del trabajo con el prefijo "Dataflow ".

Especifica estas opciones de la siguiente manera:

Java

--dataflowServiceOptions=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME

Python

--dataflow_service_options=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME

Go

--dataflow_service_options=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME

gcloud

--additional-experiments=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME

Visualiza el linaje en Knowledge Catalog

El linaje de datos proporciona información sobre las relaciones entre los recursos de tu proyecto y los procesos que los crearon. Puedes ver la información del linaje de datos en la Google Cloud consola en forma de gráfico o de una sola tabla. También puedes recuperar información del linaje de datos de la API de Data Lineage en forma de datos JSON.

Para obtener más información, consulta Usa el linaje de datos con Google Cloud sistemas.

Inhabilita el linaje de datos en Dataflow

Si el linaje de datos está habilitado para un trabajo específico y deseas inhabilitarlo, cancela el trabajo existente y ejecuta una versión nueva del trabajo sin la opción de servicio enable_lineage.

Facturación

El uso del linaje de datos en Dataflow no afecta tu factura de Dataflow, pero puede generar cargos adicionales en tu factura de Knowledge Catalog. Para obtener más información, consulta Consideraciones sobre el linaje de datos y Precios de Knowledge Catalog.

¿Qué sigue?