Configuración
Breadcrumbs

Relaciones entre valores de referencia

En Anjana Data es posible configurar dependencias entre los valores de atributos de referencia (atributos de tipo selector: SELECT, MULTI_SELECT, TREE_SELECT, etc.) de forma que la selección de un valor en un atributo determine los valores disponibles en otro.

Este mecanismo permite reflejar lógicas propias del ecosistema de datos de la organización y garantizar coherencia en la elección de valores durante la creación o edición de los objetos gobernados.

image-20250910-095921.png
Ejemplo de relaciones entre los metadatos de la tripleta infraestructura-tecnología-zona

Por ejemplo, si en la creación de un DATASET se selecciona como tecnología Amazon S3, en el combo de zona solo estarán disponibles los valores compatibles (ejemplo: Gold).
De esta forma, el sistema asegura que la combinación de valores infraestructura–tecnología–zona siempre sea válida y consistente con la configuración de referencia.

Tabla Attribute Relationships del Panel de Configuración (Visión administrador)

Estas dependencias se configuran en la tabla Attribute Relationships.

image-20250910-101138.png
Tabla de Attribute Relationship para el alta de relaciones entre valores de referencia

Estructura de la tabla Attribute Relationship

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

  • Id: identificador único del registro. Se asigna automáticamente desde el Panel de configuración.

  • destinationValue: valor del atributo dependiente (el que se filtra). Corresponde a un valor definido en la tabla Attribute Definition Value, es decir, una de las opciones configuradas para un atributo de referencia.

  • sourceValue: valor del atributo origen del que depende el anterior. También corresponde a un valor definido en la tabla Attribute Definition Value. Es el valor cuya selección determina o filtra el destinationValue.

En atributos de tipo taxonomía (TREE_SELECT o TREE_MULTISELECT), los valores deben organizarse en forma de árbol. Los valores de referencia que actúan como nodos raíz (nivel superior del árbol jerárquico) deben tener como sourceValue el valor <null>, lo que indica a la plataforma el inicio de una rama.

  • objectSubType: subtipo de objeto en el que aplica la relación. Corresponde a un subtipo configurado en la tabla Object Sub-types. Si se define como NULL, la relación será global y se aplicará en cualquier plantilla donde estén presentes ambos atributos.

Importante:

Para que las relaciones se apliquen correctamente entre valores de referencia de atributos de metadatos diferentes, se debe configurar la validación de dependencia (DEPENDS_ON) en la tabla Template Attribute Validations.

Alta de un atributo en la tabla Attribute Relatioship

El alta de una nueva relación entre valores de atributos implica añadir en la tabla Attribute Relationship un nuevo registro que defina la dependencia entre un valor origen (sourceValue) y un valor destino (destinationValue).

image-20250910-110758.png
Ejemplo de alta de la relación entre la tecnología Amazon S3 con la zona Gold para el subtipo de objeto DATASET

Para añadir una nueva relación:

  1. Pulsar el botón New en la esquina superior derecha. Esto abrirá un asistente (wizard) con los campos definidos en el apartado Estructura de la tabla Attribute Relationship.

  2. Completar los campos conforme a la estructura descrita:

    • destinationValue: seleccionar el valor dependiente desde la lista de valores definidos en la tabla Attribute Definition Value(p.e: 2105-Gold-zone).

    • sourceValue: seleccionar el valor origen desde la lista de valores definidos en la tabla Attribute Definition Value(p.e: 2104-Amazon S3-technology).

    • objectSubType: seleccionar el subtipo de objeto en el que aplica la relación, de entre los configurados en la tabla Object Sub-Types (p.e: DATASET).

  3. Pulsar en Save para guardar la relación o en Cancel para descartarla.

Nota

Tras el alta de nuevas relaciones, 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.

Ejemplo de alta de un atributo de tipo taxonomía

A continuación se muestra como configurar el árbol de jerarquía de un atributo de tipo taxonomía (TREE_SELECT o TREE_MULTISELECT) como el que se muestra en la siguiente imagen:

image-20250910-142558.png
Ejemplo de atributo de tipo taxonomía conformado por un árbol de jerarquía de valores de referencia

Pasos para dar de alta el árbol de jerarquía:

  1. Dar de alta el atributo en Attribute Definitionsy los valores de referencia en Attribute Definition Value

  2. En Attribute Relationship se debe:

    1. Indicar que el valor de referencia Clientes es el primer nivel del árbol, para ello:

      1. sourceValue debe tener valor <null>

      2. destinationValue debe hacer referencia al valor Clientes

      3. destinationValue debe hacer referencia al subtipo de objeto DATASET

    2. Indicar que el valor de referencia Datos demográficos (nombre, edad, género, etc.) cuelga del valor Clientes, para ello:

      1. sourceValue debe tener valor Clientes

      2. destinationValue debe hacer referencia al valor Datos demográficos (nombre, edad, género, etc.)

      3. destinationValue debe hacer referencia al subtipo de objeto DATASET

    3. Indicar que el valor de referencia Historial de compras cuelga del valor Clientes, para ello:

      1. sourceValue debe tener valor Clientes

      2. destinationValue debe hacer referencia al valor Historial de compras

      3. destinationValue debe hacer referencia al subtipo de objeto DATASET

    4. Repetir el apartado anterior para todos los valores que cuelgan de Clientes

Modificación de una relación en la tabla Attribute Relationship

La modificación de una relación ya existente debe realizarse con precaución, ya que puede impactar en la visualización y consistencia de los valores de referencia en el Portal de Datos.

  • Si no existen objetos gobernados en el Portal de Datos:
    Se pueden modificar libremente los tres campos de la relación:

    • destinationValue (valor destino, tomado de la tabla Attribute Definition Value),

    • sourceValue (valor origen, tomado de la tabla Attribute Definition Value),

    • objectSubType (subtipo al que aplica la relación, configurado en la tabla Object Sub-Type).

  • Si existen objetos gobernados en el Portal de Datos:
    Solo se podrán realizar cambios en la medida en que no afecten a objetos ya creados.
    En particular:

    • No se puede eliminar ni modificar una relación entre un destinationValue y un sourceValue para un objectSubType concreto si ya existen objetos de ese subtipo que contienen esos valores en sus atributos origen y destino simultáneamente.

    • En estos casos, la única opción será mantener la relación vigente o bien eliminarla y redefinirla tras realizar un ajuste controlado en los objetos gobernados.

Nota

Tras la modificación de relaciones, 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 entre valores de referencia mediante acceso directo a la base de datos (Visión desarrollador)

Las relaciones entre valores de referencia se almacenan en la tabla anjana.attribute_relationships. Estas relaciones permiten establecer dependencias entre los valores de dos atributos configurados en la tabla anjana.attribute_definition_value, de modo que la selección de un valor en el atributo origen filtre los valores disponibles en el atributo destino.

Columna

Tipo

Restricciones / Notas

id_attribute_relationships

int4

PRIMARY KEY. Identificador único de la relación. Se gestiona por secuencia.

object_sub_type

varchar(255)

Puede ser NULL. Indica el subtipo de objeto al que aplica la relación. Debe corresponder con un name definido en la tabla anjana.object_subtype.

destination_value

int4

Valor destino de la relación. FK a anjana.attribute_definition_value(id_attribute_definition_value).

source_value

int4

Valor origen de la relación. FK a anjana.attribute_definition_value(id_attribute_definition_value).

El siguiente ejemplo define una relación para que, en la plantilla del subtipo DATASET, el valor de tecnología Amazon S3 (sourceValue = 2104) solo permita seleccionar la zona Gold (destinationValue = 2105):

INSERT INTO anjana.attribute_relationships
(id_attribute_relationships, object_sub_type, destination_value, source_value)
VALUES(1176, 'DATASET', 2105, 2104);

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.