Esquema
En este documento encontrarás información sobre:
- Esquema
- Versiones de esquema
- Vista de DDL
- Grupos de entidades para agrupar particiones
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.
Navegación por el esquema
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.

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]│
└──────────────────────────────────────────────────────────────────────────┘| Columna | Descripción |
|---|---|
| Nombre | Nombre del grupo |
| Entidad Principal | Entidad cuya configuración comparte el grupo |
| Patrón | Expresión regular de los nombres de las particiones |
| Coincidencias | Número de particiones: entidades del esquema actual que cumplen el patrón, sin contar la entidad principal |
| Particionada | Sí 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:
| Campo | Descripción |
|---|---|
| Nombre del Grupo | Nombre único del grupo, por ejemplo entity1 partitions |
| Entidad Principal | Lista 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 particionada | Má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:
| Mensaje | Motivo |
|---|---|
| Ya existe un grupo de entidades con este nombre | Los nombres de grupo son únicos en el modelo |
| Patrón de expresión regular no válido | El patrón no es una expresión regular válida |
| Entidad principal no encontrada en el esquema | La 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 muestraPartición de <entidad principal>en una partición, yGrupo: <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 regla | Grupos cuya configuración se copia |
|---|---|
| Usar grupos de entidades | Solo los grupos seleccionados ahí |
| Usar expresión regular | Ninguno: la expresión regular ya elige las entidades |
| Usar selector, o sin incluir/excluir | Todos 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_2024xxGrupos en el linaje de datos
En el linaje de datos, las columnas de una partición muestran las transformaciones configuradas en la entidad principal.