Diccionario
¿Qué es un Diccionario?
Un Diccionario en Gigantics es un sistema de almacenamiento inteligente que recuerda cómo has transformado los valores de los datos. Piensa en él como un sistema de memoria que garantiza una anonimización consistente en todo tu proyecto.
Por qué Importan los Diccionarios
Cuando anonimizas datos, a menudo necesitas que el mismo valor original se convierta en el mismo valor anonimizado cada vez que aparece. Esto se llama integridad referencial - mantener las relaciones entre los datos incluso después de la anonimización.
Ejemplo de Escenario:
Los diccionarios aseguran que "John Smith" siempre se convierta en "Mark Johnson" y "john@example.com" siempre se convierta en "mark@email.com" en todo tu proyecto, manteniendo las relaciones y consistencia de los datos.
Dónde se Usan los Diccionarios en Gigantics
Los diccionarios están integrados en toda la aplicación Gigantics en varias áreas clave:
1. Página de Diccionario del Proyecto
La interfaz principal de gestión del diccionario se encuentra en:
Ruta de Navegación:
Aquí puedes:
- Ver todas las entradas del diccionario
- Importar/Exportar diccionarios
- Buscar y filtrar entradas
- Limpiar todo el diccionario
- Ver estadísticas resumidas por ámbito
2. Configuración de Reglas
Los diccionarios se configuran al crear o editar Reglas y Pipelines:
Ruta de Navegación:
Aquí configuras:
- Modo del diccionario (Campo, Etiqueta, Global, Ninguno)
- Opción de caché del diccionario
- Almacenar nuevas transformaciones
- Sobrescribir el diccionario existente
3. Transformaciones a Nivel de Campo
Al configurar transformaciones individuales de campos en operaciones de anonimización:
Ruta de Navegación:
Cada campo puede tener su propia configuración de diccionario:
- Anulación del modo del diccionario
- Opción de reemplazar la etiqueta
- Definición de ámbito personalizada
- Alternar con opciones
- Manejo de nulos
4. Configuración de Pipeline
Al configurar pipelines automatizados:
Ruta de Navegación:
Los Pipelines heredan la configuración del diccionario que se usará para todas las ejecuciones de los trabajos.
Componentes de la Interfaz de Usuario del Diccionario
Página Principal del Diccionario
La página del diccionario (/projects/dictionary) proporciona una interfaz completa para gestionar entradas del diccionario:
Acciones de la Barra de Herramientas:
| Botón | Icono | Función | Cuándo Usar |
|---|---|---|---|
| Ver Resumen | Ojo | Muestra el recuento por ámbito | Para tener una visión general de la estructura del diccionario |
| Exportar | Exportar | Descarga el diccionario como CSV o JSON | Para hacer copia de seguridad o migrar el diccionario |
| Importar | Importar | Carga el diccionario desde un archivo | Para restaurar o fusionar diccionarios |
| Limpiar Diccionario | Limpiar | Elimina todas las entradas | Para empezar desde cero o reiniciar el diccionario |
Funcionalidad de Búsqueda:
- Buscar por clave (hash MD5)
- Buscar por nombre del ámbito
- Buscar por valor transformado
- Filtrado en tiempo real al escribir
Opciones de Ordenación:
- Ordenar por Ámbito (predeterminado)
- Ordenar por Clave
- Ordenar por Valor
Modal de Importación del Diccionario
Opciones de Importación:
| Opción | Descripción | Caso de Uso |
|---|---|---|
| Agregar | Añade nuevas entradas, actualiza claves coincidentes | Fusionar diccionarios o actualizar entradas específicas |
| Sobrescribir | Reemplaza el diccionario entero | Restaurar desde copia de seguridad o reemplazo completo |
Formato del Archivo:
- Requiere formato JSON
- Cada entrada debe tener:
key,val,scope
Modal de Exportación del Diccionario
Opciones de Exportación:
| Opción | Descripción | Cuándo Usar |
|---|---|---|
| Diccionario Completo | Exporta todas las entradas | Copia de seguridad completa o migración |
| Seleccionar Ámbito | Exporta ámbitos específicos | Copia de seguridad parcial o análisis específico del ámbito |
| Formato CSV | Valores separados por comas | Análisis en hojas de cálculo o herramientas externas |
| Formato JSON | Estructura JSON | Uso programático o reimportación |
Modal de Resumen del Diccionario
Muestra una desglose de las entradas del diccionario por ámbito:
Configuración de Reglas - Opciones del Diccionario
Al configurar las reglas, verás la sección del Diccionario:
Opciones de Configuración:
| Opción | Descripción | Impacto |
|---|---|---|
| Modo: Ninguno | Desactiva el uso del diccionario | Máxima aleatoriedad, sin consistencia |
| Modo: Campo | Reutiliza por combinación entidad+campo | Valores diferentes en diferentes campos |
| Modo: Etiqueta | Reutiliza por tipo de etiqueta | Consistente en los mismos tipos de datos |
| Modo: Global | Reutiliza en todas partes | Máxima consistencia, ámbito único |
| Caché del diccionario | Almacena en memoria para acceso más rápido | Mejor rendimiento, usa más memoria |
| Almacenar nuevas transformaciones | Guarda nuevas transformaciones para uso futuro | El diccionario crece, permite reutilización entre trabajos |
| Sobrescribir existente | Limpia el diccionario antes de iniciar el trabajo | Comienza de cero, elimina entradas antiguas |
Configuración del Diccionario a Nivel de Campo
Al configurar transformaciones individuales de campo:
Opciones a Nivel de Campo:
| Opción | Descripción | Ejemplo de Caso de Uso |
|---|---|---|
| Heredar de la regla | Usa la configuración del diccionario del nivel de la regla | Comportamiento predeterminado, consistente con la regla |
| Omitir diccionario | Omite el diccionario para este campo | Máxima aleatoriedad para campos sensibles |
| Ámbito de Etiqueta | Usa la etiqueta del campo para el ámbito | Consistencia estándar dentro del tipo de datos |
| Ámbito de Nombre de Campo | Usa el nombre del campo entre entidades | Consistente para campos con el mismo nombre |
| Entidad/Ámbito de Campo | Ámbito específico del campo | Valores diferentes por campo |
| Ámbito Global | Consistencia en todo el proyecto | Máxima consistencia |
| Ámbito Definido por el Usuario | Nombre de ámbito personalizado | Lógica de agrupación personalizada |
| Reemplazar Etiqueta | Anula la detección automática de etiquetas | Tratar el campo como un tipo diferente |
| Ámbito | Identificador de ámbito personalizado | Agrupación personalizada cuando se usa definido por el usuario |
| Con opciones | Incluye las opciones de la función en la clave | Diferentes transformaciones para el mismo valor con diferentes parámetros |
| Manejo de nulos | Almacena y reutiliza transformaciones nulas | Manejo consistente de valores nulos |
Modos del Diccionario Explicados
Modo: Ninguno (Desactivado)
Qué hace: El diccionario está completamente desactivado para esta regla o campo.
Comportamiento:
- No se almacenan transformaciones
- No se realizan búsquedas
- Cada transformación es independiente
- Máxima aleatoriedad
Cuándo usar:
- Cuando deseas una aleatorización máxima
- Para transformaciones únicas
- Cuando la consistencia no es necesaria
- Escenarios de prueba o exploración
Ejemplo:
Modo: Campo (Entidad + Campo)
Qué hace: Reutiliza transformaciones solo dentro de la misma combinación de entidad y campo.
Comportamiento:
- Mismo valor en el mismo campo → mismo resultado
- Mismo valor en diferente campo → diferente resultado
- Mismo valor en diferente entidad → diferente resultado
Cuándo usar:
- Cuando los campos deben tener transformaciones independientes
- Cuando el mismo valor significa cosas diferentes en distintos campos
- Pruebas de anonimización específica del campo
Ejemplo:
Modo: Etiqueta (Predeterminado)
Qué hace: Reutiliza transformaciones para campos con la misma etiqueta, sin importar la entidad o el nombre del campo.
Comportamiento:
- Mismo valor + misma etiqueta → mismo resultado
- Funciona entre diferentes entidades
- Funciona entre diferentes nombres de campo
- Modo más común para consistencia de datos
Cuándo usar:
- Manteniendo la integridad referencial
- Cuando las etiquetas representan tipos de datos (configuradas durante descubrimiento)
- Flujos de trabajo estándar de anonimización
- Recomendado para la mayoría de los casos de uso
Ejemplo:
Modo: Global
Qué hace: Todas las transformaciones comparten un único diccionario a nivel del proyecto.
Comportamiento:
- Mismo valor en cualquier lugar → mismo resultado
- Máxima consistencia
- Ámbito compartido único
- Funciona en todas las entidades, campos y etiquetas
Cuándo usar:
- Máxima integridad referencial
- Cuando deseas que valores idénticos siempre se transformen de manera idéntica
- Requisitos simples de consistencia global
- Cuando la detección de etiquetas no es confiable (verifica la configuración de descubrimiento)
Ejemplo:
Cuándo y Por Qué Usar Diccionarios
Usa Diccionarios Cuando:
-
Mantener la Integridad Referencial
- Necesitas que la misma persona/empresa/identificador se mapee consistentemente entre múltiples tablas (configurado mediante esquema)
- Las relaciones de claves foráneas deben preservarse
- Las relaciones de datos importan para pruebas o análisis
-
Anonimización Consistente Entre Trabajos
- Ejecutas trabajos varias veces (usando pipelines)
- Deseas resultados deterministas
- Necesitas comparar resultados con el tiempo
-
Consistencia Entre Bases de Datos
- Los mismos datos aparecen en múltiples bases de datos (configurado mediante destinos)
- Necesitas anonimización consistente en todas las fuentes
- Migraciones entre entornos
-
Datos de Prueba Realistas
- Los datos generados deben parecer realistas
- Las relaciones deben tener sentido
- La consistencia mejora la calidad de los datos
-
Cumplimiento y Auditoría
- Patrones de anonimización rastreables
- Transformaciones reproducibles
- Registro de auditoría de transformaciones
No Uses Diccionarios Cuando:
-
Se Necesita Máxima Aleatorización
- Pruebas de seguridad
- Escenarios críticos para la privacidad
- Cuando la unicidad es más importante que la consistencia
-
Transformaciones Únicas
- Exportaciones de datos de un solo uso
- No se necesita reutilización futura
- Entornos de prueba desechables
-
Diferentes Contextos Requieren Valores Diferentes
- Cuando "John" en la tabla de Clientes debe ser diferente de "John" en la tabla de Empleados
- Anonimización dependiente del contexto
- Requisitos específicos de privacidad por campo
Estrategias para Usar Diccionarios en Gigantics
Estrategia 1: Consistencia Basada en Etiquetas (Recomendado)
Mejor para: La mayoría de los flujos de trabajo de anonimización estándar
Configuración:
- Configura la regla con Modo del Diccionario: Etiqueta
- Asegúrate de que los campos estén correctamente etiquetados (person/name, email, phone, etc.)
- Activa "Almacenar nuevas transformaciones en el diccionario"
- Activa "Caché del diccionario" para rendimiento
Beneficios:
- Consistencia automática entre tipos de datos relacionados
- Funciona entre múltiples entidades
- Mantiene la integridad referencial
- Fácil de configurar
Ejemplo de Flujo de Trabajo:
Estrategia 2: Construcción Progresiva del Diccionario
Mejor para: Desarrollo iterativo y refinamiento
Configuración:
- Comienza con "Almacenar nuevas transformaciones" activado
- Ejecuta un trabajo inicial con una muestra más pequeña
- Revisa las entradas del diccionario
- Exporta el diccionario para hacer una copia de seguridad
- Ejecuta el trabajo completo - el diccionario ya contiene entradas parciales
Beneficios:
- Construye consistencia con el tiempo
- Prueba primero con conjuntos de datos más pequeños
- Puede refinar e importar de nuevo el diccionario
- Enfoque incremental
Flujo de Trabajo:
Estrategia 3: Diccionarios Específicos por Ámbito
Mejor para: Proyectos complejos con diferentes requisitos de consistencia
Configuración:
- Usa el modo Ámbito definido por el usuario para campos específicos
- Define ámbitos personalizados (por ejemplo, "identificadores-del-cliente", "datos-financieros")
- Agrupa campos relacionados bajo el mismo ámbito
- Diferentes ámbitos mantienen diccionarios separados
Beneficios:
- Control detallado
- Reglas de consistencia diferentes por tipo de datos
- Agrupación flexible
- Se puede exportar/importar ámbitos específicos
Ejemplo:
Estrategia 4: Pipeline con Reutilización del Diccionario
Mejor para: Trabajos programados y automatización
Configuración:
- Configura el pipeline con la configuración del diccionario
- Activa "Almacenar nuevas transformaciones"
- Desactiva "Sobrescribir diccionario existente"
- Programa el pipeline para ejecutarse regularmente
Beneficios:
- El diccionario crece con el tiempo
- Consistencia entre ejecuciones programadas
- Consistencia automatizada
- Se puede exportar el diccionario entre ejecuciones
Flujo de Trabajo:
Estrategia 5: Flujo de Trabajo de Importación/Exportación del Diccionario
Mejor para: Implementación en múltiples entornos y migración
Configuración:
- Desarrolla el diccionario en el entorno de desarrollo
- Exporta el diccionario después de las pruebas
- Importa el diccionario a staging/producción
- Usa el mismo diccionario en todos los entornos
Beneficios:
- Anonimización consistente entre entornos
- Se puede probar el diccionario antes de producción
- Implementaciones reproducibles
- Capacidad de copia de seguridad y restauración
Flujo de Trabajo:
Estrategia 6: Anulaciones a Nivel de Campo
Mejor para: Combinar consistencia y aleatoriedad
Configuración:
- A nivel de regla: Modo del Diccionario: Etiqueta (predeterminado)
- La mayoría de los campos: Heredar de la regla
- Campos específicos: Anular con "Omitir diccionario" o modo diferente
Beneficios:
- Consistencia predeterminada para la mayoría de los campos
- Control específico para campos sensibles
- Configuración flexible por campo
- Lo mejor de ambos mundos
Ejemplo:
Estrategia 7: Estrategia de Manejo de Nulos
Mejor para: Conjuntos de datos con muchos valores nulos
Configuración:
- Activa "Manejo de nulos" en las opciones del diccionario
- Los nulos se transformarán consistentemente
- Útil para mantener patrones de datos
Beneficios:
- Anonimización consistente de valores nulos
- Preserva patrones de nulos en los datos
- Puede transformar nulos en un marcador consistente
Ejemplo:
Mejores Prácticas
1. Comienza con el Modo Etiqueta
- Es el modo más versátil y útil
- Funciona automáticamente con etiquetas del descubrimiento
- Proporciona un buen equilibrio entre consistencia y flexibilidad
2. Activa el Caché para el Rendimiento
- La opción de caché del diccionario mejora la velocidad de búsqueda
- Especialmente importante para diccionarios grandes
- Usa memoria pero es significativamente más rápido
3. Almacena las Transformaciones para Reutilizarlas
- Activa "Almacenar nuevas transformaciones" a menos que necesites trabajos únicos
- Construye el diccionario con el tiempo
- Permite consistencia entre ejecuciones de trabajos
4. Exporta Regularmente
- Exporta el diccionario como copia de seguridad
- Exporta antes de cambios importantes
- Exporta para migración entre entornos
5. Usa la Granularidad del Ámbito Apropiada
- Demasiado amplio (Global): Puede causar consistencia no deseada
- Demasiado estrecho (Campo): Puede perder relaciones
- Justo (Etiqueta): Equilibra consistencia y flexibilidad
6. Monitorea el Tamaño del Diccionario
- Los diccionarios grandes pueden impactar el rendimiento
- Usa "Ver Resumen" para monitorear por ámbito
- Considera exportaciones específicas por ámbito si es demasiado grande
7. Prueba Antes de Producción
- Construye el diccionario en desarrollo
- Prueba con conjuntos de datos de muestra
- Exporta e importa a staging (mediante destinos)
- Verifica la consistencia
8. Documenta Ámbitos Personalizados
- Documenta los ámbitos definidos por el usuario
- Mantén la nomenclatura del ámbito consistente
- Documenta por qué ciertos campos usan ámbitos personalizados
Casos de Uso Comunes
Caso de Uso 1: Anonimización de Base de Datos de Clientes
Escenario: Anonimiza datos de clientes manteniendo las relaciones
Configuración:
- Modo del Diccionario: Etiqueta
- Almacenar nuevas transformaciones: Sí
- Caché del diccionario: Sí
Resultado:
- Cliente "John Smith" → "Mark Johnson" en todas partes
- Email "john@example.com" → "mark@email.com" en todas partes
- Relaciones preservadas entre tablas
Caso de Uso 2: Consistencia en Múltiples Bases de Datos
Escenario: Mismos datos en múltiples bases de datos, se necesita anonimización consistente
Configuración:
- Modo del Diccionario: Global
- Almacenar nuevas transformaciones: Sí
- Exportar el diccionario después de la primera ejecución
- Importar en trabajos de bases de datos posteriores
Resultado:
- Anonimización idéntica en todas las bases de datos
- Se puede compartir el diccionario entre proyectos
Caso de Uso 3: Procesamiento de Datos Incremental
Escenario: Procesar nuevos datos periódicamente, mantener consistencia con datos históricos
Configuración:
- Modo del Diccionario: Etiqueta
- Almacenar nuevas transformaciones: Sí
- Sobrescribir existente: No
- Ejecutar pipeline en programación
Resultado:
- Los nuevos datos usan el diccionario existente
- Nuevas entradas se añaden al diccionario
- Crecimiento de la consistencia con el tiempo
Caso de Uso 4: Consistencia Selectiva
Escenario: Algunos campos necesitan consistencia, otros aleatoriedad
Configuración:
- Regla Predeterminada: Modo Etiqueta
- Campos específicos: Omitir diccionario o Modo Campo
Resultado:
- Campos importantes: Consistentes
- Campos sensibles: Aleatorios
- Control flexible por campo
Solución de Problemas
El Diccionario No Funciona
Problema: Las transformaciones son diferentes en cada ejecución
Soluciones:
- Comprobar que el modo del diccionario no sea "Ninguno"
- Verificar que "Almacenar nuevas transformaciones" esté activado
- Comprobar si "Sobrescribir existente" está limpiando el diccionario
- Asegurarse de que el caché esté activado para el rendimiento
Problemas de Rendimiento
Problema: El trabajo se ejecuta lentamente con el diccionario activado
Soluciones:
- Activar la opción "Caché del diccionario"
- Comprobar el tamaño del diccionario - puede ser necesario limpiar entradas antiguas
- Considerar diccionarios específicos por ámbito
- Monitorear con el resumen del diccionario
Resultados Inconsistentes
Problema: El mismo valor se transforma de manera diferente
Soluciones:
- Comprobar si se está usando el modo correcto del diccionario
- Verificar que las etiquetas sean consistentes entre campos (comprobar resultados del descubrimiento)
- Comprobar si hay anulaciones a nivel de campo en la configuración de la regla
- Revisar la configuración del ámbito
Diccionario Demasiado Grande
Problema: El diccionario tiene demasiadas entradas
Soluciones:
- Usar "Ver Resumen" para identificar ámbitos grandes
- Exportar solo ámbitos específicos
- Limpiar el diccionario y reconstruir si es necesario
- Considerar dividirlo en múltiples ámbitos
Resumen
Los diccionarios son una característica poderosa en Gigantics que permiten:
- Anonimización consistente entre trabajos y bases de datos
- Preservación de la integridad referencial
- Configuración flexible desde global hasta nivel de campo
- Importación/Exportación para copia de seguridad y migración
- Optimización del rendimiento mediante caché
- Control detallado a través de modos y ámbitos
Comienza con modo Etiqueta para la mayoría de escenarios, activa caché y almacenamiento para mejores resultados, y usa exportar/importar para flujos de trabajo de copia de seguridad y migración.