Tengo una gran tabla SQL que es esencialmente un registro. Los datos son bastante complejos y estoy tratando de encontrar alguna forma de identificar anomalías sin que comprenda todos los datos. He encontrado muchas herramientas para la detección de anomalías, pero la mayoría de ellas requieren una especie de "intermediario", es decir, Elastic Search, Splunk, etc.
¿Alguien sabe de una herramienta que pueda ejecutarse contra una tabla SQL que construya una línea base y alertas de anomalías de forma automática?
Esto puede sonar perezoso, pero he pasado docenas de horas escribiendo guiones de informes individuales a medida que aprendo lo que significa cada tipo de evento y qué otros campos van con cada evento y no me siento más cerca de poder alertar sobre problemas reales en un de manera significativa. La tabla tiene 41 columnas y acaba de llegar a 500 millones de filas (3 años de datos).
fuente
Respuestas:
Si desea abordar esto desde una perspectiva SQL, en términos generales, identificaría cualquier variable de clasificación que cause un comportamiento diferente. Luego realice algo como lo siguiente en varias variables de análisis.
Realizaría esto como un ejercicio único sobre, digamos, el valor de datos más reciente del año, luego, desde una perspectiva de velocidad, lo ejecutaría tan regularmente como sea necesario, para marcar datos excepcionales.
Un mejor enfoque, quizás, que significa aprender nuevas tecnologías es una solución HDFS / Spark y luego PIG / Python / R. Pero HDFS / Spark tiene algunas soluciones que salen de la caja para hacer análisis de registro. Es probable que 500 millones de registros estén llegando al alcance de los problemas de rendimiento con SQL, incluso con la partición de tablas y la indexación de columnas.
fuente
Si necesita código SQL que ejecute varios métodos de detección de valores atípicos en una tabla arbitraria, consulte mi serie de artículos y ejemplos de códigoorientado a SQL Server. Proporciono algunos códigos preliminares para las pruebas de Grubb, las puntuaciones Z y las puntuaciones Z modificadas, el rango intercuartil, la prueba Q de Dixon, GESD, la prueba Tietjen-Moore, el criterio de Pierce, el criterio de Chauvenet, la prueba modificada de Thompson Tau, la distancia de Cook, Mahalanobis Distancia, Ley de Benford y varias tramas visuales. Tenga en cuenta que soy un aficionado a esto y que este es parte de mi código anterior, por lo que estoy seguro de que se necesitarán correcciones; esto al menos proporciona un punto de partida para que pueda ejecutar estas pruebas en cualquier tabla de base de datos para la que tenga permisos. También está en T-SQL, por lo que deberá ajustar el código para PL / SQL o cualquier otra marca de SQL que pueda estar utilizando, si se encuentra en alguna otra plataforma como Oracle o MySql. Sin embargo, esto debería ayudarte a comenzar. Simplemente resuelve los problemas y configura los procedimientos almacenados para que se ejecuten periódicamente en un horario y listo. Avíseme si tiene algún comentario sobre las rutinas, siempre estoy buscando mejorar mi escritura SQL.
fuente