SQL tablosunda otomatik anomali tespiti için araçlar?


10

Aslında bir günlük olan büyük bir SQL tablo var. Veriler oldukça karmaşık ve ben tüm verileri anlamadan anomalileri tanımlamak için bir yol bulmaya çalışıyorum. Anomali Tespiti için birçok araç buldum, ancak bunların çoğu "orta adam" türüne ihtiyaç duyuyor, yani Elastik Arama, Splunk, vb.

Herkes otomatik olarak bir taban çizgisi ve anormallik uyarıları oluşturan bir SQL tablo karşı çalışabilecek bir araç biliyor mu?

Bu tembel gelebilir, ancak her bir etkinlik türünün ne anlama geldiğini ve diğer etkinliklerin hangi etkinliklerle gittiğini öğrendiğim için bireysel raporlama komut dosyaları yazmak için düzinelerce saat geçirdim ve bir anlamlı bir yol. Tabloda 41 sütun var ve sadece 500 milyon satıra (3 yıllık veri) ulaştı.


Gerçekten değil, ancak her sütuna göre SIRALAMA ve minimum ve maksimum değerlere bakmak ve gülünç değerler için uyarı ayarlamak yardımcı olabilir.
Barry Carter

Süper sofistike olması gerekmiyorsa, mlinreg hareketli pencere doğrusal regresyonunu kullanabilir ve böylece büyük sapmaları tanımlayabilirsiniz.
Diego

Yanıtlar:


3

Bu bir SQL bakış açısıyla yaklaşmak istiyorsanız, o zaman geniş farklı davranışa neden olan herhangi bir sınıflandırma değişkenleri tanımlamak istiyorum. Sonra bir dizi analiz değişkeninde aşağıdaki gibi bir şey yapın.

SELECT ClassificationVar1, 
    ClassificationVar2, 
    MIN(AnalysisVar1) as Min_AnalysisVar1, 
    MAX(AnalysisVar1) as Max_AnalysisVar1, 
    MEAN(AnalysisVar1) as Mean_AnalysiVar1, 
    STDEV(AnalysisVar1) as Std_AnalysisVar1,
    MIN(AnalysisVar2) as Min_AnalysisVar2, 
    MAX(AnalysisVar2) as Max_AnalysisVar2, 
    MEAN(AnalysisVar2) as Mean_AnalysiVar2, 
    STDEV(AnalysisVar2) as Std_AnalysisVar2,
    etc.
    FROM YourDataFile
GROUP BY ClassificationVar1, ClassificationVar2
ORDER BY ClassificationVar1, ClassificationVar2

Bunu en son yıl veri değerinde bir defaya mahsus bir egzersiz olarak yapacağım, o zaman bir hız perspektifinden, olağanüstü verileri işaretlemek için bunu gerektiği kadar düzenli olarak çalıştırırım.

Belki de yeni teknolojileri öğrenmek anlamına gelen daha iyi bir yaklaşım bir HDFS / Spark sonra PIG / Python / R çözümüdür. Ancak HDFS / Spark, günlük analizi yapmak için kutudan çıkan bazı çözümlere sahiptir. 500 milyon kayıt, büyük olasılıkla tablo bölümleme ve sütun indeksleme ile bile SQL'deki performans sorunlarına ulaşıyor.


Bunun teknik olarak Intersystems Caché olduğunu belirtmeliydim. Tüm sınıfları SQL tabloları olarak gösterir. Aklıma aşkım için tüm raporlarımı böyle yaparım.
Şeytan Avukatı

3

Herhangi bir rastgele tablo karşı çeşitli aykırı algılama yöntemleri çalıştıran SQL koduna ihtiyacınız varsa, benim makale ve kod örnekleri benim dizi göz atınSQL Server'a yöneliktir. Grubb'un Testleri, Z-Skorları ve Modifiye Z-Skorları, Kareler Arası Aralık, Dixon'un Q-Testi, GESD, Tietjen-Moore Testi, Pierce'ın Kriteri, Chauvenet Kriteri, Modifiye Thompson Tau Testi, Cook'un Mesafesi, Mahalanobis için bazı ön kod sağlıyorum Uzaklık, Benford Yasası ve çeşitli görsel araziler. Ben bu konuda bir amatör olduğumu ve bu benim eski kod bazıları olduğunu unutmayın, bu yüzden düzeltmeler gerekli eminim; bu en azından bir başlangıç ​​noktası sağlar, böylece bu testleri izinlerine sahip olduğunuz herhangi bir veritabanı tablosunda çalıştırabilirsiniz. Ayrıca T-SQL'de, bu nedenle Oracle veya MySql gibi başka bir platformda olursanız, PL / SQL veya başka bir SQL markası kullandığınızda kodu ayarlamanız gerekir. Bu da başlamanıza yardımcı olacak. Sadece karışıklıkları çözer ve saklı yordamları bir programda düzenli olarak çalışacak şekilde ayarlayın ve hazırsınız. Rutinler hakkında herhangi bir geri bildiriminiz varsa bana bildirin, her zaman SQL yazımı geliştirmek istiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.