SQL टेबल पर स्वचालित विसंगति का पता लगाने के लिए उपकरण?


10

मेरे पास एक बड़ी SQL टेबल है जो अनिवार्य रूप से एक लॉग है। डेटा बहुत जटिल है और मैं सभी डेटा को समझने के बिना विसंगतियों की पहचान करने के लिए कोई रास्ता खोजने की कोशिश कर रहा हूं। मुझे एनोमली डिटेक्शन के लिए बहुत सारे उपकरण मिले हैं, लेकिन उनमें से अधिकांश को "मध्य-पुरुष" प्रकार की आवश्यकता होती है, अर्थात इलास्टिक सर्च, स्प्लिट, आदि।

क्या कोई ऐसे उपकरण के बारे में जानता है जो SQL टेबल के खिलाफ चल सकता है जो स्वचालित रूप से आधारभूत और विसंगतियों के अलर्ट बनाता है?

यह आलसी लग सकता है, लेकिन मैंने व्यक्तिगत रिपोर्टिंग स्क्रिप्ट लिखने में दर्जनों घंटे बिताए हैं क्योंकि मैं सीखता हूं कि प्रत्येक घटना प्रकार का क्या मतलब है और कौन से अन्य क्षेत्र प्रत्येक घटना के साथ जाते हैं और मैं वास्तविक समस्याओं पर अलर्ट करने में सक्षम होने के करीब महसूस नहीं करता हूं सार्थक रास्ता। तालिका में 41 स्तंभ हैं और केवल 500 मिलियन पंक्तियाँ (3 वर्ष का डेटा) है।


वास्तव में नहीं, लेकिन प्रत्येक कॉलम द्वारा टाइप करना और न्यूनतम और अधिकतम मूल्यों को देखना, और हास्यास्पद मूल्यों के लिए अलर्ट सेट करना सहायक हो सकता है।
बैरी कार्टर

मामले में यह सुपर परिष्कृत होने की जरूरत नहीं है आप mlinreg चलती खिड़की रैखिक प्रतिगमन का उपयोग कर सकते हैं और इस तरह बड़े विचलन की पहचान कर सकते हैं।
डिएगो

जवाबों:


3

यदि आप इसे एसक्यूएल के दृष्टिकोण से देखना चाहते हैं, तो मोटे तौर पर मैं किसी भी वर्गीकरण चर की पहचान करूंगा जो विभिन्न व्यवहार का कारण बनता है। फिर कुछ विश्लेषण चर पर निम्नलिखित की तरह कुछ करें।

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

मैं इसे हाल के वर्ष के आंकड़ों के लायक कहने पर एक बार की अभ्यास के रूप में प्रदर्शन करूंगा, फिर एक गति के नजरिए से, मैं इसे नियमित रूप से चलाऊंगा जितना कि आपको असाधारण डेटा को ध्वजांकित करने की आवश्यकता है।

एक बेहतर दृष्टिकोण, शायद, जिसका अर्थ है कि नई तकनीकों को सीखना एक एचडीएफएस / स्पार्क फिर पीआईजी / पायथन / आर समाधान है। लेकिन एचडीएफएस / स्पार्क में कुछ समाधान हैं जो लॉग विश्लेषण करने के लिए बॉक्स से बाहर आते हैं। 500 मिलियन रिकॉर्ड संभवतः एसक्यूएल के साथ प्रदर्शन समस्याओं की पहुंच में आ रहे हैं, यहां तक ​​कि तालिका विभाजन और स्तंभ अनुक्रमण के साथ भी।


मुझे ध्यान देना चाहिए कि यह तकनीकी रूप से इंटेरसिस्टम कैच है। यह SQL टेबल के रूप में सभी वर्गों को उजागर करता है। इसी तरह मैं अपनी सारी रिपोर्टिंग करता हूं, संन्यास की खातिर।
डेविल्स एडवोकेट

3

यदि आपको SQL कोड की आवश्यकता होती है जो किसी भी मनमानी तालिका के खिलाफ विभिन्न बाहरी तरीकों का पता लगाता है, तो लेखों और कोड नमूनों की मेरी श्रृंखला देखेंSQL सर्वर की ओर तैयार है। मैं ग्रब की टेस्ट, जेड-स्कोर्स और मॉडिफाइड जेड-स्कोर्स, इंटरक्वेर्टाइल रेंज, डिक्सन का क्यू-टेस्ट, जीईएसडी, टीटजेन-मूर टेस्ट, पियर्स का मानदंड, चौवेनेट का मानदंड, संशोधित थॉम्पसन ताऊ टेस्ट, कुक की दूरी के लिए कुछ प्रारंभिक कोड प्रदान करता है। दूरी, बेनफोर्ड के नियम और विभिन्न दृश्य भूखंड। कृपया ध्यान दें कि मैं इस पर एक शौकिया हूँ और यह मेरे पुराने कोड में से कुछ है, इसलिए मुझे यकीन है कि सुधार की आवश्यकता होगी; यह कम से कम एक प्रारंभिक बिंदु प्रदान करता है ताकि आप इन परीक्षणों को किसी भी डेटाबेस तालिका के विरुद्ध चला सकें जिसके लिए आपके पास अनुमतियाँ हैं। यह टी-एसक्यूएल में भी है, इसलिए आपको पीएल / एसक्यूएल या एसक्यूएल के अन्य ब्रांड के लिए कोड को समायोजित करने की आवश्यकता होगी, यदि आप ओरेकल या मायस्कल जैसे किसी अन्य प्लेटफॉर्म पर होते हैं। यह आप हालांकि शुरू कर दिया जाना चाहिए। बस किन्क्स से काम करता है और एक समय पर समय-समय पर चलाने के लिए संग्रहीत प्रक्रियाओं को सेट करता है और आप जाने के लिए अच्छे हैं। मुझे पता है कि अगर आपके पास दिनचर्या पर कोई प्रतिक्रिया है, तो मैं हमेशा अपने एसक्यूएल लेखन में सुधार करना चाहता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.