Acerca del linaje de datos

El linaje de datos es un mapa visual que rastrea todo el ciclo de vida de tus datos. Te muestra de dónde provienen tus datos (el origen), a dónde viajan (los destinos) y todos los cambios o transformaciones que ocurren en el camino.

Puedes ver este mapa completo del recorrido de tus datos directamente en la consola deGoogle Cloud para los recursos creados en productos como Knowledge Catalog (antes llamado Dataplex Universal Catalog), BigQuery (incluidas las tablas externas creadas para Iceberg REST Catalog) y Vertex AI. Dado que los flujos de trabajo suelen abarcar varias regiones, Knowledge Catalog admite el linaje multirregional, que proporciona una vista unificada del recorrido de tus datos en el ecosistema global de Google Cloud . Los usuarios avanzados también pueden recuperar esta información con la API de Data Lineage.

Por qué necesitas el linaje de datos

Las empresas modernas transfieren y cambian grandes cantidades de datos constantemente. Por ejemplo, transformar las compras sin procesar de los clientes en informes, paneles y modelos de aprendizaje automático Esta complejidad genera desafíos críticos para tu equipo:

  • Confianza y verificación A menudo, los usuarios de datos tienen dificultades para confirmar que los informes y las cifras que ven son precisos y provienen de una fuente confiable.

  • Solución de problemas Cuando aparece un error en un informe final, es posible que los equipos de datos tengan dificultades y les lleve mucho tiempo rastrear el problema en cada paso hasta su causa raíz.

  • Administración de cambios Antes de cambiar o borrar un dato (como una columna en una tabla), los equipos deben conocer cada informe o modelo descendente que dependa de él para evitar que se interrumpan los sistemas críticos.

  • Cumplimiento. Los líderes deben tener visibilidad sobre cómo se usan los datos sensibles (como la información financiera o de los clientes) en toda la organización para cumplir con los requisitos reglamentarios.

El linaje de datos resuelve estos problemas, ya que proporciona un recorrido claro, visual y documentado de tus datos. Esto te permite comprender las fuentes de datos, rastrear errores, evaluar el impacto de los cambios y mantener el cumplimiento.

Cómo funciona el linaje de datos

El flujo de trabajo del linaje de datos incluye los siguientes pasos:

  1. Fuentes de datos y transferencia: La información del linaje de tus fuentes de datos inicia todo el proceso.

    • Google Cloud servicios: Cuando la API de Data Lineage está habilitada, los servicios compatibles, como BigQuery y Dataflow, informan automáticamente los eventos de linaje cada vez que se mueven o transforman los datos.

    • Fuentes personalizadas: Para cualquier sistema que no sea compatible automáticamente con lasGoogle Cloud integraciones, puedes usar la API de Data Lineage para registrar manualmente la información de linaje. Te recomendamos que importes eventos con el formato del estándar de OpenLineage.

  2. Plataforma de linaje: Esta plataforma central ingiere, modela y almacena todos los datos de linaje.

    • API de Data Lineage: Esta API actúa como el único punto de entrada para toda la información de linaje entrante. Utiliza un modelo de datos jerárquico que consta de tres conceptos principales: proceso, ejecución y evento.

    • Procesamiento y almacenamiento: La plataforma procesa los datos entrantes y los almacena en bases de datos confiables y optimizadas para consultas.

  3. Experiencia del usuario: Puedes interactuar con la información de linaje almacenada de dos maneras principales:

    • Exploración visual: En la consola de Google Cloud , un servicio de frontend recupera y renderiza los datos de linaje como un gráfico o una lista interactivos. Esto se admite para Knowledge Catalog, BigQuery, Lakehouse para Apache Iceberg (para tablas del catálogo de REST de Iceberg), la capa física (Cloud Storage) y Vertex AI (para modelos, conjuntos de datos, a través de canalizaciones; y vistas de Feature Store y grupos de atributos). Esto es ideal para explorar visualmente el recorrido de tus datos.

    • Acceso programático: Con un cliente de API, puedes comunicarte directamente con la API de Data Lineage para automatizar la administración del linaje. Esto te permite escribir información del linaje desde fuentes personalizadas. También te permite leer y consultar los datos de linaje almacenados para usarlos en otras aplicaciones o para crear informes personalizados.

¿Qué método debo usar para el linaje de datos?

Para realizar búsquedas inmediatas de un solo nivel, usa el método SearchLinks. Para compilar un gráfico de linaje completo o realizar un análisis de impacto detallado (hasta 100 niveles), usa el método SearchLineageStreaming.

Según tu caso de uso, selecciona el método más adecuado:

Función SearchLinks SearchLineageStreaming
Profundidad 1 nivel (vecinos inmediatos) Hasta 100 niveles
Ejecución Síncrona Transmisión en tiempo real
Caso práctico Búsquedas simples de fuentes o destinos directos Crear un gráfico de linaje completo o realizar un análisis de impacto

Identificar la dirección

  • Upstream (orígenes):
    • En SearchLinks, establece el campo target en el FQN de tu activo.
    • En SearchLineageStreaming, establece direction en UPSTREAM.
  • Downstream (Destinations):
    • En SearchLinks, establece el campo source en el FQN de tu activo.
    • En SearchLineageStreaming, establece direction en DOWNSTREAM.

Modelo de información del linaje de datos

El linaje es un registro de datos que se transforman de las fuentes a los destinos. La API de Data Lineage recopila esta información y la organiza en un modelo de datos jerárquico que usa los conceptos de procesos, ejecuciones y eventos.

Concepto Descripción
Proceso Es una definición de transformación de datos.
Ejecutar Es la ejecución de un proceso.
Evento Es un registro del movimiento de datos durante una ejecución.

¿Qué es un proceso de linaje?

Un proceso es la definición de una operación de transformación de datos para un sistema específico. En el caso del linaje de BigQuery, un proceso es un trabajo de un tipo de trabajo compatible. Todas las ejecuciones de la misma consulta en SQL se vinculan a un solo proceso, lo que te permite hacer un seguimiento de cada instancia en la que se usa una lógica de transformación específica.

Por ejemplo, la siguiente consulta en SQL es un proceso. Esta consulta crea una tabla que cuenta la cantidad total de viajes para cada proveedor a partir de dos tablas de origen.

  CREATE TABLE `dataplex-docs.data_lineage_demo.total_green_trips_22_21`
  AS
  SELECT
      vendor_id,
      COUNT(*) AS number_of_trips
  FROM
      (
          SELECT vendor_id
          FROM `dataplex-docs.data_lineage_demo.nyc_green_trips_2022`
          UNION ALL
          SELECT vendor_id
          FROM `dataplex-docs.data_lineage_demo.nyc_green_trips_2021`
      )
  GROUP BY
      vendor_id;

El formato del nombre del recurso REST para un proceso es projects/PROJECT_NUMBER/locations/LOCATION/processes/PROCESS_ID.

Por ejemplo: projects/123456789123/locations/us/processes/sh-0548bbf4ff3c8072a6c7372ba1acafb6

Para obtener más información sobre el recurso process, consulta la referencia del recurso Process.

¿Qué es una ejecución de linaje?

Una ejecución es una sola ejecución de un proceso. Los procesos pueden tener varias ejecuciones.

Cada ejecución es una operación única que se caracteriza por un startTime, un endTime y un estado final, como COMPLETED, FAILED o ABORTED.

Por ejemplo, ejecutar la consulta en SQL de la sección Proceso a las 9:00 a.m. crea una ejecución específica. Si vuelves a ejecutar la misma consulta a las 10:00 a.m., se creará una ejecución nueva y distinta. Ambas ejecuciones están vinculadas al mismo proceso principal.

El formato del nombre del recurso de REST para una ejecución muestra que es secundario de un proceso: projects/PROJECT_NUMBER/locations/LOCATION/processes/PROCESS_ID/runs/RUN_ID.

Por ejemplo: projects/123456789123/locations/us/processes/sh-0548bbf4ff3c8072a6c7372ba1acafb6/runs/83dd03a51cd2ac80f465c9e267a950b1

Para obtener más información sobre el recurso run, consulta la referencia del recurso Run.

¿Qué es un evento de linaje?

Un evento representa un punto en el tiempo en el que una transformación de datos mueve datos entre una entidad de origen y una de destino. Un evento es un registro detallado de un movimiento de datos específico que conecta las tablas de origen y destino para una ejecución específica. Un evento también puede tener varias fuentes y destinos.

Por ejemplo, si tu ejecución ejecuta la consulta en SQL que se analiza en la sección Proceso, un evento de linaje registra que las tablas de origen nyc_green_trips_2021 y nyc_green_trips_2022 se usan para crear la tabla de destino total_green_trips_22_21.

Un evento de linaje contiene una lista de vínculos que definen la fuente y el destino. Los eventos se usan para crear gráficos de linaje. Si bien la Google Cloud consola presenta estos gráficos de linaje, no muestra directamente los eventos individuales. Puedes crear, leer y borrar eventos, pero no actualizarlos, con la API de Data Lineage.

Cada vínculo dentro de un evento define una sola ruta de flujo de datos desde una entidad de origen a una entidad de destino. Una entidad es una referencia a un activo de datos, como una tabla de BigQuery, y se identifica por su nombre completamente calificado (FQN). Un solo evento puede contener varios vínculos, lo que es común en operaciones como las uniones de tablas, en las que varias fuentes contribuyen a un solo destino.

Para obtener detalles sobre cómo los eventos admiten el linaje a nivel de la columna, consulta Linaje a nivel de la columna.

¿Qué fuentes de datos se admiten para el linaje de datos?

Puedes propagar la información de linaje en Knowledge Catalog de las siguientes maneras:

  • Automáticamente desde servicios Google Cloud integrados
  • Manualmente, con la API de Data Lineage para fuentes personalizadas
  • Importando eventos de OpenLineage

BigQuery

Cuando habilitas el linaje de datos en tu proyecto de BigQuery, Knowledge Catalog registra automáticamente la información del linaje para lo siguiente:

Los trabajos de copia, consulta y carga de BigQuery se representan como procesos.

Para ver los detalles del proceso, haz clic en el ícono de Detalles del proceso Detalles del proceso en el gráfico de linaje.

Cada proceso contiene el job_id de BigQuery en la lista de atributos del trabajo de BigQuery más reciente.

Otros servicios

El linaje de datos admite la integración con los siguientesGoogle Cloud servicios:

  • Cloud Data Fusion

    No puedes restringir el seguimiento del linaje solo a Cloud Data Fusion cuando la API de Data Lineage está habilitada en un proyecto.

  • Dataflow

    Puedes capturar eventos de linaje con trabajos de Dataflow y publicarlos en la API de Data Lineage.

  • Tablas del catálogo de REST de Lakehouse para Iceberg

  • Looker (Google Cloud Core) (Versión preliminar)

    Se admite la visualización de metadatos de Looker (Google Cloud Core) desde fuentes de BigQuery con el linaje de datos. El linaje de datos debe habilitarse a nivel del recurso de Looker (Google Cloud Core) y a nivel del servicio de linaje de datos.

  • Managed Service para Apache Airflow

    Airflow administrado usa el control de integración del linaje de datos a nivel del entorno. El linaje de datos se habilita automáticamente para todos los entornos nuevos de Managed Airflow que cumplen con los requisitos. En el caso de los entornos existentes, usa la configuración del entorno para habilitar o inhabilitar la integración del linaje de datos. Puedes configurar la transferencia de metadatos de linaje de datos para Managed Airflow y, así, habilitar o desactivar la transferencia automática de metadatos de linaje de datos.

  • Managed Service para Apache Spark: Clústeres de Apache Hive

    Puedes capturar eventos de linaje con trabajos de Hive de Managed Service para Apache Spark y publicarlos en la API de Data Lineage. Puedes configurar la transferencia de metadatos de linaje de datos para Managed Service para Apache Spark para habilitar o desactivar la transferencia automática de metadatos de linaje de datos.

  • Managed Service para Apache Spark: Clústeres de Apache Spark

    Puedes capturar eventos de linaje con trabajos de Spark de Managed Service para Apache Spark y publicarlos en la API de Data Lineage. Puedes configurar la transferencia de metadatos de linaje de datos para Managed Service para Apache Spark para habilitar o desactivar la transferencia automática de metadatos de linaje de datos.

  • Managed Service para Apache Spark: implementación sin servidores

    Puedes capturar eventos de linaje con trabajos sin servidores de Managed Service para Apache Spark y publicarlos en la API de Data Lineage. Puedes configurar la transferencia de metadatos de linaje de datos para Managed Service para Apache Spark para habilitar o desactivar la transferencia automática de metadatos de linaje de datos.

  • Vertex AI Feature Store

    El linaje de datos hace un seguimiento de los metadatos de las vistas del almacén de atributos y los grupos de atributos.

  • Vertex AI Pipelines

    El linaje de datos se habilita automáticamente para las canalizaciones de Vertex AI Pipelines, y realiza un seguimiento de los artefactos de entrada y los parámetros de ejecución (como modelos, conjuntos de datos y componentes), así como de los activos derivados posteriores.

Linaje de datos para fuentes de datos personalizadas

Puedes usar la API de Data Lineage para registrar manualmente la información de linaje de cualquier fuente de datos que los sistemas integrados no admitan, como bases de datos externas o canalizaciones locales. Knowledge Catalog puede crear gráficos de linaje para el linaje registrado manualmente si usas un fullyQualifiedName que coincida con los nombres completamente calificados de las entradas existentes de Knowledge Catalog. Si deseas registrar el linaje de una fuente de datos personalizada, primero debes crear una entrada personalizada.

Cada proceso de una fuente de datos personalizada puede contener una clave sql en la lista de atributos. El valor de esta clave se usa para renderizar un resaltado de código en el panel de detalles del gráfico de linaje de datos. La instrucción de SQL se muestra tal como se proporcionó. Eres responsable de filtrar la información sensible. El nombre de la clave sql distingue mayúsculas de minúsculas.

Por ejemplo, una carga útil de recursos de proceso con un atributo sql personalizado:

{
  "displayName": "custom-sql-query",
  "attributes": {
    "sql": "SELECT user_id, SUM(amount) FROM `project.dataset.purchases` GROUP BY user_id"
  }
}

Para obtener más información, consulta Cómo hacer un seguimiento de la información del linaje del sistema externo.

OpenLineage

Si ya usas OpenLineage para recopilar información de linaje de otras fuentes de datos, puedes importar eventos de OpenLineage a Knowledge Catalog y verlos en la consola de Google Cloud . Para obtener más información, consulta Integración con OpenLineage.

Seguimiento automatizado del linaje de datos

Cuando habilitas la API de Data Lineage, Google Cloud los sistemas que admiten el linaje de datos comienzan a informar sobre su movimiento de datos. Cada sistema integrado puede enviar información del linaje para un rango diferente de fuentes de datos.

Controla la transferencia del linaje

Para administrar los costos y las políticas de administración, puedes activar o desactivar la generación de linaje para servicios Google Cloud específicos. Puedes configurar esta transferencia de forma centralizada a nivel de la organización, la carpeta y el proyecto. Durante la versión preliminar, esta función admite la configuración de la transferencia de metadatos de linaje para Managed Service para Apache Spark, BigQuery y Managed Service para Apache Airflow.

Knowledge Catalog evalúa la jerarquía de recursos (primero el proyecto, luego las carpetas y, por último, la organización) para determinar la configuración vigente. La primera configuración establecida de forma explícita en cualquier nivel de este recorrido ascendente entra en vigencia.

  • Si estableces una configuración a nivel del proyecto, Knowledge Catalog la usará.
  • Si no se establece ninguna configuración a nivel del proyecto, Knowledge Catalog usa la configuración de la carpeta principal más cercana con una configuración explícita.
  • Si no se establece ninguna configuración a nivel del proyecto o la carpeta, Knowledge Catalog usa la configuración a nivel de la organización.
  • Si no se establece ninguna configuración en ninguno de estos niveles, Knowledge Catalog usa la configuración predeterminada del sistema para la integración. La configuración predeterminada para habilitar el linaje puede ser Habilitado o Inhabilitado. Para Managed Service para Apache Spark, BigQuery y Managed Service para Apache Airflow, la transferencia de linaje está habilitada de forma predeterminada cuando la API de Data Lineage está activa.

Por ejemplo, considera una organización test-org con las siguientes configuraciones de linaje de Managed Service para Apache Spark:

  • Organización test-org: Habilitada
    • Carpeta folder-a: Inhabilitada
      • Proyecto project-a: No se estableció ninguna configuración
    • Carpeta folder-b: Habilitada
      • Proyecto project-b: Inhabilitado

En esta situación, se aplican los siguientes parámetros de configuración:

  • Para project-a, la transferencia de linaje está inhabilitada. Knowledge Catalog comienza la evaluación desde project-a, no encuentra ninguna configuración, sube a folder-a y aplica la configuración Inhabilitada de folder-a.
  • Para project-b, la transferencia de linaje está inhabilitada. Knowledge Catalog comienza la evaluación desde project-b y aplica su configuración Inhabilitado, lo que anula la configuración en folder-b y test-org.

Controlar la generación de datos de linaje te ayuda a administrar los costos y las políticas de administración. Por ejemplo, puedes inhabilitar la recopilación del linaje para proyectos de desarrollo o cargas de trabajo de gran volumen que no requieren el seguimiento del linaje.

Para obtener información sobre cómo configurar y controlar la transferencia de metadatos de linaje, consulta Controla la transferencia de metadatos de linaje para un servicio.

Linaje de datos multirregional

El linaje de datos es un servicio inherentemente regionalizado. Los metadatos de linaje, incluidos los vínculos, los procesos y los eventos, se registran y aíslan de forma segura dentro de la ubicación geográfica específica en la que se produce la transformación de datos o la modificación de activos subyacente.

A medida que se escalan las arquitecturas de datos empresariales modernas, los flujos de trabajo de canalización suelen cruzar los límites regionales y de proyectos. Por ejemplo, una canalización de transformación de BigQuery que se ejecuta en us-central1 podría leer una tabla de origen en us-east1 y generar métricas agregadas en un bucket de Cloud Storage ubicado en europe-west1.

Para establecer una vista integral de extremo a extremo del ciclo de vida de tus datos en estos espacios geográficos independientes, usa un método de búsqueda de linaje multirregional.

Para obtener más información, consulta Acerca de la búsqueda de linaje multirregional.

Consideraciones y limitaciones del linaje de datos

Cuando planifiques tu estrategia de gobierno de datos, ten en cuenta las siguientes integraciones de linaje, los parámetros de cumplimiento y las limitaciones del servicio.

Controles de linaje a nivel del producto

Cuando la API de Data Lineage está habilitada, los sistemas compatibles informan el linaje según sus controles a nivel del producto. Para obtener una lista completa de los sistemas compatibles y sus controles, consulta Sistemas compatibles con el linaje de datos.

Impacto en la facturación

Además de los precios estándar, ten en cuenta lo siguiente:

  • La API de Data Lineage se ejecuta por proyecto. Revisa el impacto en la facturación antes de habilitarla en los flujos de trabajo de proyectos con gran cantidad de datos.
  • En el caso de BigQuery Omni, el procesamiento del linaje se distribuye a regiones específicas, y los costos dependen de las regiones en las que se realiza el procesamiento.

Cumplimiento del linaje de datos

  • El linaje de datos registra metadatos sobre el movimiento de datos, pero no captura los datos en sí. Consulta el modelo de información del linaje de datos y la referencia de la API de Data Lineage para obtener detalles sobre qué campos se incluyen en los metadatos.
  • El linaje de datos como parte de Knowledge Catalog ofrece compatibilidad con VPC-SC.
  • Knowledge Catalog no ofrece la capacidad de usar claves de encriptación administradas por el cliente (CMEK) para proteger los metadatos de linaje recopilados.

Limitaciones del linaje de datos

El linaje de datos tiene las siguientes limitaciones:

  • Toda la información de linaje se conserva en el sistema solo durante 30 días.

  • La información de linaje persiste después de que borras la fuente de datos relacionada. Por ejemplo, si borras una tabla de BigQuery, puedes ver su linaje a través de la API y la consola durante un máximo de 30 días.

  • El linaje de datos no registra automáticamente la información del linaje directo para las rutinas de BigQuery. Si se usa una rutina en una consulta, el linaje de datos registra el linaje entre las tablas que la rutina lee como dependencias de las tablas que la consulta escribe.

Cuando seleccionas un nodo en el gráfico de linaje, el panel lateral de detalles del nodo está vacío en los siguientes casos:

  • El recurso se encuentra en otra organización.
  • El usuario no es miembro de la organización que aloja el recurso.

Limitaciones del linaje a nivel de la columna

El linaje a nivel de la columna tiene las siguientes limitaciones adicionales:

  • El linaje a nivel de la columna no se recopila para los trabajos de carga de BigQuery ni para las rutinas.

  • El linaje ascendente a nivel de la columna no se recopila para las tablas externas.

  • No se recopila el linaje a nivel de la columna si un trabajo crea más de 1,500 vínculos a nivel de la columna. En estos casos, solo se recopila el linaje a nivel de la tabla.

  • La compatibilidad con el linaje a nivel de la columna se limita a las columnas de nivel superior en las tablas de BigQuery. No se admiten los campos anidados dentro de tipos complejos (como STRUCT o JSON).

  • La función de búsqueda con el parámetro de campo solo opera en vínculos que definen explícitamente relaciones columna a columna. No devuelve resultados ni recorre vínculos que solo se definen a nivel de la tabla. No se admite la búsqueda entre vínculos a nivel de la tabla y vínculos a nivel de la columna (por ejemplo, encontrar todas las columnas relacionadas con un vínculo a nivel de la tabla o viceversa). La API solo devuelve vínculos en los que tanto la fuente como el destino especifican un campo.

  • La compatibilidad con las tablas particionadas es limitada, ya que las columnas de partición, como _PARTITIONDATE y _PARTITIONTIME, no se reconocen en el gráfico de linaje.

  • Limitaciones de la consola:

    • El recorrido del gráfico de linaje se limita a una profundidad de 20 niveles y 10,000 vínculos en cada dirección.

Precios

  • Knowledge Catalog usa el SKU de procesamiento premium para cobrar el linaje de datos. Para obtener más información, consulta Precios.

  • Para separar los cargos por linaje de datos de otros cargos en el SKU de procesamiento premium del Catálogo de Knowledge, en el informe de Facturación de Cloud, usa la etiqueta goog-dataplex-workload-type con el valor LINEAGE.

  • Si llamas a la API de Data Lineage Origin sourceType con un valor distinto de CUSTOM, se generan costos adicionales.

¿Qué sigue?