Reglas
¿Qué es una Regla
Una regla es un conjunto de operaciones que genera datos anonimizados o sintetizados en nuevos datasets, los mismos o diferentes datasources (sinks).
Una regla es comparable a un programa o un algoritmo.
Las reglas se ejecutan en jobs.
Cómo crear una nueva regla
Abre el área Reglas del modelo del tap y haz clic en Crear. La ventana Nueva regla tiene dos partes:
- General: el Nombre de la regla (obligatorio, "El nombre de la regla es obligatorio") y una Descripción de su propósito.
- Opciones por defecto: las opciones que usa la regla al ejecutarse, descritas a continuación.
Importar regla crea una regla a partir de un fichero exportado con Exportar regla.
Opciones
Las Opciones por defecto de una regla son:
| Opción | Valores | Por defecto | Qué hace |
|---|---|---|---|
| Concurrencia | 1 o más | 1 | Número de entidades que se procesan a la vez |
| Continuar reportando después de fallar | casilla | marcada | Si una entidad falla, el job sigue con las demás entidades. Desmarcada, el job se detiene en la primera entidad que falla |
| Reintentar al fallar | casilla | desmarcada | Reintenta un lote de escritura fallido dividiéndolo por la mitad, una y otra vez, hasta aislar el registro que falla. Lo usan los sinks Postgres, MySQL, Oracle, MSSQL, Databricks y Salesforce |
| Opciones de carga | Truncar, Drop, Añadir, Actualizar, Combinar | Truncar | Qué hacer cuando el sink ya tiene datos (ver más abajo) |
| Determinismo | Aleatorio, Determinista | Aleatorio | Aleatorio da resultados distintos en cada ejecución. Determinista da los mismos resultados en cada ejecución de la regla |
| Semilla | 1 a 9999999 | 0 | Número que inicializa el generador aleatorio. Obligatoria con Determinista ("Se requiere el valor de la semilla") y deshabilitada con Aleatorio. Generar elige una semilla al azar |
| Comprobar las FK | Auto, No comprobar, Forzar comprobación | Auto | Se guarda con la regla (ver la nota más abajo) |
| Batch de lectura de registros | número de registros | 32768 | Registros que se leen del origen en cada ciclo |
| Número de registros de escritura | número de registros | 32768 | Registros que se escriben en el destino en cada ciclo |
| Contenido del stream | Datos y metadatos, Sólo datos, Sólo metadatos | Datos y metadatos | Lo que escribe el job. Sólo metadatos no escribe registros: un sink recibe sus tablas (creadas, vaciadas o borradas según las Opciones de carga) y un dataset la descripción de sus entidades. Sólo datos escribe los registros, y un dataset no recibe la descripción de sus entidades |
| Diccionario | ver más abajo | Sin diccionarios | Reutiliza los valores ya enmascarados en ejecuciones anteriores |
Al ejecutar una regla, el job empieza con estas opciones. Las opciones que recibe el job (en la ventana Ejecutar, o por la API o un asistente de IA) las sustituyen una a una, y las que no recibe se toman de la regla: un job lanzado sin ninguna opción se ejecuta con las opciones de la regla.
Opciones de carga:
| Valor | Efecto en el sink |
|---|---|
| Truncar | Elimina los datos de las tablas pero mantiene su DDL |
| Drop | Elimina tanto los datos como el DDL |
| Añadir | Añade el resultado de la regla a los datos existentes |
| Actualizar | Actualiza las filas que tienen la misma clave primaria. Las filas nuevas no se insertan |
| Combinar | Actualiza las filas que tienen la misma clave primaria e inserta las nuevas |
Actualizar y Combinar necesitan una clave primaria en la entidad; sin ella la entidad falla con un error como "Cannot update/merge database without any defined primary keys".
Modos de Diccionario:
| Modo | Los valores se reutilizan |
|---|---|
| Sin diccionarios | Nunca |
| Reutilizar valores en la misma entidad+campo | Solo en el mismo campo de la misma entidad |
| Reutilizar valores con la misma etiqueta o la misma entidad+campo | En campos con la misma etiqueta, o en el mismo campo de la misma entidad |
| Reutilizar valores en todos los campos | En cualquier campo |
Con un diccionario también puedes marcar:
- Cachear diccionario (marcada por defecto): mantiene una caché local del diccionario del proyecto.
- Almacenar nuevas transformaciones en el diccionario (marcada por defecto): guarda los valores nuevos para que las siguientes ejecuciones los reutilicen.
- Sobrescribir diccionario existente (desmarcada por defecto): sustituye los valores ya guardados.
Estas casillas están deshabilitadas con Sin diccionarios. Para más información consulta el artículo sobre cómo usar diccionarios.
Comprobar las FK se guarda con la regla y con sus jobs, pero en esta versión el job no la usa. Para mantener las filas hijas coherentes con sus filas padre, usa Garantizar integridad referencial en Donde, Límite, Leer consulta o Sintetizar.
Ignorar los valores ya anonimizados
Ignorar los valores ya anonimizados protege los datos que ya se anonimizaron cuando una regla se vuelve a ejecutar sobre el mismo tap. No es una opción de la regla: se elige en cada job que sobrescribe el tap, y solo cuando se usa un diccionario (la casilla está deshabilitada con Sin diccionarios). Aparece en:
| Dónde | Se muestra cuando | Sección |
|---|---|---|
| Nuevo job | Se elige Sobreescribir tap actual | Opciones de transformación |
| Pipelines | Se elige Sobrescribir tap | Opciones de transformación |
Está desmarcada por defecto y nunca se toma de la regla. En los jobs que no sobrescriben el tap siempre está desactivada, sea cual sea el valor guardado.
Cuando está marcada, cada valor se busca primero en el diccionario:
valor leído del tap
│
├── guardado como valor original ────► se sustituye por su valor
│ anonimizado guardado
│
├── guardado como valor anonimizado ─► se mantiene tal cual
│ (ya anonimizado)
│
└── no está en el diccionario ───────► se anonimiza como siempreSi todos los campos no vacíos de una fila que usan el diccionario ya están anonimizados, la fila se omite y no se escribe, así que queda tal cual en el tap. El log del job muestra una línea por entidad como customers: 120 values ignored, 40 rows skipped (already anonymized).
Antes de la 2.0.0 esta opción estaba activada por defecto en todas las reglas con diccionario. Al actualizar a la 2.0.0, una migración la desactiva en todas las reglas, versiones de reglas, pipelines y jobs programados que aún no han empezado. Los jobs que ya se ejecutaron mantienen sus opciones, así que al reiniciarlos se comportan como antes. Si la necesitas, vuelve a marcarla en el job que sobrescribe el tap.
Acciones
La lista de reglas muestra un botón Ejecutar en cada regla y un menú Acciones con:
- Exportar regla: descarga la regla como fichero
.json, que puedes llevar a otro modelo con Importar regla. - Editar regla: edita las opciones de la regla descritas en la sección anterior Opciones.
- Ver operaciones: va a la página de operaciones de la regla.
- Ver jobs: muestra los jobs de la regla.
- Eliminar: elimina la regla del modelo, tras preguntar "¿Está seguro de que quiere eliminar esta regla?".
Ejecutar abre el panel Nuevo job con la regla ya elegida, Desde en el tap y Hasta en Nuevo dataset. Puedes cambiar el destino a un sink, a un dataset existente o a Sobreescribir tap actual.
El panel empieza con las opciones de la regla, y puedes cambiarlas solo para esta ejecución:
- Concurrencia, Continuar reportando después de fallar, Reintentar al fallar, Longitud del batch de lectura y Longitud de batch de escritura.
- Entidades objetivo (el modo de carga, cuando el resultado va a un sink) empieza en el modo de carga de la regla. Si el sink no lo soporta, se usa el primer modo que soporte. Sobreescribir tap actual usa siempre Actualizar, y el job pide confirmación ("Aviso: SE PERDERÁN DATOS"). Está deshabilitado cuando el tap no permite sobrescribirse.
- Opciones de transformación: Determinismo, Semilla, Comprobar las FK y Diccionario, además de Ignorar los valores ya anonimizados al sobrescribir el tap.
Verifica tus Pipelines antes de eliminar una regla porque el pipeline podría volverse inconsistente si la regla está siendo usada.
Lista de operaciones
Después de crear la regla, haz clic en el nombre para entrar a la página de operaciones. Agregar operación abre una cuadrícula con las operaciones que puedes añadir, dividida en tres áreas. Cada operación se puede añadir una vez por regla; las que ya están en la regla se muestran seleccionadas.
Consulta
Las Operaciones de consulta cambian cómo se leen los datos del tap, como si fuera una consulta SQL:
| Operación | Descripción en la cuadrícula | En SQL |
|---|---|---|
| Incluir/Excluir | Filtrar qué entidades se leen | FROM |
| Seleccionar | Elegir qué campos se leen | SELECT campo, ... |
| Donde | Filtrar registros por valor | WHERE |
| Leer consulta | Utilice una query SQL/no-sql para extraer datos del tap | Tu propia consulta |
| Ordenar | Orden del stream de registros | ORDER BY |
| Límite | Reducir el número de registros leídos | LIMIT |
| Tasa | Ralentizar la velocidad de lectura |
Transformación
Las Operaciones de transformación cambian los datos o el orden en que se procesan:
| Operación | Descripción en la cuadrícula |
|---|---|
| Secuencia | Orden del stream de entidades |
| Sintetizar | Rellenar entidades con datos simulados |
| Anonimizar | Enmascarar y obfuscar entidades |
| Transformación | Transforme el valor de los registros mediante código |
| Actualización del esquema | Modificar el esquema de la base de datos |
Estas transformaciones generan datos anonimizados o sintetizados en nuevos datasets, los mismos o diferentes datasources (sinks).
Salida
Las Operaciones de salida cambian los datos que se escriben en el destino:
| Operación | Descripción en la cuadrícula |
|---|---|
| Max | Reducir el número de registros escritos |