2011-10-26 11 views
6

के रूप में MapReduce मैं वर्तमान में SQL सर्वर में वृद्धिशील दृश्य निर्माण को बनाए रखने के लिए MapReduce का उपयोग करने की संभावना की जांच कर रहा हूं।SQL सर्वर का उपयोग डेटा स्रोत

असल में, भौतिक दृश्य बनाने के लिए MapReduce का उपयोग करें।

मैं थोड़ा फंस गया हूँ। मेरे map आउटपुट को विभाजित करने के बारे में सोचें। अब, मेरे पास वास्तव में बिगडाटा की स्थिति नहीं है, लगभग 50 जीबी अधिकतम है लेकिन मेरे पास बहुत जटिलता और अंतर्निहित प्रदर्शन समस्याएं हैं। मैं देखना चाहता हूं कि मेरा MapReduce/NoSQL दृष्टिकोण मेरा पैन आउट हो सकता है या नहीं।

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

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

अब, मैं अपना डेटा कैसे विभाजित करूं? मेरे पास प्राथमिक कुंजी है, मेरे पास map और reduce अभिव्यक्ति पेड़ (एएसटी, यदि आप LINQ से अपरिचित हैं) के संदर्भ में परिभाषाएं हैं।

  • सबसे पहले, मैं कैसे मेरे पूरे इनपुट विभाजित है और प्रारंभिक समस्या (मैं सोच रहा हूँ मैं एसक्यूएल सर्वर इस तरह के ROW_NUMBER और TILE के रूप में खिड़की समुच्चय का लाभ उठाने में सक्षम होना चाहिए) विभाजन के लिए एक तरीका वसीयत है।

  • दूसरा, और सबसे महत्वपूर्ण बात यह है कि मैं यह कैसे सुनिश्चित करूं कि मैं यह वृद्धिशील रूप से करूं? यही है, अगर मैं जोड़ता हूं, या मूल समस्या में बदलाव करता हूं, तो मैं प्रभावी ढंग से कैसे सुनिश्चित करूं कि मैं पुन: गणना करने की आवश्यकता को कम करता हूं?

मैं प्रेरणा के लिए CouchDB को देखकर किया गया है और वे ऐसा करने के लिए एक रास्ता है लगता है, लेकिन मुझे लगता है कि अच्छाई एसक्यूएल सर्वर के उपयोग के कुछ कैसे लाभ उठाते हैं?

+0

यह कॉच डीबी कैसे संबंधित है? मानचित्र-कमी के कारण? –

+0

हां, आप यहां इसके बारे में पढ़ सकते हैं: http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#Basics –

उत्तर

1

मुझे कुछ इसी तरह का सामना करना पड़ रहा है। मुझे लगता है कि आपको खिड़की के कार्यों को भूलना चाहिए क्योंकि यह आपकी प्रक्रिया को क्रमबद्ध करता है। दूसरे शब्दों में सभी कर्मचारी प्रश्न के लिए इंतजार करेंगे।

हमने जो परीक्षण किया है और यह 'काम कर रहा है' डेटा को अधिक तालिकाओं में विभाजित करना है (हर महीने इसकी एक्स टेबल होती है) और इस तरह के विभाजन पर अलग विश्लेषणात्मक धागे चलाते हैं। कम करने के बाद संसाधित/अप्रसन्न/संभावित रूप से खराब/आदि डेटा चिह्नित करना। एक विभाजित तालिका के साथ

टेस्ट .. एक ताला वृद्धि मुद्दों के रूप में लाया

आप निश्चित रूप से अपने वर्तमान समाधान के लिए थोड़ा और अधिक जटिलता जोड़ देंगे।

+0

जब तक कुछ स्तर पर जटिलता प्रबंधित की जाती है, मैं इसके खिलाफ नहीं हूं, उचित विचार की तरह लगता है। मैं वर्तमान में एसक्यूएल अधिसूचनाओं की जांच कर रहा हूं क्योंकि कतारों को परिभाषित करने के लिए आप असीमित रूप से संसाधित कर सकते हैं। –

+0

हम अपने स्वयं के ऐप में एसिंक्रोनस क्यूइंग का प्रबंधन कर रहे हैं, लेकिन डीबी में क्यूइंग ठीक लगता है। – pavel242