Acerca del linaje de datos

El linaje de datos 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.

¿Por qué necesitas el linaje de datos?

Trabajar con conjuntos de datos grandes a menudo implica transformar los datos en entidades adaptadas a las necesidades de un proyecto específico: archivos de texto, tablas, informes, paneles, modelos.

Por ejemplo, imagina que tienes una tienda en línea en la que registras cada compra en una sola tabla de SQL. Para que a tus analistas les resulte más fácil trabajar con los datos, comienzas a ejecutar trabajos que extraen información de esta única tabla y producen tablas más pequeñas por región, marca o precio de venta. Luego, tus analistas comienzan a hacer lo mismo: realizan más transformaciones y combinan estas tablas más pequeñas con otras fuentes de datos para producir aún más tablas.

Esto puede convertirse en un gran desafío para tus interesados:

  • Los consumidores de datos no pueden usar una herramienta de autoservicio para saber si los datos provienen de una fuente autorizada.
  • Los ingenieros de datos no pueden determinar la causa raíz de los problemas debido a la falta de una forma confiable de hacer un seguimiento de todas las transformaciones de datos.
  • Los ingenieros y analistas de datos no pueden evaluar por completo el posible impacto antes de modificar o borrar tablas.
  • Los administradores de datos no pueden comprender cómo se usan los datos sensibles en toda la organización ni verificar el cumplimiento de los requisitos reglamentarios.

El linaje de datos es una solución que proporciona una forma práctica de hacer lo siguiente:

  • Comprende cómo se originan y transforman los datos con la ayuda de gráficos de linaje.
  • Rastrear los errores relacionados con las entradas y las operaciones de datos hasta sus causas raíz
  • Mejora la administración de cambios a través del análisis de impacto: Evita el tiempo de inactividad o los errores inesperados, comprende las entradas dependientes y colabora con las partes interesadas pertinentes.

Modelo de información del linaje de datos

En su forma básica, el linaje es un registro de los datos que se transforman de fuentes a destinos. La API de Data Lineage recopila esa información y la organiza en un modelo de datos jerárquico con los conceptos de procesos, ejecuciones y eventos.

Proceso

Un proceso es la definición de una operación de transformación de datos admitida para un sistema específico. En el contexto del linaje de BigQuery, un process es uno de los tipos de trabajos admitidos.

Ejecutar

Una ejecución corresponde a la realización de un proceso. Los procesos pueden tener varias ejecuciones. Las ejecuciones contienen detalles como las horas de inicio y finalización, el estado o atributos adicionales. Para obtener más información, consulta la referencia del recurso run.

Evento

Un evento representa un punto en el tiempo en el que se llevó a cabo una operación de transformación de datos y generó el movimiento de datos entre una entidad de origen y una de destino.

Los eventos contienen una lista de vínculos que definen qué entrada fue la fuente y cuál fue el destino en un evento en particular. Si bien los eventos se usan para calcular los gráficos de linaje, no se exponen directamente en la consola de Google Cloud . Puedes crearlos, leerlos y borrarlos (pero no actualizarlos) con la API de Data Lineage.

Ejemplo

Considera el siguiente ejemplo en el que se copian datos entre tablas de BigQuery:

El ejemplo extrae datos de las tablas llamadas customer_year y customers para derivar una tabla llamada top_customer.
Ejemplo de un gráfico que muestra las fuentes de datos de la tabla.

El proceso de linaje (representado en el gráfico con el ícono Ícono del proceso de linaje de BigQuery.) describe cómo se transfieren los datos entre las tablas: podría ser una consulta CREATE TABLE AS SELECT de SQL o una instrucción INSERT.

Cada ejecución de esa instrucción de SQL constituiría una ejecución individual. Las ejecuciones contienen eventos que registran qué tablas se usaron como fuentes y cuáles como destinos. En este ejemplo, las tablas customer_year y customers son la fuente de la tabla top_customer destino.

Gráfico de linaje

Los gráficos de linaje representan la información recopilada por la API de Data Lineage para una entrada específica de Dataplex Universal Catalog. Un gráfico de linaje muestra el linaje que se encuentra upstream o downstream de una sola entrada raíz. Root hace referencia a la entrada para la que ves el linaje.

El gráfico de ejemplo muestra datos de dos tablas que se transforman y, luego, se combinan en una tabla nueva, con un panel de detalles que muestra el código SQL anclado en la parte inferior.
Ejemplo de un gráfico de linaje en la consola de Google Cloud .

Dataplex Universal Catalog funciona con la API de Data Lineage para identificar las entradas cuyo nombre completamente calificado coincide con las entidades reconocidas por el linaje de datos. En el caso de las entradas coincidentes de Dataplex Universal Catalog, puedes acceder a la pestaña Linaje en su página de detalles y ver el gráfico.

Los gráficos de linaje muestran dos tipos de elementos:

  • Botones rectangulares anchos que representan entidades involucradas en la construcción de información de linaje como fuentes o destinos de un evento de linaje.

  • Botones cuadrados más pequeños que representan los procesos responsables de crear o actualizar las entidades de origen o destino. Los botones de proceso usan íconos específicos del sistema fuente que los informó a la API de Data Lineage. Por ejemplo, los trabajos de BigQuery usan el ícono Ícono del proceso de linaje de BigQuery..

Visualización de la ruta de linaje

Las visualizaciones de rutas de linaje te ayudan a comprender los vínculos de linaje entre dos recursos seleccionados. (Contrasta esto con el gráfico de linaje, que muestra el linaje upstream o downstream de una sola entrada raíz, potencialmente para varias fuentes o destinos).

Elige el recurso raíz y un recurso objetivo, y la consola deGoogle Cloud mostrará los vínculos de linaje entre los dos recursos. Otros recursos y procesos que no se encuentran en una ruta entre los dos recursos se ocultan de la visualización de la ruta.

Ejemplo de la visualización de la ruta de linaje en la consola de Google Cloud .
Ejemplo de una visualización de ruta de linaje en la consola de Google Cloud .

Vista de lista de linaje

En la vista de lista de linaje, se muestra información detallada sobre el linaje de las entidades en una sola tabla.

En comparación con el gráfico de linaje, que es mejor para ver gráficos de linaje relativamente pequeños, la vista de lista de linaje te permite ver información de linaje para entidades con muchas conexiones.

En la siguiente imagen, se muestra un ejemplo de la vista de lista de linaje en la consola deGoogle Cloud . En la siguiente lista, se describe la imagen con más detalle.

Ejemplo de la vista de lista del linaje en la consola de Google Cloud .
Ejemplo de una vista de lista de linaje en la consola de Google Cloud .
  • Cada fila de la tabla representa una sola vinculación del linaje entre dos entradas. En el gráfico, estos nombres se representan como los vínculos de linaje entre dos entradas, incluidos los nodos de proceso intermedios. Por ejemplo, Source y Target son nodos de activos, con posiblemente varios nodos de proceso entre ellos.

  • La opción Dirección especifica la parte del flujo de datos que se mostrará en la lista, en relación con el activo raíz:

    • Upstream: Muestra información de linaje para las entradas que son fuentes de datos de la entrada seleccionada. En el gráfico de linaje, estas entradas son las que aparecen a la izquierda de la entrada seleccionada.

    • Downstream: Muestra información de linaje para las entradas que usan la entrada seleccionada o se derivan de ella. En el gráfico de linaje, estas entradas son las que aparecen a la derecha de la entrada seleccionada.

  • La opción Intervalo de tiempo te permite filtrar la información del linaje según el momento en que ocurrió:

    • Hora de inicio: Muestra el linaje que ocurrió después de la hora de inicio.

    • Hora de finalización: Muestra el linaje que ocurrió antes de la hora de finalización.

  • Profundidad hace referencia a qué tan alejado del recurso raíz se encuentra un recurso fuente o derivado. La vista de lista muestra hasta 1,000 vínculos de linaje, con una profundidad máxima de 10 vínculos de linaje desde la raíz. Si hay algún linaje fuera de este rango, recibirás una notificación. Para ver el linaje fuera de este rango, selecciona el nombre de otra entidad en la vista de lista.

  • En el panel Detalles, se muestra información sobre la fuente del vínculo, el destino del vínculo y todos los procesos que crearon este vínculo.

  • Puedes personalizar las columnas que se muestran en la tabla y filtrar los resultados. También puedes exportar los resultados a un archivo CSV.

Seguimiento automatizado del linaje de datos

Cuando habilitas la API de Data Lineage,los sistemas Google Cloud que admiten el linaje de datos comienzan a informar sobre el movimiento de sus datos. Cada sistema integrado puede enviar información del linaje para un rango diferente de fuentes de datos. Para obtener más información sobre cada producto compatible, consulta las siguientes secciones.

BigQuery

Si habilitas el linaje de datos en tu proyecto de BigQuery, el catálogo universal de Dataplex puede registrar 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 en el gráfico de linaje. Cada proceso contiene el job_id de BigQuery en la lista de atributos para el trabajo de BigQuery más reciente.

Otros servicios

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

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 no sea compatible con los sistemas integrados.

Dataplex Universal 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 Dataplex Universal Catalog. Si deseas registrar el linaje de una fuente de datos personalizada, primero crea una entrada personalizada.

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

OpenLineage

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

Limitaciones

  • Toda la información del linaje se conserva en el sistema durante solo 30 días.
  • La información de linaje persiste después de que quitas su fuente de datos relacionada. Es decir, si quitas una tabla de BigQuery y su entrada de Dataplex Universal Catalog, aún puedes leer el linaje de esa tabla con la API durante un máximo de 30 días.

Accede al linaje de datos

Para obtener más información sobre cómo acceder al linaje de datos, consulta Usa el linaje de datos con sistemas de Google Cloud y la API de Data Lineage.

Precios

  • Dataplex Universal 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 del linaje de datos de otros cargos en el SKU de procesamiento premium de Dataplex Universal Catalog, 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?