Modelo

Esquema

En este documento encontrarás información sobre:

Esquema

Para obtener el schema del tap, crea un new discover job y selecciona la opción only scan. Este job escaneará tu tap y devolverá el schema.

Podrás navegar por la estructura de tu tap, consultando los datos de tus entidades (campos, tamaño, DDL...) y los campos (propiedades y relaciones).

No puedes modificar los datos ni ver datos reales, es solo una representación del schema.

Claves y relaciones

El scan lee las claves primarias y las claves foráneas de la base de datos, y puedes completarlas en el esquema:

  • La columna PK de los campos de una entidad marca o desmarca un campo como parte de la clave primaria.
  • La pestaña Relaciones de una entidad y de un campo añade una relación (clave foránea) con otra entidad, o la quita.

Las reglas las usan para mantener el orden y la integridad referencial de los datos que escriben. Estos controles solo aparecen a los usuarios cuyo rol en el proyecto tiene el permiso Editar esquema, el mismo permiso que exige el servidor para guardarlos. Sin él, las claves y las relaciones son de solo lectura.

Las claves y relaciones que defines aquí se conservan al hacer un rescan: el rescan de una base de datos que no ha cambiado no crea una versión nueva, y una versión nueva conserva las de las entidades y campos que siguen existiendo. Las de una entidad o un campo que ya no está en la base de datos se descartan, y el job del scan lo indica en su log. Si la base de datos pasa a declarar una relación que habías definido, se conserva la declarada.

Una relación definida en el esquema, conservada tras un rescan

Versiones

El scan identifica todas las entidades y sus campos, así como el tamaño y tipo de base de datos escaneada. Si durante este proceso se detectan cambios, Gigantics generará una nueva versión del schema.

Dentro de la página Schema, puedes comparar versiones para identificar cambios en su estructura.

DDL

Muestra el DDL del schema del tap. Puedes exportarlo a un archivo o copiarlo al portapapeles.

Grupos de entidades

Algunas bases de datos reparten una misma tabla lógica en muchas tablas físicas: una tabla por mes (orders_202401, orders_202402...), por cliente o por región, o las particiones de una tabla particionada. Cada una es una entidad distinta en el esquema, pero todas tienen las mismas columnas y se deben tratar igual.

Un grupo de entidades une esas entidades a una entidad principal:

  • La entidad principal es la que configuras: sus etiquetas y su configuración en las reglas se aplican al resto del grupo.
  • Las particiones son las entidades cuyo nombre cumple el patrón del grupo, salvo la entidad principal.
 Grupo "orders partitions"      patrón ^orders_\d{6}$

            orders  (entidad principal)
               │   etiquetas y configuración de la regla
     ┌─────────┼──────────────┐
     ▼         ▼              ▼
orders_202401  orders_202402  orders_202403   (particiones)

Los grupos de entidades pertenecen al modelo.

Gestionar los grupos de entidades

En la página Descubrimiento del modelo, el botón Grupos de Entidades de la barra de entidades abre el diálogo Grupos de Entidades. El botón solo aparece a los usuarios cuyo rol en el proyecto tiene el permiso Editar esquema, el mismo permiso que exige el servidor para añadir, editar y eliminar grupos:

┌──────────────────────────────────────────────────────────────────────────┐
│ Grupos de Entidades                                                  [X] │
├──────────────────────────────────────────────────────────────────────────┤
│ Nombre             Entidad Principal  Patrón           Coinc.   Partic.  │
│ orders partitions  orders             ^orders_\d{6}$   [12]     [Si] ✎ ✕ │
│ logs by region     logs               ^logs_[a-z]{2}$  [5]           ✎ ✕ │
├──────────────────────────────────────────────────────────────────────────┤
│ [+ Añadir Grupo de Entidades]                                            │
├──────────────────────────────────────────────────────────────────────────┤
│                                                     [Cerrar y actualizar]│
└──────────────────────────────────────────────────────────────────────────┘
ColumnaDescripción
NombreNombre del grupo
Entidad PrincipalEntidad cuya configuración comparte el grupo
PatrónExpresión regular de los nombres de las particiones
CoincidenciasNúmero de particiones: entidades del esquema actual que cumplen el patrón, sin contar la entidad principal
ParticionadaSí cuando el grupo es una tabla particionada

Usa el botón de editar para cambiar un grupo y el de borrar para eliminarlo (¿Eliminar este grupo de entidades?). Si no hay grupos, la tabla muestra No hay grupos de entidades definidos.

Añadir Grupo de Entidades abre este formulario:

CampoDescripción
Nombre del GrupoNombre único del grupo, por ejemplo entity1 partitions
Entidad PrincipalLista con búsqueda de las entidades del esquema
Patrón de Nombre de Entidad (Regex)Expresión regular que deben cumplir los nombres de las particiones, por ejemplo ^entity1_\d{6}$
Tabla particionadaMárcalo cuando la entidad principal es la tabla padre de una tabla particionada. Ver Tablas particionadas

Mientras escribes, Entidades Coincidentes (N) muestra las particiones que el patrón encuentra en el esquema. Pulsa Crear (o Actualizar) para guardar, o Cancelar.

El patrón es una expresión regular de JavaScript que se busca en cualquier parte del nombre de la entidad. Usa ^ y $ para que coincida con el nombre completo: orders_ a secas también coincide con old_orders_2019 o customer_orders.

El grupo no se guarda cuando:

MensajeMotivo
Ya existe un grupo de entidades con este nombreLos nombres de grupo son únicos en el modelo
Patrón de expresión regular no válidoEl patrón no es una expresión regular válida
Entidad principal no encontrada en el esquemaLa entidad principal no está en la última versión del esquema
La entidad "X" ya pertenece al grupo "Y"Una partición ya cumple el patrón de otro grupo. Una entidad solo puede pertenecer a un grupo

Si has hecho cambios, el botón de la parte inferior del diálogo es Cerrar y actualizar, y al cerrarlo se recarga la página para que los nuevos grupos se apliquen en todas partes.

Grupos en el descubrimiento

En la lista de entidades del descubrimiento:

  • Las particiones llevan una etiqueta morada P. La ventana emergente de una entidad muestra Partición de <entidad principal> en una partición, y Grupo: <nombre> en la entidad principal.
  • Las particiones heredan las etiquetas de la entidad principal, también en el informe de descubrimiento. Al seleccionar una partición aparece Ver etiquetas, que te lleva a la entidad principal.
  • La página de una partición muestra el aviso Esta entidad es una partición del grupo "...". Las etiquetas se heredan de la entidad principal "..." y no se pueden editar aquí. Edita las etiquetas en la entidad principal.

Al lanzar un descubrimiento, o al crear un pipeline con un paso de descubrimiento, la selección de entidades también ofrece Usar grupos de entidades, con la opción Incluir / Excluir. Los grupos seleccionados se expanden en su entidad principal y sus particiones igual que en la operación incluir/excluir de una regla, incluido el comportamiento de las tablas particionadas.

Grupos en las reglas

Configura la entidad principal una vez y la regla aplica la misma configuración a sus particiones:

  • En incluir/excluir, Usar grupos de entidades selecciona grupos completos. Ver Grupos de entidades en incluir/excluir.
  • En anonimizar, sintetizar, select, limit y query, la configuración de la entidad principal se copia a sus particiones cuando se ejecuta el job. Una configuración puesta directamente en una partición se sustituye por la de la entidad principal. En una consulta, el nombre de la entidad principal se sustituye por el nombre de cada partición: ver Grupos de entidades en Leer consulta.
  • Las particiones se ocultan en la tabla de entidades de anonimizar, y la entidad principal muestra una etiqueta Grupo: <nombre> (N). La misma etiqueta aparece en las listas de entidades de las demás operaciones.

Qué grupos se aplican depende de la operación incluir/excluir de la regla:

Incluir/excluir de la reglaGrupos cuya configuración se copia
Usar grupos de entidadesSolo los grupos seleccionados ahí
Usar expresión regularNinguno: la expresión regular ya elige las entidades
Usar selector, o sin incluir/excluirTodos los grupos del modelo

Tablas particionadas

Marca Tabla particionada cuando la entidad principal es la tabla padre de una tabla particionada, por ejemplo una tabla particionada de PostgreSQL, cuyas filas se guardan en realidad en sus particiones. Leer la tabla padre y las particiones procesaría dos veces las mismas filas.

Cuando el grupo se selecciona con Usar grupos de entidades en incluir/excluir en modo Incluir, un grupo de tabla particionada añade al job solo sus particiones: la entidad principal se configura en la regla pero no se lee ni se escribe. Un grupo normal añade la entidad principal y sus particiones.

En modo Excluir, los dos tipos de grupo excluyen la entidad principal y sus particiones, así que no se procesan ni la tabla padre ni sus particiones.

Incluir, grupo normal          orders + orders_202401 + orders_202402 ...
Incluir, tabla particionada    orders_202401 + orders_202402 ...    (orders se omite)
Excluir, cualquier grupo       todo excepto orders y orders_2024xx

Grupos en el linaje de datos

En el linaje de datos, las columnas de una partición muestran las transformaciones configuradas en la entidad principal.


¿Qué sigue?