Modelo

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ónValoresPor defectoQué hace
Concurrencia1 o más1Número de entidades que se procesan a la vez
Continuar reportando después de fallarcasillamarcadaSi una entidad falla, el job sigue con las demás entidades. Desmarcada, el job se detiene en la primera entidad que falla
Reintentar al fallarcasilladesmarcadaReintenta 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 cargaTruncar, Drop, Añadir, Actualizar, CombinarTruncarQué hacer cuando el sink ya tiene datos (ver más abajo)
DeterminismoAleatorio, DeterministaAleatorioAleatorio da resultados distintos en cada ejecución. Determinista da los mismos resultados en cada ejecución de la regla
Semilla1 a 99999990Nú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 FKAuto, No comprobar, Forzar comprobaciónAutoSe guarda con la regla (ver la nota más abajo)
Batch de lectura de registrosnúmero de registros32768Registros que se leen del origen en cada ciclo
Número de registros de escrituranúmero de registros32768Registros que se escriben en el destino en cada ciclo
Contenido del streamDatos y metadatos, Sólo datos, Sólo metadatosDatos y metadatosLo 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
Diccionariover más abajoSin diccionariosReutiliza 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:

ValorEfecto en el sink
TruncarElimina los datos de las tablas pero mantiene su DDL
DropElimina tanto los datos como el DDL
AñadirAñade el resultado de la regla a los datos existentes
ActualizarActualiza las filas que tienen la misma clave primaria. Las filas nuevas no se insertan
CombinarActualiza 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:

ModoLos valores se reutilizan
Sin diccionariosNunca
Reutilizar valores en la misma entidad+campoSolo en el mismo campo de la misma entidad
Reutilizar valores con la misma etiqueta o la misma entidad+campoEn campos con la misma etiqueta, o en el mismo campo de la misma entidad
Reutilizar valores en todos los camposEn 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óndeSe muestra cuandoSección
Nuevo jobSe elige Sobreescribir tap actualOpciones de transformación
PipelinesSe elige Sobrescribir tapOpciones 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 siempre

Si 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ónDescripción en la cuadrículaEn SQL
Incluir/ExcluirFiltrar qué entidades se leenFROM
SeleccionarElegir qué campos se leenSELECT campo, ...
DondeFiltrar registros por valorWHERE
Leer consultaUtilice una query SQL/no-sql para extraer datos del tapTu propia consulta
OrdenarOrden del stream de registrosORDER BY
LímiteReducir el número de registros leídosLIMIT
TasaRalentizar la velocidad de lectura

Transformación

Las Operaciones de transformación cambian los datos o el orden en que se procesan:

OperaciónDescripción en la cuadrícula
SecuenciaOrden del stream de entidades
SintetizarRellenar entidades con datos simulados
AnonimizarEnmascarar y obfuscar entidades
TransformaciónTransforme el valor de los registros mediante código
Actualización del esquemaModificar 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ónDescripción en la cuadrícula
MaxReducir el número de registros escritos