# Linaje de datos

> El mapa de dónde salió cada dato y de todo lo que depende de él.

- Nivel: Avanzado
- Temas: Datos
- URL: https://tidbit.legios.com.ar/es/data-lineage/
- En inglés: [Data lineage](https://tidbit.legios.com.ar/data-lineage/)

El **linaje de datos** (data lineage) es el registro de cómo se mueven y se transforman los datos: de qué fuentes se armó una tabla, qué procesos la modificaron y qué tablas, tableros y modelos la leen después. Casi siempre se dibuja como un grafo, con flechas que van de las fuentes crudas, a la izquierda, a los reportes, a la derecha.

Sirve para contestar dos preguntas que aparecen todas las semanas en un equipo de datos. Mirando hacia atrás: "este número de facturación está raro, ¿de dónde sale?". Mirando hacia adelante: "si le cambio el nombre a esta columna, ¿qué se rompe?". Sin linaje, las dos respuestas implican leer SQL y código de pipelines a mano. Con linaje, hacés clic en una tabla y ves sus ancestros y sus descendientes.

Puede ser a nivel de tabla (esta tabla alimenta a esa) o a nivel de columna (esta columna `amount` se calcula a partir de esas otras dos), que es mucho más preciso y mucho más difícil de capturar. Las herramientas actuales lo arman solas, analizando el SQL o haciendo que cada proceso informe qué leyó y qué escribió, muchas veces con el estándar abierto **OpenLineage**. dbt dibuja el linaje de sus modelos y los catálogos de datos lo muestran al lado de cada tabla. También importa para cumplir normas: si un cliente pide que borren sus datos, el linaje muestra todos los lugares adonde fueron a parar.

## Una analogía

La etiqueta de trazabilidad de la carne en el súper: te dice de qué campo, qué frigorífico y qué lote viene, y si un campo tiene un problema, el súper sabe exactamente qué bandejas sacar de la góndola.

## Para quedarse

- Hacia atrás explica de dónde sale un número; hacia adelante muestra qué rompe un cambio.
- El linaje por columna sirve más que el linaje por tabla, y cuesta más conseguirlo.
- Suele armarse solo, leyendo el SQL o con procesos que informan qué leen y qué escriben.
- OpenLineage es un estándar abierto para compartir linaje entre herramientas.

## Para seguir leyendo

- [Data lineage en Wikipedia (en inglés)](https://en.wikipedia.org/wiki/Data_lineage)
- [OpenLineage (estándar abierto, en inglés)](https://openlineage.io/)

## Términos relacionados

- [SQL](https://tidbit.legios.com.ar/es/sql/): El lenguaje para hacerle preguntas a una base de datos.
- [Estándar abierto](https://tidbit.legios.com.ar/es/open-standard/): Un reglamento técnico público que cualquiera puede seguir para que las marcas encajen.
- [dbt](https://tidbit.legios.com.ar/es/dbt/): Una herramienta para escribir transformaciones de datos en SQL, con tests, como software.
- [Catálogo de datos](https://tidbit.legios.com.ar/es/data-catalog/): Un inventario con buscador de los datos de una organización y qué significa cada uno.
