Mam dużą tabelę SQL, która jest w zasadzie dziennikiem. Dane są dość złożone i staram się znaleźć sposób na zidentyfikowanie anomalii bez zrozumienia wszystkich danych. Znalazłem wiele narzędzi do wykrywania anomalii, ale większość z nich wymaga „pośredniego człowieka”, tj. Elastic Search, Splunk itp.
Czy ktoś wie o narzędziu, które można uruchomić w oparciu o tabelę SQL, która automatycznie tworzy linię bazową i ostrzega o anomaliach?
Może to zabrzmieć leniwie, ale spędziłem kilkadziesiąt godzin, pisząc indywidualne skrypty raportowania, gdy dowiaduję się, co oznacza każdy typ zdarzenia i które pola towarzyszą każdemu zdarzeniu, i nie czuję się bliżej możliwości ostrzegania o prawdziwych problemach w znaczący sposób. Tabela ma 41 kolumn i osiągnęła 500 milionów wierszy (3 lata danych).
źródło
Odpowiedzi:
Jeśli chcesz podejść do tego z perspektywy SQL, to ogólnie zidentyfikowałbym wszelkie zmienne klasyfikacyjne, które powodują różne zachowanie. Następnie wykonaj następujące czynności na wielu zmiennych analizy.
Wykonałbym to jako jednorazowe ćwiczenie, powiedzmy, dane z ostatniego roku, a następnie, z perspektywy szybkości, przeprowadzałbym to tak regularnie, jak to konieczne, aby zgłosić wyjątkowe dane.
Być może lepszym podejściem, które oznacza uczenie się nowych technologii, jest rozwiązanie HDFS / Spark, a następnie PIG / Python / R. Ale HDFS / Spark ma kilka rozwiązań, które są gotowe do analizy dzienników. 500 milionów rekordów prawdopodobnie dociera do zakresu problemów z wydajnością SQL, nawet przy partycjonowaniu tabel i indeksowaniu kolumn.
źródło
Jeśli potrzebujesz kodu SQL, który uruchamia różne metody wykrywania wartości odstających w stosunku do dowolnej dowolnej tabeli, sprawdź moją serię artykułów i próbek kodunastawiony na SQL Server. Zapewniam wstępny kod dla testów Grubba, wyników Z i zmodyfikowanych wyników Z, zakresu międzykwartylowego, testu Q Dixona, testu GESD, testu Tietjen-Moore, kryterium Pierce'a, kryterium Chauveneta, testu Tau Thompsona zmodyfikowanego, odległości Cooka, Mahalanobis Odległość, prawo Benforda i różne fabuły. Pamiętaj, że jestem w tym amatorem i to jest mój starszy kod, więc jestem pewien, że potrzebne będą poprawki; zapewnia to przynajmniej punkt początkowy, dzięki czemu można uruchomić te testy dla dowolnej tabeli bazy danych, do której masz uprawnienia. Jest również w T-SQL, więc musisz dostosować kod dla PL / SQL lub jakiejkolwiek innej marki SQL, której używasz, jeśli zdarzy się, że korzystasz z innej platformy, takiej jak Oracle lub MySql. To powinno wystartować. Po prostu rozwiązuje problemy i ustawia procedury składowane, aby uruchamiały się okresowo zgodnie z harmonogramem i możesz zacząć. Daj mi znać, jeśli masz jakieś uwagi na temat procedur, zawsze staram się poprawić pisanie w języku SQL.
źródło