Resultados

Las cifras que pide un CTO. Todas.

¿Nos inundará de alertas? ¿Detectará lo que perjudica? ¿Funcionará en nuestros equipos? ¿Podemos confiar en las cifras? Estas son todas las respuestas que hemos medido.

Datainspec 0.4.1Octubre de 2026un portátil · sin reglas escritas
0hallazgos en 432 análisis de archivos sin cambios, en 108 conjuntos de datos
93,15 %de 628 fallos inyectados en conjuntos de datos públicos reales detectados, sin escribir reglas
106 millonesde filas comparadas en un portátil, con 5 GB de memoria
229 millonesde celdas de texto reales, 0 falsas alertas por comandos de bases de datos ocultos

01¿Nos inundará de alertas?

Sin alertas cuando no hay problemas.

La fatiga por alertas acaba con las herramientas de datos. Por eso medimos las alarmas en datos que no han cambiado con el mismo rigor que las detecciones.

0advertencias

con un mes real del registro de empresas de Francia

30 millones de empresas, septiembre frente a octubre de 2025. Ningún control de columnas señaló nada. Lo que cambió cabe en tres líneas:

What changed · SIRENE · Oct 2025clean
  • VolumeRows: +128,055 (+0.43%), 30,020,346 to 30,148,401, within the usual range
  • Names, codes11 name or code columns: new and gone values, each under the alarm floors
  • Patterns5 columns: the share of values off their usual pattern moved 0.16 to 0.25 points, under the alarm
Cómo lo medimos

StockUniteLegale de INSEE, septiembre y octubre de 2025: 30.020.346 y 30.148.401 filas, 35 columnas, 4,3 GB de CSV, por la vía de bajo consumo de memoria, en 1.240 segundos y con un pico de 10,1 GB, en el portátil descrito más abajo. El modelo por fila generó dos advertencias (filas que resultan inusuales al considerar sus valores juntos), contabilizadas por separado; los controles de columnas no generaron ninguna.

0

hallazgos en 432 análisis de archivos sin cambios

Cada uno de los 108 conjuntos de datos se analizó frente a sí mismo, con cuatro configuraciones. Nada cambió y no se notificó nada.

Cómo lo medimos

La prueba de control del mismo archivo: 108 conjuntos de datos, cada uno analizado frente a sí mismo por la vía de bajo consumo de memoria con tres presupuestos de memoria y una vez por la vía en memoria: 432 análisis, ningún falso hallazgo. Se rechazaron otros cuatro análisis por falta de memoria antes de comenzar cualquier trabajo (README, Limits; R8, sección 2.4). Ambas rondas completas se repitieron para la versión 0.4.1: resultados idénticos.

229 millones

celdas de texto reales, 0 falsas alertas

El control de comandos de bases de datos ocultos en texto no señaló nada en 229.214.793 celdas reales y detectó 450 de 450 cargas maliciosas ocultas en el conjunto de prueba.

Cómo lo medimos

La prueba de control por fila con datos limpios: todas las celdas de texto de 11 conjuntos de datos reales a tamaño completo, 229.214.793 celdas, 0 falsos positivos; detección de 450 de 450 en el conjunto de cargas maliciosas encubiertas (docs/COVERAGE.md). Este control no abarca las inyecciones basadas en retardos, codificadas en URL ni numéricas sin comillas.

Sin alertas no significa a ciegas

La deriva lenta también se ve.

Una columna que se desplaza un 1 % al mes queda por debajo del umbral de alarma cada vez. History sigue cada columna a lo largo de todos los análisis y versiones que usted aprobó, ordena las que más cambiaron y las representa: doce pequeños pasos se leen como una tendencia.

Cómo lo medimos

La pestaña History de la aplicación, desde la versión 0.4.0. Para cada columna: proporción de valores ausentes, número de valores distintos, media y hallazgos, a lo largo de todos los análisis del conjunto de datos y de todas las versiones aprobadas, con cada aprobación marcada en el gráfico. Ordena las 20 columnas que más cambiaron desde el análisis más antiguo, una vez registrados 4 análisis. Muestra la tendencia; no genera una alarma por ella.

análisis 1análisis 13+12%
Ilustración: aproximadamente un 1 % por análisis. Cada paso permanece dentro de su banda de alarma (sombreada); la tendencia no.

02¿Detectará lo que perjudica?

Detecta lo que perjudica. Sin reglas escritas.

Todos estos resultados utilizan la configuración predeterminada. Nadie escribió una regla, fijó un umbral ni le indicó qué buscar.

585de 628

fallos inyectados detectados, 93,15 %

Columnas eliminadas, tipos cambiados, picos de valores ausentes, valores atípicos, nuevas categorías y deriva de formato, inyectados en conjuntos de datos públicos reales. Configuración predeterminada; nadie escribió una regla.

Cómo lo medimos

628 fallos inyectados de uno en uno en un corpus de 107 conjuntos de datos públicos reales de hasta 5.000 filas cada uno, cada uno analizado frente a su original limpio con la configuración predeterminada; detectado significa una advertencia o un hallazgo crítico. Medido el 18 de septiembre de 2026.

Calibration

Precisión donde importa.

Esa es la configuración predeterminada: el perfilado y la calibración automáticos fijan cada umbral para que los meses normales no generen alertas. Para las columnas más importantes, un ingeniero fija un umbral preciso en la pestaña Calibration, indicando el motivo. Queda registrado y puede deshacerse.

Cómo lo medimos

En la pestaña Calibration de la aplicación, por columna y por control (la tasa de valores ausentes, el umbral de valores atípicos y los demás controles de la columna), un nuevo valor y un motivo. Cada cambio se conserva con quién lo hizo y puede revertirse.

NOAA · registros meteorológicos públicos

1.420 lecturas ficticias, señaladas con sus filas.

Códigos de relleno que pasan por mediciones: puntos de rocío de 9999.9, velocidades del viento de 999.9. Señalados antes de que esa versión pudiera convertirse en la referencia.

columnavalorfilas
DEWP9999.9347
WDSP999.9535
MXSPD999.9538
Cómo lo medimos

NOAA GSOD 2023, 49 estaciones de Noruega y Svalbard, 10.977 filas: la revisión de calidad que se ejecuta antes de aprobar una versión, cada señalamiento con filas de ejemplo. Señala estas tres columnas; otras columnas también contienen códigos de NOAA y no se señalan.

Citi Bike · trayectos de Nueva York

Una estación de pruebas, en los datos públicos de una ciudad.

Entre diciembre y enero señaló 52 identificadores de estaciones que no había visto antes, con sus filas. 51 eran estaciones nuevas. Una era una estación de pruebas de laboratorio, en 3 filas, que se había colado en la exportación pública.

end_station_id no visto antesqué era
JC008estación nueva, Newport Pkwy
HB305estación nueva, 9 St HBLR
JC117estación nueva, Dr. Lena Edwards Park
Lab - NYC - Monolithuna estación de pruebas de laboratorio, 3 filas
+ 48 másestaciones nuevas
Cómo lo medimos

Trayectos de Citi Bike NYC, diciembre de 2025 frente a enero de 2026: 2.091.620 y 1.816.391 filas. “Identificadores nunca vistos” en las estaciones de llegada y salida (52 identificadores en 15.085 filas, 20 identificadores en 11.178), ambos críticos. Una persona leyó la lista y marcó el hallazgo como cambio esperado, y la estación de pruebas como problema real. Medido en agosto de 2026 con una versión anterior del motor.

03¿Funcionará en nuestros equipos?

Se ejecuta donde están sus datos. En un portátil.

Ninguno de los archivos se carga entero: los procesa por partes a través de una carpeta en disco, de modo que la memoria se mantiene estable al crecer los datos. Antes de un análisis grande calcula la memoria necesaria y rechaza el análisis en lugar de fallar durante la ejecución.

Tiempo, filas en cada versión

1 millón de filas
35 s
5,3 millones de filas
4,6 min
30 millones de filas
21 min
53 millones de filas
33 min

Un portátil. Cada ejecución compara dos archivos de ese tamaño.

Pico de memoria: 10× más filas, la misma memoria

5,3 millones de filas
5,1 GB
53 millones de filas
5,0 GB
El portátil
32 GB

53 millones de filas en cada versión, 106 millones en total, con 5 GB: aproximadamente una sexta parte de la memoria del portátil.

Acceso de solo lectura a sus fuentesNo se envían datos, perfiles ni hallazgos al exteriorLínea de comandos en Windows y Linux, o DockerCódigos de salida 0–3 y JUnit para CI
Cómo lo medimos

Windows 11, Intel i9-13950HX, 32 GB. 1 millón de filas: un registro de población sintético, midiendo el comando completo, incluido el arranque (32,6 y 34,5 s). 5,3 y 53 millones de filas: trayectos de vehículos de alquiler con conductor en Nueva York, Parquet, 25 columnas, dos rangos de filas de los mismos tres meses, vía de bajo consumo de memoria; el pico de memoria es el pico de memoria comprometida del proceso (53 millones de filas: 3,2 GB residentes). 30 millones: registro de empresas de Francia, CSV, pico de 10,1 GB. La memoria indicada como mínimo es una estimación y se superó hasta en un 5 %; con 355 columnas, el modelo por fila no terminó en este portátil.

04¿Podemos confiar en estas cifras?

Medido antes de cada lanzamiento.

Cada versión ejecuta la misma medición frente a la anterior. Un resultado que cambie se corrige o se declara con su motivo; de lo contrario, la versión no se publica.

  1. Cadafallo inyectado se vuelve a comprobar frente a la última versión
  2. 4pruebas de control con datos limpios, ejecutadas antes y después
  3. 2rondas completas que analizan cada conjunto de datos frente a sí mismo
  4. 1revisión de resultados para ver qué cambió
  5. Publicarsolo cuando se haya explicado cada cambio
Cómo lo medimos

Antes de publicar una versión: los fallos inyectados se vuelven a probar frente a la última versión, se ejecutan cuatro pruebas de control con datos limpios antes y después (controles de rangos, controles de proporciones, capa por fila, picos de códigos de relleno) y cada conjunto de datos se analiza frente a sí mismo dos veces. Todo resultado que cambie se clasifica.

05Por qué importa

El coste de un archivo defectuoso.

Dos errores habituales, con datos sintéticos creados para nuestros vídeos. Los hallazgos son del propio motor; las cifras son nuestra interpretación de los archivos.

Un comercio sintético

Una tienda empezó a enviar los precios en céntimos.

1.703 filas, todas de una misma tienda. Si el archivo de octubre llegara al informe mensual, las ventas mostrarían 13,2 M€ en lugar de 1,6 M€.

Ver la demo de 90 segundos

Un registro de población sintético

Una oficina abrió su archivo en Excel y lo guardó.

84.134 identificadores de personas reescritos; un proceso de pagos que los usara para buscar coincidencias dejaría fuera a 17.282 personas, 9,0 M€ en un mes.

Ver la historia de 70 segundos

Compruébelo con sus datos.

Un piloto con un conjunto de datos recurrente, en sus equipos, con criterios de éxito acordados por escrito antes de empezar.