SQLテーブルの自動異常検出用ツール?


10

本質的にログである大きなSQLテーブルがあります。データはかなり複雑で、すべてのデータを理解せずに異常を特定する方法を見つけようとしています。私は異常検出のためのツールをたくさん見つけましたが、それらのほとんどは「中間者」のような種類、すなわちElastic Search、Splunkなどを必要とします。

ベースラインを構築し、異常を自動的に警告するSQLテーブルに対して実行できるツールを知っている人はいますか?

これは怠惰に聞こえるかもしれませんが、各イベントタイプの意味と各イベントに関連する他のフィールドを学習しているため、個別のレポートスクリプトを作成するのに数十時間を費やしてきました。意味のある方法。テーブルには41列があり、5億行(3年分のデータ)しかヒットしません。


実際はそうではありませんが、各列で並べ替え、最小値と最大値を確認し、ばかげた値のアラートを設定すると役立つ場合があります。
バリーカーター、

超高度である必要がない場合は、mlinreg移動ウィンドウ線形回帰を使用して、大きな偏差を特定できます。
ディエゴ

回答:


3

SQLの観点からこれにアプローチしたい場合は、大まかに、異なる動作を引き起こす分類変数を特定します。次に、いくつかの分析変数に対して次のようなことを実行します。

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

私はこれを、たとえば最近の価値のあるデータの1回限りの演習として実行します。次に、速度の観点から、例外的なデータにフラグを立てるために、必要に応じて定期的にこれを実行します。

おそらく、より良いアプローチは、新しいテクノロジーを学ぶことは、HDFS / Sparkに続いてPIG / Python / Rソリューションであることを意味します。しかし、HDFS / Sparkには、ログ分析を行うためにすぐに使えるいくつかのソリューションがあります。5億件のレコードが、テーブルのパーティション分割や列のインデックス作成を行ったとしても、SQLのパフォーマンスの問題の影響を受ける可能性があります。


これは技術的にはインターシステムズのCachéであることに注意してください。すべてのクラスをSQLテーブルとして公開します。これが正気のためにすべてのレポートを作成する方法です。
Devil's Advocate 2017

3

任意のテーブルに対してさまざまな異常値検出メソッドを実行するSQLコードが必要な場合は、私の一連の記事とコードサンプルを確認してください。SQL Server向けです。グラブのテスト、Zスコアと修正Zスコア、四分位範囲、ディクソンのQテスト、GESD、ティエチェンムーアテスト、ピアースの基準、ショーブネの基準、修正トンプソンタウテスト、クックの距離、マハラノビスの予備コードを提供します距離、ベンフォードの法則、さまざまな視覚的プロット。私はこれでアマチュアであり、これは古いコードの一部であるため、修正が必要になると確信しています。これは少なくとも、開始点を提供するため、権限を持っているデータベーステーブルに対してこれらのテストを実行できます。これはT-SQLにもあるため、OracleやMySqlなどの他のプラットフォームを使用している場合は、PL / SQLまたは使用しているSQLの他のブランドのコードを調整する必要があります。これで始められるはずです。ちょっとした問題を解決し、スケジュールに従って定期的に実行されるようにストアドプロシージャを設定すれば、問題ありません。ルーチンに関するフィードバックがありましたら、私は常にSQLの記述を改善することを目指しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.