Usar el linaje de datos en Dataflow

El linaje de los datos es una función de Dataflow que te permite monitorizar cómo se mueven los datos por tus sistemas: de dónde proceden, a dónde se transfieren y qué transformaciones se les aplican.

Cada flujo de procesamiento que ejecutas con Dataflow tiene varios recursos de datos asociados. El linaje de un recurso de datos incluye su origen, lo que le ocurre y dónde se mueve con el tiempo. Con el linaje de datos, puede hacer un seguimiento del movimiento de extremo a extremo de sus recursos de datos, desde el origen hasta el destino final.

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

Para acceder a la información del linaje a través de Dataplex Universal Catalog, consulta Usar el linaje de datos con los sistemas de Google Cloud Platform.

Antes de empezar

Configura tu proyecto:

  1. Sign in to your Google Cloud Platform account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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

  6. En Dataflow, también debes habilitar el linaje a nivel de tarea. Consulta Habilitar 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 del linaje, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

    Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

    También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

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

    Compatibilidad y limitaciones

    El linaje de datos de 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 en cada trabajo.
    • La recogida de datos no es instantánea. Los datos de linaje de las tareas de Dataflow pueden tardar unos minutos en aparecer en Dataplex Universal Catalog.
    • Se admiten los siguientes orígenes y receptores:

      • Apache Kafka
      • BigQuery (las tareas de streaming en Python usan el método antiguo STREAMING_INSERT, que no admite el linaje de datos. Para usar el linaje de datos, cambia al método STORAGE_WRITE_API recomendado. Para obtener más información, consulta el artículo sobre cómo escribir datos de Dataflow en BigQuery.
      • Bigtable
      • Cloud Storage
      • JDBC (Java Database Connectivity)
      • Pub/Sub
      • Spanner (no se admite el flujo de cambios)

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

    Habilitar el linaje de datos en Dataflow

    Debes habilitar el linaje a nivel de tarea. Para habilitar el linaje de datos, usa la enable_lineage opción de servicio de 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 comando gcloud dataflow jobs run con la opción additional-experiments. Si usas plantillas Flex, utiliza el comando gcloud dataflow flex-template run.

    --additional-experiments=enable_lineage=true
    

    Opcionalmente, puede especificar uno o ambos de los siguientes parámetros con la opción de servicio:

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

    Especifique 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
    

    Ver el linaje en Dataplex Universal Catalog

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

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

    Inhabilitar el linaje de datos en Dataflow

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

    Facturación

    Usar el linaje de datos en Dataflow no afecta a tu factura de Dataflow, pero puede incurrir en cargos adicionales en tu factura de Dataplex Universal Catalog. Para obtener más información, consulta las consideraciones sobre el linaje de datos y los precios de Dataplex Universal Catalog.

    Siguientes pasos