Misata
Genera datos de prueba realistas para múltiples tablas con claves foráneas que se resuelven y agregados que cuadran, devueltos con una verificación de integridad. Siembra Postgres, MySQL y SQLite desde tu propio esquema, o exporta CSV/JSON/SQL/Parquet. Determinista, de modo que el mismo esquema y la misma semilla generan las mismas filas.
Documentación
Misata
El motor de datos sintéticos relacionales que cumple resultados de negocio exactos.
Genera bases de datos multi-tabla completas con claves foráneas que se resuelven, matemáticas que cuadran y prosa auténtica de dominio con cero Lorem Ipsum. A partir de una sola frase, un esquema YAML o una base de datos en vivo.
Documentación · Misata Studio · Registro de cambios
¿Prefieres una interfaz visual? Prueba Misata Studio para diseñar esquemas en un lienzo interactivo y generar conjuntos de datos directamente en tu navegador.
El Cambio de Paradigma
La mayoría de las herramientas de datos sintéticos toman datos existentes y los imitan. Pero en la ingeniería moderna, rara vez tienes datos limpios para empezar—o necesitas datos diseñados alrededor de un resultado objetivo específico:
- "Los ingresos mensuales suben de $50k a $200k con una caída en el tercer trimestre."
- "La tasa de fraude comienza en 1% en el primer trimestre y sube a 6% para el cuarto trimestre."
- "El
total_spentde cada cliente es estrictamente igual a la suma de sus líneas de pedido."
Misata funciona al revés: tú declaras el resultado, y Misata resuelve las filas individuales que lo alcanzan con $0.00 de error, garantizado por un mecanismo de suma condicional Gamma de forma cerrada (arXiv:2606.08736). Sin modelos de aprendizaje automático, sin datos reales requeridos y cero claves foráneas alucinadas.
⚡ Inicio Rápido en 30 Segundos
Instala vía pip:
pip install misata
CLI
Genera un conjunto de datos relacional completo a partir de una sola descripción:
misata generate \
--story "Brazilian fintech with R$ payments, CPF verification, and 3% fraud" \
--rows 1000 \
--output-dir ./demo_data
Genera CSVs limpios y un oracle_report.json que verifica cero huérfanos de claves foráneas, cumplimiento de restricciones y fidelidad estadística.
Python
import misata
# Generate multi-table DataFrames from plain English
data = misata.generate("SaaS startup with 500 users, monthly subscriptions, and 12% churn")
users_df = data["users"]
subscriptions_df = data["subscriptions"]
Enriquece Datos Existentes en 1 Línea
Reemplaza columnas aburridas o vacías en un DataFrame existente con prosa auténtica de dominio:
import misata
import pandas as pd
df = pd.read_csv("support_cases.csv")
# Automatically detects semantic columns (subjects, resolution notes, memos, error traces)
df_enriched = misata.enrich_text(df, seed=42)
Reemplaza tu script de datos
El script de Faker + pandas dibuja cada columna por su cuenta: las claves foráneas son uniformes, los montos son uniformes, las marcas de tiempo son planas a lo largo del reloj, los correos no coinciden con los nombres y nada cuadra bajo un JOIN. Escribe la forma en su lugar y verifica el resultado:
# misata.yaml
seed: 7
tables:
customers:
rows: 2000
columns:
customer_id: {type: int, primary_key: true}
email: {type: text, text_type: email}
signup_at: {type: datetime, start: "2024-01-01", end: "2025-12-31"}
orders:
rows: 20000
columns:
order_id: {type: int, primary_key: true}
customer_id: {type: foreign_key, references: customers.customer_id}
ordered_at: {type: datetime, start: "2024-01-01", end: "2025-12-31"}
amount: {type: float, distribution: lognormal, mu: 3.8, sigma: 0.9, decimals: 2}
misata generate --config misata.yaml --output-dir data
misata audit data # contradictions: shipped before ordered, totals that do not add up
misata realism data # synthetic tells: uniform money, even fan-out, flat hours, no nulls
Por defecto, los clientes están activos de manera desigual (unos pocos realizan la mayoría de los pedidos), las horas del día y los días de la semana tienen un ritmo, y cada pedido es posterior a su cliente. Un error tipográfico como lamda: 3 es un error con una sugerencia, no una columna de ruido.
Cuando el esquema no es suficiente:
- Registros de eventos.
processes:declara cómo los tickets, reclamos o pedidos avanzan por pasos, con probabilidades de ramificación, bucles de retrabajo y una duración por paso, y escribe una tabla de registro de eventos (misata.to_xespara minería de procesos). Guía - Tu propia lógica.
@misata.generator("tier")registra una función que ve la fila padre y un RNG con semilla; el esquema la nombra congenerator: tier, ymisata --plugin my_modulela carga en la CLI. Guía - Pruebas. Instalar misata registra un plugin de pytest:
@pytest.mark.misata(schema="misata.yaml")y una prueba recibemisata_tableso una URLmisata_sqlitecon semilla. Sin conftest. Guía - Cargas anidadas.
type: jsonconfieldsytype: arrayconitemsgeneran valores anidados reales (correos, ciudades, códigos dentro de ellos);misata.to_jsonlymisata.to_polarslos mantienen anidados. Guía - Di para qué sirve.
preset: demo | test | load | ml | evalestablece los valores predeterminados de realismo que ese trabajo necesita: fechas actuales, fixtures pequeños, volumen o suciedad declarada. Guía - Tus modelos Django.
misata.from_django()lee campos, opciones, longitudes, validadores y relaciones. Guía - Tu base de datos existente.
misata seed postgresql://...lee el esquema, respeta CHECK, UNIQUE y anchos de columna, e inserta todo en una sola transacción.
¿Obedece el esquema? En cinco esquemas SQL con reglas CHECK, claves compuestas, una jerarquía auto-referenciada y una cadena de claves foráneas de seis niveles, Misata generado solo desde el DDL tiene cero violaciones; el script de Faker que la gente escribe en su lugar tiene de 15,000 a 50,000 por esquema, y el modelo multi-tabla de SDV, entrenado con datos válidos, tiene de 3,000 a 5,600 en los tres esquemas que acepta (rechaza los otros dos). Contado por un verificador que no comparte código con Misata (benchmark de validez).
¿Qué tan realista es? Probamos la generación a ciegas contra datos reales reservados (benchmark). En los pedidos reales del marketplace de Olist, un esquema de nombres y tipos sin acceso a los datos es más difícil de distinguir de filas reales que un script de Faker (AUC del clasificador 0.63 vs 0.78, media de cinco semillas) y que SDV ajustado en 15,000 pedidos reales (0.71). En viajes de taxi de NYC supera al script (0.75 vs 0.79) y acerca la curva de horas nocturnas más que SDV, pero sus tarifas siguen siendo demasiado amplias, y SDV ajustado en los viajes reales se mantiene por delante (0.68). El benchmark publica ambos y dice qué resultados siguieron a una corrección que provocó.
🚀 Las 6 Capacidades Únicas de Misata
Lo que separa a Misata de librerías heredadas como Faker y modelos de imitación como SDV:
1. Conformidad Exacta con el Resultado (Error de $0.00)
Declara el resultado agregado (curva de ingresos, tasa de abandono, pico estacional, curva de impago), y Misata genera micro-filas cuyas sumas mensuales o anuales coinciden con tu objetivo con $0.00 de error. Mientras que los sintetizadores estándar fallan los objetivos agregados por 74–86%, Misata los alcanza de manera demostrable (lee el artículo de investigación).
2. Oráculo de Sandbox Instantáneo para Agentes de IA de Codificación
Misata incluye un servidor nativo Model Context Protocol (MCP). Cursor, Claude Code y Windsurf pueden llamar a create_sandbox para crear una base de datos SQLite aislada sembrada con datos relacionales realistas en 2 segundos. Los agentes de IA pueden probar consultas SQL y código de prueba contra tablas reales en lugar de adivinar el esquema.
pip install "misata[mcp]" && misata mcp install --client all
3. Integridad Relacional DAG Topológica (0 Claves Foráneas Huérfanas)
Las relaciones padre-hijo en más de 10 tablas se resuelven mediante ordenamiento por rango topológico. Las jerarquías auto-referenciadas, las restricciones únicas compuestas y la causalidad temporal (signup_date <= order_date <= payment_date <= refund_date) se aplican estrictamente.
4. Realismo de Texto Multi-Vertical (Cero Lorem Ipsum)
Sin galimatías de marcador de posición en latín. Los generadores combinatorios de microtexto proporcionan texto auténtico en más de 15 industrias del mundo real:
- Comercio Electrónico: Descripciones de productos condicionadas por categoría (electrónica, ropa, hogar, belleza), razones de devolución auténticas, notas de entrega.
- SaaS B2B: Asuntos de tickets de soporte, descripciones de problemas multilínea, notas de resolución de agentes, razones de abandono por competencia.
- FinTech: Descriptores de estados de cuenta bancarios, memorandos de remesa ACH/transferencia, anulaciones de auditoría AML.
- Salud: Notas de progreso clínicas SOAP, quejas principales, instrucciones de alta, horarios de dosificación médica (
TID,QID,PRN). - Reseñas de Clientes: Sentimiento calibrado de manera demostrable a calificaciones de 1 a 5 estrellas.
5. Velocidad Vectorizada (100x–500x Más Rápido que Faker)
Mientras que Faker itera fila por fila en Python puro (5,000–15,000 filas/s), Misata usa operaciones vectorizadas de arreglos NumPy. Genera 500,000 a 16,000,000 de filas/segundo en un solo núcleo de CPU.
6. Inspecciona y Siembra Bases de Datos en Vivo (misata seed)
Apunta Misata directamente a una base de datos PostgreSQL, MySQL o SQLite. Misata inspecciona claves foráneas, restricciones CHECK, enums y tipos de columna, genera un plan de inserción topológico y siembra datos similares a producción directamente en tu base de datos sin escribir código de esquema.
🎯 Docenas de Casos de Uso del Mundo Real
Misata está construido para ingenieros, testers, equipos de datos y fundadores en docenas de cargas de trabajo cotidianas:
🛠️ Ingeniería de Datos y Pipelines ETL
- Pruebas de Pipeline con Respuesta Conocida: Declara objetivos KPI exactos (ej. $1.2M de ingresos en el cuarto trimestre), genera tablas crudas sintéticas y verifica que tus transformaciones dbt, Spark o SQL devuelvan la cifra esperada exacta.
- Pruebas de Estrés de Alto Rendimiento: Procesa 10,000,000+ de filas en segundos para probar límites de partición, rendimiento de shuffle y escalado de almacenes de datos.
- Ensayos de Migración de Esquema: Ensaya backfills destructivos de columnas y adiciones de claves foráneas contra datos realistas antes de desplegar a producción.
- Fixtures Deterministas de CI/CD: Semillas reproducibles aseguran que las aserciones de prueba nunca fallen de manera intermitente en ejecuciones de integración continua.
🤖 Agentes de IA de Codificación y Desarrollo LLM
- Sandboxes SQL para Agentes: Proporciona a Cursor, Claude Code y Windsurf bases de datos aisladas y pre-sembradas para validar consultas SQL sin acceso a producción.
- Generación de Benchmarks Texto-a-SQL: Construye bancos de esquemas relacionales complejos con joins diversos para evaluar modelos de codificación afinados.
- Paquetes de Bases de Datos de Evaluación (Evalpacks): Crea conjuntos de datos de evaluación verificados con claves de respuesta independientes de DuckDB donde la verdad fundamental no puede estar equivocada.
🗄️ Desarrollo de Aplicaciones y Siembra de Bases de Datos
- Siembra de Entornos Locales y de Staging: Siembra bases de datos Postgres, MySQL o SQLite de staging con historiales de clientes realistas y 0 claves foráneas rotas (
misata seed). - Fixtures de Modelos ORM: Genera fixtures ricos que coincidan con tu esquema Prisma o modelos declarativos SQLAlchemy.
- Verificación de Aislamiento Multi-Tenant: Prueba seguridad a nivel de fila (RLS) y reglas de aislamiento de tenant sin fuga de claves entre tenants.
- Crecimiento Incremental de Datos (
generate_diff): Añade 5,000 filas nuevas a un conjunto de datos existente mientras auto-desplazas IDs y preservas la integridad referencial.
📊 BI, Demos de Producto e Ingeniería de Ventas
- Demos de Dashboards Listos para la Junta: Puebla dashboards de Tableau, PowerBI y Metabase con estacionalidad convincente (picos de Black Friday, caídas de verano) en lugar de ruido aleatorio plano.
- Prototipos de Ingeniería de Ventas: Demuestra análisis orientados al cliente con nombres de empresas auténticos, nombres humanos e historiales de transacciones con cero exposición de PII.
- Vistas Previas de Funcionalidades: Previsualiza próximos gráficos, cohortes y métricas antes de que se acumulen datos de clientes de producción.
💳 FinTech, Banca y Pagos
- Equilibrio de Libro Mayor de Partida Doble: Genera transacciones contables donde los débitos totales son estrictamente iguales a los créditos en cada cuenta del libro mayor.
- Cintas de Riesgo Crediticio y Préstamos: Calibra curvas de morosidad, distribuciones de puntaje crediticio y tasas de impago para pruebas de carteras de crédito.
- Pruebas de AML y Detección de Fraude: Aplica tasas exactas de incidencia de fraude (ej. 2.4%) con memorandos de transacción auténticos y rastros de auditoría AML.
- Remesa de Pagos: Simula transacciones SWIFT, ACH y de tarjeta con números de ruta válidos, CVVs y descriptores de estado de cuenta.
🏥 Salud e Informática Clínica
- Cohortes de pacientes sintéticos: Genera poblaciones de pacientes realistas, signos vitales e historiales de encuentros a partir de un esquema, sin ningún registro de paciente real involucrado.
- Evaluación de Modelos NLP Clínicos: Evalúa LLMs de salud contra notas SOAP auténticas, quejas principales y resúmenes de alta.
- Simulación de Salas y Horarios: Simula cuadrículas de citas hospitalarias con intervalos realistas de 15 minutos, horarios comerciales y caídas de fin de semana.
📦 Comercio Electrónico y Logística de Cadena de Suministro
- Modelado de Catálogos Multi-Categoría: Produce especificaciones y descripciones de artículos realistas condicionadas por categoría (electrónica, ropa, hogar, industrial).
- Flujos de Devolución y Reembolso: Simula logística de devoluciones con razones de devolución auténticas, hitos de reposición y fechas de reembolso al cliente.
- Optimización de Rutas y Flotas: Calcula rutas realistas con cálculos de distancia de Haversine y direcciones secundarias válidas (Apto, Suite, Edificio).
🛡️ Ciberseguridad e Infraestructura de TI
- Conjuntos de datos de intrusiones de red: Genere registros netflow, escaneos de puertos y patrones de tráfico DDoS para la evaluación comparativa de herramientas de seguridad.
- Análisis de excepciones y errores del sistema: Pueble los paneles de observabilidad con registros realistas de interbloqueos, tiempos de espera HTTP 504 y agotamiento de grupos de conexiones.
- Registro de auditoría de cumplimiento: Simule registros de acceso estilo SOC2 e HIPAA con justificaciones documentadas de anulación de acceso gerencial.
🔬 Aprendizaje automático e investigación estadística
- Gemelos sintéticos a partir de CSV (
misata.mimic): Clone distribuciones y correlaciones de CSV sensibles sin copiar una sola fila original. - Modelado de clústeres jerárquicos (ICC): Genere datos de múltiples sitios con coeficientes de correlación intraclase especificados para regresión de efectos mixtos.
- Autocorrelación de series temporales (AR1): Genere trayectorias de entidades longitudinales que mantengan una memoria temporal realista.
⚡ Por qué nunca deberías usar Faker de nuevo
Faker fue construido hace más de una década para valores simulados de un solo atributo. Para aplicaciones modernas, introduce modos de fallo críticos:
| Problema en 2026 | Realidad de Faker | Misata |
|---|---|---|
| Topología relacional | ✗ 0 concepto de bases de datos o claves foráneas; se requiere código de unión manual | ✓ DAG topológico estricto; 0 claves foráneas huérfanas garantizadas |
| Coherencia entre columnas | ✗ Incoherente (p. ej., nombre "Masculino", correo electrónico no coincidente, ciudad inválida) | ✓ Identidades, direcciones y causalidad coherentes |
| Realismo del texto | ✗ "Lorem Ipsum" latino de 2000 años o plantillas robóticas | ✓ Más de 15 grupos de microtextos de dominio (notas SOAP, tickets, memorandos) |
| Consistencia matemática | ✗ Viola la contabilidad básica (price * qty != total) | ✓ Fórmulas matemáticas exactas y libros contables equilibrados |
| Rendimiento | ✗ ~10k filas/s (bucles de Python de un solo hilo) | ✓ 500k a 16M filas/s (motor NumPy vectorizado) |
| Objetivos agregados | ✗ Imposible (ruido aleatorio uniforme) | ✓ Conformidad exacta de resultados de forma cerrada (error de $0.00) |
| Siembra de bases de datos | ✗ Scripts SQL manuales o código repetitivo de ORM | ✓ Introspección y siembra con un solo comando (misata seed) |
Lea la guía completa Faker vs SDV vs Misata para ver todas las comparaciones y puntos de referencia.
🛠️ Ocho formas de generar datos
Misata se adapta a cualquier flujo de trabajo que ya utilice:
| Modo de entrada | Mejor para | Aprenda más |
|---|---|---|
| 1. Historia en inglés sencillo | Prototipado rápido, configuración cero | Guía de historias |
| 2. Esquema YAML como código | Comprometer definiciones de datos versionadas en git | Guía de YAML |
| 3. Siembra de bases de datos en vivo | Introspección y población de Postgres, MySQL, SQLite | Guía de siembra de bases de datos |
| 4. Esquema de dictado de Python | Generación programática en memoria en scripts de Python | Guía de esquema de dictado |
| 5. Esquemas de proyectos dbt | Generación de fixtures directamente desde schema.yml | Guía de siembra de dbt |
| 6. Esquema de Prisma | Desarrolladores de Next.js y Node.js que siembran aplicaciones full-stack | Guía de Prisma |
| 7. LLM de múltiples proveedores | Esquemas impulsados por Groq, OpenAI, Claude, Gemini u Ollama | Guía de LLM |
| 8. Crecimiento incremental | Añadir filas con IDs de desplazamiento y claves foráneas preservadas | Guía incremental |
🌐 Más de 20 dominios industriales integrados
Genere esquemas completos de dominio con distribuciones estadísticas ajustadas de fábrica:
SaaS · Comercio electrónico · FinTech · Salud · Logística · Riesgo crediticio · RR. HH. y personas · Medios de streaming · Seguros · CRM y ventas · Entrega de alimentos · Viajes y hospitalidad · Juegos · Cripto y DeFi · Mantenimiento predictivo · Intrusión de red · Finanzas islámicas · EdTech · Bienes raíces · Centros de contacto · SPC de fabricación
Consulte el Catálogo completo de dominios.
⚡ Rendimiento
Medido en hardware estándar de la serie M de Apple (un solo núcleo de CPU, sin GPU):
| Carga de trabajo | Número de filas | Tiempo de generación | Rendimiento |
|---|---|---|---|
| Tabla única (distribución lognormal) | 1,000,000 | 0.06 s | ~16M filas/s |
| Esquema de estrella (5 tablas, 4 dependencias de clave foránea) | 1,055,030 | 1.54 s | ~687k filas/s |
| Base de datos empresarial de múltiples tablas | 100,000 | 0.42 s | ~240k filas/s |
📚 Índice de documentación
Para guías detalladas, referencias de API y análisis profundos de arquitectura:
- Introducción y guía de inicio rápido: Tutorial de 5 minutos desde la instalación hasta su primer conjunto de datos.
- Realismo de texto y
enrich_text: Análisis profundo de los 15 grupos de microtextos y el enriquecimiento de texto de DataFrames. - Guía del servidor MCP para agentes de IA: Configuración y referencia de herramientas para Cursor, Claude Code y Windsurf.
- Curvas de resultados y estacionalidad: Especificación matemática de curvas de ingresos y crecimiento.
- Siembra de bases de datos en Python: Introspección y siembra de bases de datos de producción.
- Guía del modo de imitación: Gemelos sintéticos de un CSV y por qué un gemelo no es anónimo.
- Formatos de exportación: Exportación a DuckDB, Apache Parquet, Arrow IPC y SQL ANSI/Postgres.
- Apache Spark y Databricks: Escalado de generación sintética en clústeres Spark distribuidos.
- Referencia completa de declaraciones de esquema: Referencia completa de parámetros para cada tipo de columna y restricción.
📄 Investigación y citación
El motor de conformidad de resultados exactos de forma cerrada está formalizado en la preimpresión de arXiv 2606.08736:
@article{rasin2026declarative,
title = {Declarative Outcome-Conformant Synthesis: Exact, Closed-Form
Specification Satisfaction and a Conformance Benchmark},
author = {Rasin, Muhammed},
year = {2026},
url = {https://arxiv.org/abs/2606.08736v1}
}
🤝 Contribución y estado de desarrollo
Misata está actualmente en un desarrollo masivo y rápido para llevar el realismo sintético a su límite absoluto: expandir el conocimiento de dominios del mundo real, profundizar los vocabularios de los grupos de semillas, elevar el realismo de las columnas de texto y avanzar en la fidelidad estadística en cada vertical de la industria.
¡Las contribuciones de expertos en dominios, ingenieros de datos e investigadores son muy bienvenidas! Ya sea que desee:
- Enriquecer grupos de texto y vocabulario: Añadir semillas auténticas y reglas gramaticales para dominios especializados en
misata/vocab_seeds.pyymisata/microtext.py. - Contribuir con una cápsula de dominio: Expandir las plantillas de industria integradas (salud, legal, banca, ingeniería, cadena de suministro).
- Avanzar en la fidelidad estadística: Mejorar cópulas multivariadas, dinámicas de series temporales o solucionadores de curvas de resultados.
- Reportar casos límite y fallos de realismo: Abrir un issue o discusión siempre que los valores generados no parezcan 100% auténticos para humanos.
git clone https://github.com/rasinmuhammed/misata
cd Misata
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest -q
Misata es de código abierto bajo la Licencia MIT.