Linaje de datos
El linaje de datos muestra, para cada columna que ha escrito un job, de dónde
salieron los datos, qué regla los cambió y dónde acabaron. Sirve para responder
preguntas como "¿qué función se aplicó a customers.email en el dataset que
enviamos a QA?" o "¿qué columnas del tap de producción se sobreescribieron con
datos anonimizados?".
Gigantics captura el linaje automáticamente. No hay nada que configurar: ejecuta un job y su linaje aparece.
Los nodos del camino de los datos (Tap, Entity, Rule, Dataset, Sink, Original Tap) y los nombres de las opciones de Detalles de la transformación se muestran en inglés también en la interfaz en español.
Dónde encontrarlo
Hay dos vistas de los mismos datos:
| Vista | Menú | Qué muestra |
|---|---|---|
| Proyecto | Linaje de datos (Data Lineage), en el menú del proyecto entre Sinks y Entornos | El linaje de todos los modelos del proyecto |
| Modelo | Linaje de datos, en el menú del modelo después de Auditoría | Solo el linaje del modelo actual |
La página del proyecto se titula Linaje de datos, con el subtítulo Siga el
camino de los datos desde el origen hasta el destino. La del modelo muestra
Linaje de datos del modelo <nombre>.
Qué se captura
El linaje se registra cuando un job se completa. Si falla alguna entidad, el job falla y no se registra nada, aunque se lanzara con Continuar reportando después de fallar (ver Nuevo job): esa opción deja seguir a las demás entidades, pero el job termina igualmente como fallido. El linaje del destino se queda como estaba antes del job. Cuando el job se reanuda o se vuelve a lanzar y se completa, se registra su linaje. Un problema al registrar el linaje solo se escribe en el log del servidor: nunca hace fallar el job.
| Job | Destino que se registra |
|---|---|
| Dump (tap a dataset) | El dataset que creó o actualizó el job |
| Pump (tap a sink) | El sink, o el propio tap cuando el job sobreescribe el tap actual |
| Copia de un dataset fusionada en un dataset existente | El dataset en el que se fusionó |
| Load (dataset a sink) | El sink, o el propio tap cuando el sink es el tap del modelo |
| Marcha atrás de un backup | El tap al que se restauró el backup |
Por eso hay tres tipos de destino:
| Tipo de destino | Significado |
|---|---|
| Dataset | Un dataset generado por un dump o una fusión |
| Sink | Un datasource cargado por un pump o un load |
| Tap original | El tap del modelo, sobreescrito por el propio job |
Para cada destino, Gigantics guarda un registro por columna con:
- el tap de origen, la entidad y la columna
- la regla y la transformación aplicada a la columna, con sus opciones
- el tipo de la columna según el esquema
- el camino que siguió el valor (ver Camino de los datos)
- la fecha de la última actualización
Qué columnas se registran depende de la regla:
- Si la regla tiene operaciones de anonimización o de síntesis, solo se registran las columnas que configuran esas operaciones. Las operaciones desactivadas se ignoran.
- Si no hay regla, o la regla no tiene campos de anonimización ni de síntesis, se registran todas las columnas de todas las entidades del último esquema, sin transformación.
Las columnas de las particiones de un grupo de entidades reciben las transformaciones configuradas en la entidad principal del grupo.
Una marcha atrás restaura los datos originales, así que se registra como una
restauración: todas las columnas de las entidades que restauró se registran sin
regla ni transformación, aunque el backup lo hiciera un job con regla. Su camino
es Tap ──▶ Entity ──▶ Dataset ──▶ Original Tap, donde el dataset es el
backup. Como esas columnas ya no están transformadas, Solo transformados las
oculta.
El linaje guarda el estado más reciente de cada columna de destino. Cuando otro job escribe la misma columna del mismo destino, su linaje sustituye al anterior. No es un histórico de todas las ejecuciones: para eso, usa la lista de jobs.
La página de linaje
┌────────────────────────────────────────────────────────────────────────────────────┐
│ Linaje de datos │
│ Siga el camino de los datos desde el origen hasta el destino │
├────────────────────────────────────────────────────────────────────────────────────┤
│ [Buscar entidad o campo ] [⇕] [Tipo de destino ▼] (●) Solo transformados │
│ Destinos: 3 Campos: 42 │
├──────────────────────────────────────┬─────────────────────────────────────────────┤
│ ▾ ▣ qa-customers (dataset) │ Campo email │
│ ▾ customers │ Entidad customers │
│ Aa email [fake] │ Destino qa-customers │
│ Aa phone [fake] │ Tipo de destino dataset │
│ # card_number [delete] │ Tap de origen production │
│ ▸ orders │ Regla mask-pii │
│ ▸ ⛁ staging-pg (sink) │ Transformación fake (i) │
│ ▸ ⛁ production (original tap) │ Última actualización 2026-10-20 09:14 │
│ │ │
│ │ Camino de los datos │
│ │ [Tap] → [Entity] → [Rule] → [Dataset] │
└──────────────────────────────────────┴─────────────────────────────────────────────┘Barra de herramientas
| Control | Descripción |
|---|---|
| Buscar entidad o campo | Filtra el árbol por nombre de entidad o de campo. El botón de al lado expande o contrae todo el árbol |
| Tipo de destino | Muestra solo un tipo de destino: Dataset, Sink o Tap original |
| Solo transformados | Activado por defecto. Oculta las columnas sin transformación y las marcadas como sin acción. Desactívalo para ver todas las columnas registradas |
| Destinos: / Campos: | Número de destinos de la lista y número de campos cargados en el árbol (los campos de un destino se cuentan cuando se ha expandido) |
Árbol
La parte izquierda es un árbol de destinos, luego entidades y luego campos. El icono de cada destino indica su tipo. Las columnas de un destino se cargan al expandirlo; hasta entonces el nodo muestra cuántas columnas tiene.
Cada campo muestra un icono según su tipo y, si se transformó, una etiqueta naranja con la transformación.
Detalle del campo
Selecciona un campo para ver su detalle a la derecha. Hasta que eliges uno, el panel muestra Explorar el linaje y Use el árbol de la izquierda para ver el detalle del linaje de un campo.
| Propiedad | Descripción |
|---|---|
| Campo | Nombre de la columna |
| Entidad | Entidad (tabla, colección, fichero) de la columna |
| Destino | Dataset, sink o tap que recibió la columna |
| Tipo de destino | dataset, sink o tap |
| Tap de origen | Tap del que se leyeron los datos |
| Regla | Regla que aplicó el job |
| Transformación | Transformación aplicada a la columna. passthrough cuando el valor se copió sin cambios |
| Última actualización | Fecha en la que se escribió por última vez el linaje de la columna |
Las transformaciones que verás son:
| Transformación | Significado |
|---|---|
fake | Función de Faker. La etiqueta muestra la función usada |
custom function | Una función personalizada, en línea o guardada |
pick from list | Un valor tomado de una lista |
pick from data list | Un valor tomado de una lista de datos |
delete | El campo se elimina |
blank/null | El valor se vacía o se pone a nulo |
no-action | El campo está en la regla, pero marcado para no hacer nada |
| otra | La acción de la función (por ejemplo un hash o una máscara) |
El botón de información junto a la transformación abre Detalles de la transformación, con el campo (Campo:), la acción (Acción:) y una tabla Propiedad / Valor con las opciones de la función. Solo aparecen las opciones que tienen valor, y sus nombres se muestran en inglés:
| Opción | Descripción |
|---|---|
| Function Type | Tipo de la función |
| Function | Nombre de la función |
| Saved Function | Nombre de la función personalizada guardada |
| Locale | Idioma de los valores generados |
| Sub-Type | Subtipo de la función |
| Custom Code | Código de una función personalizada en línea |
| Skip Nulls | Los valores nulos se dejan como están |
| Max Retries | Reintentos para encontrar un valor único |
| Case | Mayúsculas o minúsculas aplicadas al resultado |
| Dictionary Mode | Modo de diccionario del campo, cuando no se hereda de la regla |
Camino de los datos
Debajo del detalle, Camino de los datos dibuja en orden los nodos por los que pasó el valor (los nombres de los nodos se muestran en inglés):
Tap ──▶ Entity ──▶ Rule ──▶ Dataset ──▶ Sink / Original TapEl nodo de la regla solo aparece si el job tenía regla, y el del dataset solo si intervino un dataset (un dump, un load desde un dataset o una marcha atrás). Cuando el dataset es el destino, aparece una sola vez, al final. Cada nodo tiene su color:
| Nodo | Color |
|---|---|
| Tap | Verde |
| Entity | Azul |
| Rule | Naranja |
| Dataset | Morado |
| Sink | Rojo |
Algunos caminos típicos:
Dump Tap ──▶ Entity ──▶ Rule ──▶ Dataset
Pump a un sink Tap ──▶ Entity ──▶ Rule ──▶ Sink
Load de un dataset Tap ──▶ Entity ──▶ Rule ──▶ Dataset ──▶ Sink
Sobreescribir el tap Tap ──▶ Entity ──▶ Rule ──▶ Original Tap
Marcha atrás Tap ──▶ Entity ──▶ Dataset ──▶ Original TapPágina vacía
Hasta que un job registra linaje, la página muestra No hay datos de linaje y Ejecute un job para empezar a capturar el linaje de datos. La vista devuelve como máximo 5000 columnas por consulta.
Linaje de los jobs anteriores a la actualización
Al actualizar Gigantics a una versión con linaje de datos, se ejecuta una migración en el arranque. Para cada modelo, usa el último esquema para rellenar el linaje de:
- los datasets existentes (se omiten los datasets de backup)
- los sinks y taps escritos por el último job completado
Los administradores también pueden ejecutar un script opcional que recalcula el linaje de todos los datasets y corrige los registros antiguos (detalles de la transformación, particiones de grupos de entidades, nombres de funciones guardadas, tipos de columna, caminos, nombres de taps y fechas):
mongo <database> scripts/backfill-lineage.jsEjecútalo desde la carpeta de instalación de Gigantics. No hace falta en una instalación nueva.
Los datasets registrados sin nombre, como los de algunos jobs antiguos, se muestran con el nombre actual del dataset en el árbol y en el informe. El linaje registrado por dumps antiguos puede mostrar el dataset dos veces en el camino de los datos; se corrige la próxima vez que un job escribe ese dataset.
Informe de linaje
El linaje se puede exportar como informe PDF, que se puede firmar igual que un informe de descubrimiento. Ver Auditoría.