उच्च प्रदर्शन वेब अनुप्रयोग के लिए सर्वश्रेष्ठ जीआईएस प्रणाली - पोस्टगॉइस बनाम मोंगोबीडी


36

मैं स्थान डेटा के आधार पर वेब / मोबाइल एप्लिकेशन पर काम कर रहा हूं। चूंकि मैं पहले से ही MongoDB से परिचित हूं, इसलिए मैंने पाया कि मेरीओ की भू-स्थानिक अनुक्रमण मेरी आवश्यकताओं के लिए काफी उपयुक्त है। जैसा कि मैं मुख्य रूप से सरल / छोटे स्थान बिंदुओं के साथ काम कर रहा हूं, Mongo 2d अनुक्रमण मेरे लिए अच्छा है।

जिस तरह से मैंने PostGIS को उठाया, उसके स्थिर / परिपक्व तरीके के कारण। और इसका कमाल का फीचर सेट। लेकिन मेरा मुख्य प्रदर्शन प्रदर्शन है क्योंकि मेरा डेटा स्थान पर बहुत अधिक निर्भर है (ज्यादातर 70 - 80% db कॉल स्थान के साथ सौदा)।

मुझे मोंगो पसंद है क्योंकि इसका उपयोग उच्च प्रदर्शन वेब ऐप जैसे कि फोरस्क्यू पहले से ही है। लेकिन मैंने देखा है कि PostGIS मुख्य रूप से सरकारी / उद्यम परियोजनाओं (ज्यादातर गैर वेब / मोबाइल एप्लिकेशन) में उपयोग किया जाता है। इसलिए मैं अपने वेब / मोबाइल ऐप के लिए सही GIS db चुनने के लिए अभी थोड़ा उलझन में हूँ? कोई सुझाव मिला?


2
पोस्टग्रेज / पोस्टगिस के साथ स्थानिक सूचकांक बनाएं और आपको अच्छा प्रदर्शन दिखाई देगा। लेकिन अगर आप MongoDB के साथ खुश हैं तो उसके साथ जारी रखें।
Mapperz

जवाबों:


36

यदि आपका लेखन भार (आने वाली डेटा स्ट्रीम) संभावित रूप से सीमा के बिना बढ़ सकता है (यदि आपकी वेब परियोजना की सफलता के कारण लिखने की मात्रा बढ़ने के लिए बढ़ेगी) तो मानगो के साथ जाएं, क्योंकि यह आपके रास्ते में बहुत मुश्किल होगा PostGIS / PostgreSQL में एक बार अड़चन लिखने के बाद जब आप एक एकल हाई-एंड सर्वर की क्षमताओं से आगे बढ़ते हैं (जो कि, यह नोट किया जाना चाहिए कि यह बहुत बड़ा है)।

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


3
ओह, और याद रखें, "MongoDB वेब स्केल है"। xtranormal.com/watch/6995033/mongo-db-is-web-scale
पॉल रैमसे

हाँ, मुझे पता है कि .. यह वास्तव में मज़ेदार था (और सिर में सही से मारा अगर आप सिर्फ नवीनतम तकनीक के साथ खुद को फैंसी बनाना चाहते थे) :)
रमेशवेल

1
ठीक है, आप हमेशा fsync = बंद करके "webscale" कर सकते हैं;)
रागी यासर बुरहुम

1
PostgresXC अब पूर्ण लेन-देन की गारंटी और बहु-नोड क्वेरी निष्पादन के साथ एक लेखन-समानांतर प्रणाली प्रदान कर सकता है। बेल्ट और सस्पेंडर्स, ओएलएपी और ओएलटीपी, देखने लायक। और यह PostGIS को सपोर्ट करता है।
पॉल रेम्सी

लेकिन अगर आप PostgresXC / XL चुनते हैं, तो आपको पैकेज को खुद बनाए रखना होगा। इसकी आधिकारिक तौर पर केवल फेडोरा / रेडहैट के लिए उपलब्ध है, उबंटू प्रेमियों को मैन्युअल रूप से चीजों को संकलित करने में समय बिताना पड़ता है।
रवि कुमार

21

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

यह मुझे प्रतीत होता है कि बिंदु डेटा के सरल भंडारण और पुनर्प्राप्ति के लिए मोंगो ठीक काम करता है। बाउंडिंग बॉक्स जियोस्पेशियल क्वेश्चन अच्छी तरह से काम करने लगते हैं, और मुझे लगता है कि समग्र प्रदर्शन बहुत अच्छा है। सेटअप करना और जाना बहुत आसान है, हालांकि मैंने पाया है कि मोंगोइमपोर्ट टूल मुझे टीएसवी या सीएसवी फ़ाइल में एक कंपाउंड 2 डी कोर्ड फील्ड को परिभाषित करने की अनुमति नहीं देता है। चूँकि JSON बनाने वाली स्क्रिप्ट लिखना बहुत आसान है, इसलिए यह एक समस्या नहीं है। इस समय इसकी बड़ी कमी यह है कि भू-स्थानिक क्षेत्र में लगभग कुछ भी नहीं है, इससे मूल रूप से डेटा पढ़ सकते हैं। Https://github.com/springmeyer/mapnik-mongo पर एक प्रायोगिक मैपिक डेटासोर्स प्लगइन प्रतीत होता है , लेकिन यह सब मुझे मिल सकता है।

दूसरी ओर पोस्टजीआईएस को स्थापित करने में थोड़ा समय लगता है (कम से कम मेरे लिए), लेकिन जैसा कि ऊपर उल्लेख किया गया था, यह बॉक्स के ठीक बाहर अधिक सुविधाएँ प्रदान करता है। बहुत अधिक परिष्कृत स्थानिक विश्लेषणात्मक क्षमता प्रदान करने के अलावा, यह मूल रूप से अन्य अनुप्रयोगों और पुस्तकालयों के एक टन द्वारा समर्थित है; Mapserver, Mapnik, QGis, GDAL, इत्यादि, आदि, मेरे लिए, PostGIS एक साधारण भंडारण और पुनर्प्राप्ति प्रणाली के बजाय एक वास्तविक GIS प्रणाली है।

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

इसलिए, मेरा निष्कर्ष यह है कि मैं अपने डिफ़ॉल्ट भू-स्थानिक भंडारण और विश्लेषण प्रणाली के रूप में PostGIS से छुटकारा पाने के लिए नहीं जा रहा हूं, लेकिन कुछ प्रकार की परियोजनाओं के लिए (अर्थात वेब मानचित्र जो छवि टाइल और / या बिंदु डेटा प्रदर्शित करते हैं) मैं MongoDB का उपयोग करने पर विचार कर सकता हूं मेरे डेटा स्टोर के रूप में।

आरे


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

@RameshVel क्या आप सॉल्यूशन पर कुछ और बता सकते हैं?
rkm

@ इरशाद, आप इलास्टिक्सर्च (बस डाउनलोड, एक्सट्रैक्ट और किया) स्थापित कर सकते हैं, और जियो डीएसएल प्रश्नों के साथ खेल सकते हैं। यह बहुत ही बुनियादी है, लेकिन यदि आप जियो के साथ-साथ खोज / पहलू चाहते हैं, तो आप इसका उपयोग कर सकते हैं।
रवि कुमार

3

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

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