Alat untuk deteksi anomali otomatis pada tabel SQL?

10

Saya memiliki tabel SQL besar yang pada dasarnya adalah sebuah log. Data ini cukup rumit dan saya mencoba mencari cara untuk mengidentifikasi anomali tanpa saya memahami semua data. Saya telah menemukan banyak alat untuk Deteksi Anomali tetapi kebanyakan dari mereka memerlukan semacam "perantara", yaitu Pencarian Elastis, Splunk, dll.

Adakah yang tahu alat yang bisa dijalankan terhadap tabel SQL yang membangun garis dasar dan peringatan anomali secara otomatis?

Ini mungkin terdengar malas, tetapi saya telah menghabiskan puluhan jam menulis masing-masing skrip pelaporan saat saya mempelajari arti setiap jenis acara dan bidang mana yang sesuai dengan setiap acara dan saya tidak merasa lebih dekat untuk dapat mengetahui masalah nyata dalam suatu cara yang berarti. Tabel ini memiliki 41 kolom dan hanya mencapai 500 juta baris (3 tahun data).

Pengacara Setan
sumber
Tidak juga, tetapi MELIHAT setiap kolom dan melihat nilai minimum dan maksimum, dan mengatur peringatan untuk nilai-nilai konyol mungkin membantu.
Barry Carter
Dalam hal itu tidak harus super canggih, Anda bisa menggunakan regresi linier mlinreg bergerak jendela dan dengan demikian mengidentifikasi penyimpangan besar.
Diego

Jawaban:

3

Jika Anda ingin mendekati ini dari perspektif SQL, maka secara luas saya akan mengidentifikasi variabel klasifikasi yang menyebabkan perilaku berbeda. Kemudian lakukan sesuatu seperti yang berikut pada sejumlah variabel analisis.

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

Saya akan melakukan ini sebagai latihan satu kali untuk mengatakan nilai data tahun terbaru, kemudian dari perspektif kecepatan, saya akan menjalankan ini secara teratur seperti yang Anda butuhkan, untuk menandai data yang luar biasa.

Pendekatan yang lebih baik, mungkin, yang berarti mempelajari teknologi baru adalah solusi HDFS / Spark kemudian PIG / Python / R. Tetapi HDFS / Spark memiliki beberapa solusi yang keluar dari kotak untuk melakukan analisis log. 500 juta catatan mungkin naik ke jangkauan masalah kinerja dengan SQL, bahkan dengan tabel partisi dan pengindeksan kolom.

Marcus D
sumber
Saya seharusnya mencatat bahwa ini secara teknis adalah Intersystems Caché. Itu memperlihatkan semua kelas sebagai tabel SQL. Begitulah cara saya melakukan semua pelaporan saya, demi kewarasan.
Pengacara Setan
3

Jika Anda memerlukan kode SQL yang menjalankan berbagai metode deteksi outlier terhadap tabel sembarang arbitrer, lihat seri artikel dan contoh kode sayadiarahkan ke SQL Server. Saya memberikan beberapa kode pendahuluan untuk Tes Grubb, Skor-Z dan Skor-Z yang Dimodifikasi, Rentang Interkuartil, Tes-Q Dixon, GESD, Tes Tietjen-Moore, Kriteria Pierce, Kriteria Chauvenet, Kriteria Modifikasi Tau Tau, Jarak Cook, Jarak Cook, Mahalanobis Jarak, Hukum Benford dan berbagai plot visual. Harap perhatikan bahwa saya seorang amatir dalam hal ini dan ini adalah beberapa kode lama saya, jadi saya yakin akan diperlukan koreksi; ini setidaknya memberikan titik awal sehingga Anda dapat menjalankan tes ini terhadap tabel database apa pun yang Anda miliki izinnya. Ini juga ada di T-SQL, jadi Anda harus menyesuaikan kode untuk PL / SQL atau merek SQL lain apa pun yang mungkin Anda gunakan, jika Anda kebetulan menggunakan platform lain seperti Oracle atau MySql. Ini seharusnya membantu Anda memulai. Kerjakan saja ketegaran dan atur prosedur tersimpan agar berjalan secara berkala sesuai jadwal dan Anda siap melakukannya. Beri tahu saya jika Anda memiliki umpan balik tentang rutinitas, saya selalu ingin meningkatkan penulisan SQL saya.

SQLServerSteve
sumber