ऑनलाइन चर्चा समूहों और ब्लॉगों से, मैंने देखा है कि बहुत से साक्षात्कार प्रश्न बड़े पैमाने पर डेटासेट को संभालने से संबंधित हैं। मुझे आश्चर्य है कि इस प्रकार के सवालों का विश्लेषण करने के लिए एक व्यवस्थित दृष्टिकोण है? या अधिक विशिष्ट में, क्या कोई डेटा संरचना या एल्गोरिदम है जिसका उपयोग इस से निपटने के लिए किया जा सकता है? किसी भी सुझाव की वास्तव में सराहना की जाती है।बड़े पैमाने पर डेटासेट
उत्तर
"बड़े पैमाने पर" डेटा सेट कई श्रेणियों में आते हैं जो मैंने देखा है, जिनमें से प्रत्येक आपके बारे में सोचने के लिए विभिन्न चुनौतियों का प्रस्तुत करता है।
- डेटा जो स्मृति में फिट होने के लिए बहुत बड़ा है। इधर, कुछ महत्वपूर्ण तकनीक हैं:
- कैशिंग डेटा कि अक्सर बेहतर प्रदर्शन
- डेटा पर एक फ़ाइल से बजाय स्मृति में पूरी फ़ाइल को पढ़ने के लिए एक ही बार में (यदि आप 'की कोशिश कर के एक बार में एक हिस्सा कार्य के लिए प्रयोग किया जाता है फ़ाइल के माध्यम से अनुक्रमिक रूप से काम नहीं कर रहे हैं, यह विशेष रूप से चुनौतीपूर्ण हो सकता है!)
- कई मशीनों की स्मृति में डेटा वितरित करना।
- डेटा सिस्टम या हार्डवेयर आर्किटेक्चर सीमाओं के कारण एक फ़ाइल में फ़िट होने के लिए बहुत बड़ा डेटा है। यह हल करना बहुत आसान है - फ़ाइल को विभाजित करें - लेकिन एक समझदार विभाजन के कई मामलों में एक व्यावहारिक प्रश्न है।
- डेटा जो एक हार्ड डिस्क पर फिट करने के लिए बहुत बड़ा है। यहां, ज्यादातर तकनीकें बड़ी डिस्क खरीदने के लिए हैं :-), या कई मशीनों में डेटा वितरित करने के लिए।
- एकाधिक मशीनों में डेटा वितरित करने से आपको चुनौतियों का सामना करना पड़ता है जब आपको डेटा पर विश्लेषण या परिवर्तन करने की आवश्यकता होती है। यह कई अलग-अलग दृष्टिकोण और चुनौतियों के साथ एक गहरा विषय है।मानचित्र/कॉच डीबी और हाडोप जैसे ढांचे को कम करना हाल ही में इस क्षेत्र में अनुसंधान और अनुप्रयोग के लिए लोकप्रिय उपकरण बन गया है।
- डेटा जो एक डेटाबेस डेटाबेस के लिए बहुत बड़ा है। यह डिस्क आकार (अंतरिक्ष से बाहर भाग गया) या प्रदर्शन की समस्या हो सकती है (मेमोरी कैश उड़ा रहा है, सूचकांक बस बहुत बड़ा हो गया है)। कई डीबी उदाहरणों में संभावित रूप से एकाधिक डेटा केंद्रों में डेटा विभाजन की मजबूती और प्रदर्शन को बनाए रखना, बड़े उद्यमों के लिए बारहमासी ब्याज का एक क्षेत्र है। इधर, विकल्प हैं:
- कार्यक्षेत्र विभाजन (अलग डीबीएस के लिए अलग-अलग तालिकाओं)
- क्षैतिज विभाजन (अलग डीबीएस पर एक ही मेज, लेकिन अलग डेटा धारण)
अन्य समस्याओं अक्सर जुड़े बड़े पैमाने पर डेटा सेट, लेकिन नहीं आकार संबंधी समस्याओं से प्रति, साथ हैं:
- Dat वह तेजी से आ रहा है। उन प्रणालियों के बारे में सोचें जिन्हें प्रति मिनट लाखों या यहां तक कि अरबों लेनदेन तक स्केल करने की आवश्यकता है।
- डेटा जो लगातार बदल रहा है। जब आप उस पर काम कर रहे हों तो संशोधित किए जा रहे पुराने डेटा या डेटा से आप कैसे निपटें?
किसी भी प्रकृति के बड़े डेटासेट को "हैंडलिंग" के लिए कोई भी डेटा संरचना या एल्गोरिदम नहीं है और हर संभव उद्देश्य के लिए - ऐसे कई आर्किटेक्चर, डेटा संरचनाओं और एल्गोरिदम का विशाल संग्रह है, ऐसे कई लोगों के लिए विभिन्न प्रकार के डेटा, और आवश्यक "हैंडलिंग" (सिंगल-टास्क, एसएमपी, और वितरित वातावरण में - उन्हें कई मामलों में बहुत अलग दृष्टिकोण की आवश्यकता हो सकती है)।
कोई चांदी की बुलेट नहीं है। किसी संदर्भित, बड़े पैमाने पर उद्देश्य के लिए एल्गोरिदम और डेटा संरचनाएं उपयोगी हैं, यह समझने के लिए अधिक प्रासंगिक जानकारी की आवश्यकता है। डेटा के लिए जो स्मृति में फिट होने के लिए बहुत बड़ा है, उदाहरण के लिए, बहुत सारे डेटाबेस प्रबंधन सिस्टम बी + पेड़ का उपयोग करते हैं।
जब लोग बड़े डेटा सेट का वर्णन करते हैं, तो उनका अक्सर अर्थ होता है जहां संपूर्ण डेटा सेट स्मृति में संग्रहीत नहीं किया जा सकता है। यह चुनौतियों का निर्माण करता है कि किस डेटा को लोड करना है और इसे कब लोड करना और उतारना है।
एक दृष्टिकोण अनुक्रमिक डेटा फ़ाइल और प्रक्रिया से शुरुआत से अंत तक प्रक्रिया का उपयोग करना है। यह तब प्रभावी होता है जब प्रसंस्करण की प्रकृति अनुक्रमिक होती है, लेकिन जब प्रक्रिया को डेटा सेट के विभिन्न हिस्सों से डेटा को गठबंधन करने की आवश्यकता होती है तो यह अच्छी तरह से काम नहीं करता है।
एक अन्य दृष्टिकोण कुछ प्रकार की अनुक्रमित फ़ाइल है, जो आवश्यकतानुसार डेटा के आवश्यक बिट्स को पुनर्प्राप्त कर रहा है।
इसका एक विशेषज्ञता मेमोरी मैप की गई फ़ाइलों का उपयोग है, जहां आप मेमोरी मैनेजर डेटा की लोडिंग और कैशिंग को संभालने देते हैं।
एक डीबीएमएस डेटा एक्सेस को बहुत सरल बना सकता है, लेकिन कुछ सिस्टम ओवरहेड जोड़ता है।
- 1. बड़े पैमाने पर refactoring
- 2. बड़े पैमाने पर डेरिवेटिव्स
- 3. बड़े पैमाने पर छद्म संकेत
- 4. बड़े डेटासेट
- 5. बड़े पैमाने पर उपयोगी कार्यों को बड़े पैमाने पर आयात करना
- 6. बड़े पैमाने पर क्लस्टरिंग लाइब्रेरी संभवतः पाइथन बाइंडिंग के साथ
- 7. जावा - बड़े पैमाने पर जीयूआई परियोजनाएं
- 8. एंड्रॉइड: बड़े पैमाने पर सक्षम/अक्षम बटन
- 9. sed: बड़े पैमाने पर यादृच्छिक अन्य पाठ
- 10. बड़े पैमाने पर काम और Backbone.js
- 11. libreoffice बड़े पैमाने पर पाठ रंग परिवर्तन
- 12. कम विलंबता, बड़े पैमाने पर संदेश कतार
- 13. क्यों Pex बड़े पैमाने पर नहीं है
- 14. सबसे तेज तरीका बड़े पैमाने पर अद्यतन
- 15. आर knn बड़े डेटासेट
- 16. SQLite या बड़े डेटासेट
- 17. एक बड़े डेटासेट पर यादृच्छिक वन
- 18. सी # LINQ और बड़े डेटासेट
- 19. बड़े पैमाने पर पहलू मूल्यों पर सौर पैमाने कितना अच्छा है?
- 20. बड़े पैमाने पर स्क्रैपिंग/पार्सिंग के लिए कौन सी तकनीक?
- 21. बड़े पैमाने पर वितरित सिस्टम में लॉग फ़ाइलें
- 22. यह बड़े पैमाने पर असाइनमेंट कैसे रोकता है?
- 23. बड़े पैमाने पर इंटरनेट एप्लिकेशन, कहां से शुरू करें?
- 24. बड़े पैमाने पर लैंडस्केप छवियों को कैसे लागू करें
- 25. आप ASP.NET से बड़े पैमाने पर ईमेल कैसे भेजते हैं?
- 26. बड़े पैमाने पर मशीन सीखने - पायथन या जावा?
- 27. बड़े पैमाने पर मेमोरी को संभालने के लिए सूची मेमोरी
- 28. रूबी बड़े पैमाने पर सीमा से n वें आइटम मिल
- 29. बड़े पैमाने पर IE7 मेमोरी लीक जब करीब
- 30. अप्रत्याशित रूप से बड़े पैमाने पर आकार का उपयोग%
@ क्लाउडियो: यह निश्चित रूप से नहीं है, लेकिन मैं उम्मीद करता हूं कि लोग उत्तर स्वीकार करने का प्रयास करें। यह करने के लिए एक विनम्र बात है, और समुदाय कैसे काम करता है इसका एक सार्थक हिस्सा है। –
मैंने पहले इस मुद्दे को नहीं देखा, बाद में अधिक ध्यान देना होगा। –
@ बिट-प्रश्न: धन्यवाद! –