У меня есть большая таблица SQL, которая по сути является журналом. Данные довольно сложные, и я пытаюсь найти способ идентифицировать аномалии без понимания всех данных. Я нашел много инструментов для обнаружения аномалий, но большинство из них требует своего рода «среднего человека», то есть Elastic Search, Splunk и т. Д.
Кто-нибудь знает инструмент, который может работать с таблицей SQL, которая автоматически создает базовую линию и оповещает об аномалиях?
Это может показаться ленивым, но я потратил десятки часов на написание отдельных сценариев отчетности, когда узнал, что означает каждый тип события и какие другие поля идут с каждым событием, и я не чувствую себя ближе к возможности оповещать о реальных проблемах в осмысленно. Таблица содержит 41 столбец и всего 500 миллионов строк (данные за 3 года).
источник
Ответы:
Если вы хотите приблизиться к этому с точки зрения SQL, то в целом я бы выделил любые классификационные переменные, которые вызывают другое поведение. Затем выполните что-то вроде следующего для ряда переменных анализа.
Я бы выполнил это как разовое упражнение, скажем, за последний год данных, а затем, с точки зрения скорости, я бы запустил это так регулярно, как вам нужно, чтобы отметить исключительные данные.
Возможно, лучший подход, который означает изучение новых технологий, - это решение HDFS / Spark, а затем PIG / Python / R. Но у HDFS / Spark есть некоторые решения, которые выходят из коробки для анализа журналов. 500 миллионов записей, вероятно, достигают проблем производительности с SQL, даже с разбиением таблиц и индексацией столбцов.
источник
Если вам нужен код SQL, который запускает различные методы обнаружения выбросов для любой произвольной таблицы, посмотрите мою серию статей и примеров кодаориентирован на SQL Server. Я предоставляю некоторый предварительный код для тестов Грубба, Z-баллов и модифицированных Z-баллов, Межквартильного диапазона, Q-теста Диксона, GESD, теста Титджена-Мура, критерия Пирса, критерия Шовене, модифицированного теста Томпсона Тау, расстояния Кука, Махаланобиса Расстояние, закон Бенфорда и различные визуальные сюжеты. Пожалуйста, обратите внимание, что я любитель в этом и что это мой старый код, так что я уверен, что исправления будут необходимы; это как минимум обеспечивает отправную точку, чтобы вы могли запускать эти тесты для любой таблицы базы данных, для которой у вас есть разрешения. Это также в T-SQL, так что вам нужно будет скорректировать код для PL / SQL или любой другой марки SQL, которую вы могли бы использовать, если вы оказались на какой-то другой платформе, такой как Oracle или MySql. Это должно начать вас, хотя. Просто решите изгибы и настройте хранимые процедуры так, чтобы они периодически запускались по расписанию, и все готово. Дайте мне знать, если у вас есть какие-либо отзывы о подпрограммах, я всегда стремлюсь улучшить свои записи SQL.
источник