Proyectos

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:

VistaMenúQué muestra
ProyectoLinaje de datos (Data Lineage), en el menú del proyecto entre Sinks y EntornosEl linaje de todos los modelos del proyecto
ModeloLinaje de datos, en el menú del modelo después de AuditoríaSolo 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.

JobDestino 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 existenteEl 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 backupEl tap al que se restauró el backup

Por eso hay tres tipos de destino:

Tipo de destinoSignificado
DatasetUn dataset generado por un dump o una fusión
SinkUn datasource cargado por un pump o un load
Tap originalEl 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

ControlDescripción
Buscar entidad o campoFiltra el árbol por nombre de entidad o de campo. El botón de al lado expande o contrae todo el árbol
Tipo de destinoMuestra solo un tipo de destino: Dataset, Sink o Tap original
Solo transformadosActivado 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.

PropiedadDescripción
CampoNombre de la columna
EntidadEntidad (tabla, colección, fichero) de la columna
DestinoDataset, sink o tap que recibió la columna
Tipo de destinodataset, sink o tap
Tap de origenTap del que se leyeron los datos
ReglaRegla que aplicó el job
TransformaciónTransformación aplicada a la columna. passthrough cuando el valor se copió sin cambios
Última actualizaciónFecha en la que se escribió por última vez el linaje de la columna

Las transformaciones que verás son:

TransformaciónSignificado
fakeFunción de Faker. La etiqueta muestra la función usada
custom functionUna función personalizada, en línea o guardada
pick from listUn valor tomado de una lista
pick from data listUn valor tomado de una lista de datos
deleteEl campo se elimina
blank/nullEl valor se vacía o se pone a nulo
no-actionEl campo está en la regla, pero marcado para no hacer nada
otraLa 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ónDescripción
Function TypeTipo de la función
FunctionNombre de la función
Saved FunctionNombre de la función personalizada guardada
LocaleIdioma de los valores generados
Sub-TypeSubtipo de la función
Custom CodeCódigo de una función personalizada en línea
Skip NullsLos valores nulos se dejan como están
Max RetriesReintentos para encontrar un valor único
CaseMayúsculas o minúsculas aplicadas al resultado
Dictionary ModeModo 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 Tap

El 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:

NodoColor
TapVerde
EntityAzul
RuleNaranja
DatasetMorado
SinkRojo

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 Tap

Pá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.js

Ejecú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.


¿Qué sigue?