23

यह काफी विषय है, ब्लब्स बनाम टेबल बनाम एसक्यूएल, और अब तक मैंने जो कुछ भी पढ़ा है, उसके बावजूद मुझे अभी भी कुछ उचित तर्क नहीं मिल रहा है।एज़ूर स्टोरेज के साथ शुरू करना: ब्लॉब्स बनाम टेबल्स बनाम एसक्यूएल एज़ूर

हमारे पास एक बहु-किरायेदार सास वेब एप्लिकेशन है जिसे हम Azure में जाने वाले हैं। हम एक SQL सर्वर 2008 डेटाबेस का उपयोग करते हैं। हम दस्तावेजों से संबंधित दस्तावेज और लॉग जानकारी संग्रहीत करते हैं। ड्रॉपडाबॉक्स की तरह किंडा करता है।

फ़ोरम बताते हैं कि जब आप "बड़ी" वस्तुओं पर विचार कर रहे हैं तो आप Azure टेबल्स का बेहतर उपयोग करते हैं। हम आम तौर पर प्रति उपयोगकर्ता सैकड़ों दस्तावेज संग्रहीत करते हैं जहां दस्तावेज़ों का आकार 5kb से 30mb तक भिन्न होता है जहां विशाल बहुमत लगभग 1 एमबी होगा?

क्या ब्लॉब्स, टेबल्स, एसक्यूएल के लिए जाने के लिए कुछ ग्राउंड नियम हैं? मैंने पहले ही सीखा है कि मुझे अपने दस्तावेज़ों को एसक्यूएल में स्टोर नहीं करना चाहिए क्योंकि यह बहुत महंगा है। लेकिन ब्लॉब्स में दस्तावेजों को स्टोर करने के लिए यह "फायदेमंद" कब मिलता है और मैं टेबल के साथ बेहतर कब होगा?

if (objects * MB/object * objectrequested > y) then blobs, else tables

+1

इसी तरह के सवाल करने के लिए अपने दो जवाब की जाँच करें: http://stackoverflow.com/questions/4930368/when-should-i-use-sql-azure-and-when-should-i-use- टेबल स्टोरेज/4930557 # 4930557 http://stackoverflow.com/questions/11540516/azure-mvc-web-app-architecture-how-to-split-data-between-sql-azure-and-azure/11541394 # 11541394 – Igorek

+0

हेया, बहुत धन्यवाद (मैंने अपना प्रश्न पोस्ट करने से पहले उनमें से 1 पाया)। यह बहुत मदद करता है, लेकिन फिर भी मुझे अंतिम प्रश्न के साथ छोड़ देता है: क्या मुझे उन दस्तावेज़ों के लिए टेबल के लिए जाना चाहिए जिन्हें अक्सर पुनर्प्राप्त किया जाता है और औसत आकार 1 एमबी -5 एमबी है? आवेदन "दस्तावेजों के बारे में सब कुछ है" इसलिए उन्हें अक्सर पुनर्प्राप्त किया जाएगा।लेकिन, मुझे लगता है कि लेनदेन की आपकी व्याख्या लागू हो सकती है। मेटा डेटा बहुत अधिक बार पुनर्प्राप्त किया जाएगा। तो, क्या आप एसक्यूएल एज़ूर में मेटा डेटा डालने और टेबल्स में दस्तावेज़ों को स्टोर करने का सुझाव देंगे? – bas

+0

ने आपके इनपुट – bas

उत्तर

18

मुझे लगता है कि Igorek अपने एसक्यूएल Azure चिंताओं को दूर किया है। हालांकि, आपको अभी भी टेबल्स बनाम ब्लब्स के बारे में प्रश्न हैं।

तालिका भंडारण का उपयोग कर आपके मामले में परेशान होगा। एटीएस में प्रत्येक संपत्ति/कॉलम अधिकतम 64 केबी पर हो सकता है, इसलिए आपको दस्तावेज़ों को कई गुणों में विभाजित करना होगा और फिर उन्हें फिर से इकट्ठा करना होगा। प्रति इकाई 4 एमबी की सीमा भी है, जो एक समस्या होगी। ब्लॉब स्टोरेज में इन सीमाओं में से कोई भी नहीं है।

मैं Azure टेबल संग्रहण का उपयोग करता हूं, जब आपके पास कई गुणों के साथ छोटी इकाइयां होती हैं जिन्हें अलग-अलग संग्रहीत करने और पूछताछ की आवश्यकता होती है। तो यह संग्रहित वस्तुओं, या बहुत से मेटाडेटा वाले छोटे दस्तावेज़ों के लिए कुएं काम करता है।

ब्लॉब स्टोरेज मेटाडाटा के टन के बिना चीजों के लिए बेहतर काम करता है। यह उन चीजों के लिए अच्छा है जो फाइल सिस्टम पर फ़ाइलों के रूप में अच्छी तरह से काम कर सकते हैं।

8

मैं स्वयं दस्तावेज़ Azure ब्लॉब भंडारण (नहीं तालिका भंडारण) में स्टोर होगा: वहाँ की तरह फार्मूला किसी तरह का है। इस तथ्य के बाहर कि SQL Azure डेटाबेस में दस्तावेज़ों को संग्रहीत करना बहुत महंगा है जो प्रति मेग (या वॉल्यूम के आधार पर कम) पर शुल्क लेता है, SQL डेटाबेस आम तौर पर दस्तावेज़ों के लिए एक अच्छी जगह नहीं है। एसक्यूएल एक रिलेशनल डेटाबेस है जो प्रश्नों, जुड़ने आदि की क्षमता के लाभ प्रदान करता है। एसक्यूएल डेटाबेस में बड़े दस्तावेजों या छवियों को संग्रहीत करने के लिए आमतौर पर कोई लाभ नहीं होता है, खासकर जब उच्च स्केलेबल केंद्रीय स्टोरेज सिस्टम है जो स्टोर करने के लिए बहुत सस्ता है /पहुंच।

अब, यदि आपको दस्तावेज़ों के माध्यम से खोजना है, तो मैं दस्तावेज़-आधारित भंडार के लिए खोज क्षमता प्रदान करने के लिए Lucene.NET जैसे कुछ उपयोग करता हूं।

HTH

+0

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

+0

हैं क्या आप ब्लॉब्स के लिए जाने के लिए और कब टेबल के लिए जाने के लिए ग्राउंड नियमों का एक सेट परिभाषित कर सकते हैं? मुझे अब 1 कदम मिल गया है, मैं एसक्यूएल में दस्तावेज़ों को स्टोर नहीं करना चाहता क्योंकि यह बहुत महंगा है। उस के लिए Thx। निर्णय लेने वाले ब्लॉब्स/टेबल के लिए कुछ ग्राउंड नियमों की अत्यधिक सराहना की जाएगी। – bas

+0

कोई ग्राउंड नियम नहीं हैं। लेकिन मैं ब्लॉब स्टोरेज को स्केलेबल फाइल सिस्टम के रूप में सोचता हूं। पारंपरिक ऑन-प्रिमाइसेस ऐप में आमतौर पर फ़ाइल सिस्टम में संग्रहीत डेटा, मैं Azure में ब्लॉब स्टोरेज का उपयोग करता हूं। एसक्यूएल एज़ूर और टेबल स्टोरेज के बीच विकल्प ज्यादातर पैमाने की आवश्यकता पर आधारित है। टेबल संग्रहण का उपयोग करना मुश्किल है। पारंपरिक एसक्यूएल की तुलना में उपयोग करना बहुत कठिन है। इस प्रकार, केवल इसका उपयोग करें (टेबलस्टॉरेज) जब SQL Azure आपकी मात्रा या आपके पैमाने को संभाल नहीं सकता है। – Igorek