Configuración
Breadcrumbs

Relaciones de agregación

El linaje de Anjana Data permite representar determinadas relaciones entre entidades como relaciones de agregación, en las que una entidad contiene a otras.

Por defecto, una relación en el linaje se muestra como una línea entre los nodos que representan sus entidades de origen y destino. Sin embargo, si está configurada como relación de agregación, la visualización pasa a mostrar el objeto destino como contenido dentro del objeto origen, facilitando una visión jerárquica y simplificada.

image-20250912-132428.png
Ejemplo en el que se muestra la relación DSA_CONTENT entre DSA y DATASET como relación de agregación


Es importante tener en cuenta que solo pueden configurarse como relaciones de agregación aquellas que, en la tabla Object Sub-Types, tengan el flag isParental = true.

Tabla Grouping del Panel de Configuración (Visión administrador)

La administración de relaciones de agregación se realiza desde el Panel de configuración, en la tabla Grouping.

image-20250912-131624.png
Tabla Grouping para configuración de relaciones de agregación

Estructura de la tabla Grouping

Cada relación de agregación registrada se caracteriza por los siguientes campos:

  • Id: identificador único de la relación que actúa de relación de agrupación. Se asigna automáticamente desde el Panel de configuración.

  • sourceSubtype: subtipo de objeto que actúa como contenedor/agregador (valor del campo name en la tabla object_subtype) cuando se relaciona con la entidad indicada en destinationSubtype mediante la relación del tipo indicada en el relationshipSubtype.

  • destinationSubtype: subtipo de objeto que aparece contenido en el objeto de tipo sourceSubtype (campo name en la tabla object_subtype) cuando ambos se relacionan mediante la relación indicada en relationshipSubtype.

  • relationshipSubtype: subtipo de relación que une a sourceSubtype con destinationSubtype y que se representa en el linaje como relación de agregación. Corresponde al valor del campo name en la tabla object_subtype.

Importante:

Estas relaciones solo se mostrarán en el linaje como relaciones de agregación si en la tabla Object Sub-Types tienen el flag isParental = true. De lo contrario, se mostrarán mediante una relación plana


Alta de una Relación de Agregación en la tabla Gouping

El alta de una nueva relación de agregación implica crear un registro en la tabla Grouping indicando qué subtipo de entidad contendrá a cuál, y a través de qué relación.

image-20250912-132641.png
Ejemplo de alta de la relación DSA_CONTENT entre DSA y DATASET como relación de agregación

Pasos desde el Panel de configuración:

  1. Pulsar el botón New en la esquina superior derecha.

  2. Completar los campos conforme a la estructura:

    • sourceSubtype: seleccionar el subtipo de entidad que actuará como contenedor (ej.: ENTITY - DSA).

    • destinationSubtype: seleccionar el subtipo de entidad que será contenido (ej.: ENTITY - DATASET).

    • relationshipSubtype: seleccionar la relación que conecta ambas entidades (ej.: RELATIONSHIP - DSA_CONTENT).

  3. Pulsar en Save para guardar o en Cancel para descartar.

Nota: Tras el alta, es necesario ejecutar la acción Clear cache desde el Panel de configuración (Actions > Clear cache) para que los cambios se apliquen y sean visibles en el Portal de Datos.

Modificación de una Relación de Agregación en la tabla Gouping

La modificación de una relación de agregación puede realizarse en cualquier momento, ya que únicamente afecta a la visualización del linaje y no impacta sobre los objetos gobernados.

Al modificar un registro, es importante tener en cuenta que el cambio aplica a todas las capas en las que dicha relación haya sido configurada como de agregación. Por tanto, cualquier ajuste en los subtipos de origen (sourceSubtype), destino (destinationSubtype) o en el tipo de relación (relationshipSubtype) se reflejará de forma global en todas las capas afectadas.

Nota: Tras la modificación, es necesario ejecutar la acción Clear cache desde el Panel de configuración (Actions > Clear cache) para que los cambios se apliquen y sean visibles en el Portal de Datos.


Configuración de Relaciones de agregación mediante acceso directo a la base de datos (Visión desarrollador)

Las relaciones de agregación se almacenan en la tabla anjana.grouping_lineage.

Columna

Tipo de dato

Restricciones / Notas

id

int4

PRIMARY KEY. Identificador único de la relación.

source_subtype

varchar(255)

NOT NULL. Subtipo de objeto contenedor (referencia a object_subtype.name).

destination_subtype

varchar(255)

NOT NULL. Subtipo de objeto contenido (referencia a object_subtype.name).

relationship_subtype

varchar(255)

NOT NULL. Subtipo de relación que se representa como agregación.

A continuación se muestra un script de ejemplo para configurar diferentes relaciones de agregación:

INSERT INTO anjana.grouping_lineage (id, source_subtype, destination_subtype, relationship_subtype)
VALUES
(1, 'DATASET', 'DATASET_FIELD', 'STRUCTURE'),
(2, 'DSA', 'DATASET', 'DSA_CONTENT'),
(3, 'DSA', 'DATA_PRODUCT', 'DSA_CONTENT');

Importante:

  • Una vez ejecutado el insert, ejecutar la actualización de secuencias de la tabla. (Desde el Panel de configuración en Actions > Reset DQ sequences se pueden actualizar las secuencias de todas las tablas, incluida esta).

  • Todo el peso de la lógica de configuración recae en el desarrollador que ejecuta las queries SQL directamente sobre la tablas. Se recomienda revisar cuidadosamente el apartado de Estructura de la tabla.