2011-06-12 9 views
8

मेरे पास एक विंडोज़ एज़ूर एप्लिकेशन है जिसमें टेबलए के सभी पढ़ने के प्रश्न पंक्तियों की एक श्रृंखला के लिए एकल विभाजन पर निष्पादित किए जाते हैं। इस स्टोरेज स्कीम को सुविधाजनक बनाने वाली विभाजन कुंजी वास्तव में पदानुक्रम में ऑब्जेक्ट्स के नामों को फ़्लैट कर देती हैं, जैसे विभाजन कुंजी {root}_{child1}_{child2}_{leaf} की तरह स्वरूपित होती है। मैं समझ सकता हूं कि टेबल्स के नामकरण में विभाजन कुंजी के रूट आयाम का उपयोग करके इस तालिका को एक बड़े टेबलए को विभाजित करने के लिए फायदेमंद हो सकता है (इसलिए विभाजन कुंजी {child1}_{child2}_{leaf} बन जाएगी)।कई विभाजन कुंजी के साथ एक Azure तालिका संग्रहण तालिका कैसे कम विभाजन कुंजी के साथ कई तालिकाओं की तुलना करता है?

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

मेरे प्रस्तावित परिवर्तन के बारे में विशिष्ट प्रश्न:

  1. इस scalability में एक फर्क पड़ेगा, यानि कि एक साथ डेटा का उपयोग अनुरोधों की संख्या जो नाटकीय रूप से प्रदर्शन को परिपूर्ण बिना परोसा जा सकता है? एक ही समय में सेवा की?
  2. क्या यह औसत प्रदर्शन में अंतर करेगा? संभावित प्रदर्शन?
+0

कृपया कुछ नमूना टीपीएल और एसिंक क्वेरी – Paparazzi

उत्तर

10

यदि प्रत्येक क्वेरी विभाजन कुंजी निर्दिष्ट करती है, तो इससे कोई फर्क नहीं पड़ता कि उन विभाजनों में कितनी तालिकाओं फैली हुई हैं। दूसरे शब्दों में, निम्नलिखित समकक्ष हैं: एक तालिका जिसमें हजारों विभाजन होते हैं, एक विभाजन के साथ एक हजार टेबल बनाते हैं।

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

+0

पोस्ट करें दिलचस्प है, ताकि मैं समझ सकूं कि समेकित कार्यकर्ता भूमिकाओं के लिए आईओ सीमा तालिका भंडारण से पूछताछ खाता स्तर पर है? – user483679

+1

विभाजन स्तर (तालिका + विभाजन) और खाता स्तर पर प्रति सेकंड संचालन पर सीमाएं हैं। – smarx

6

+1।

कुछ बातें

  • यह कई भंडारण खातों का उपयोग करने पर विचार के लायक हो सकता है जोड़ने के लिए - प्रति प्रत्येक भंडारण एकाउंट अधिकृत बारे में 5000 इकाई के लिए लक्षित है/लेनदेन - यह वर्तमान में scability की इकाई है कि भंडारण खाता है, क्योंकि दूसरा तो यदि आप उससे अधिक चाहते हैं तो आपको एकाधिक खातों का उपयोग करने की आवश्यकता है।
  • प्रदर्शन के बारे में कुछ नाज़ुक विवरण हैं कि आप अपने डेटा से कैसे क्वेरी करते हैं - यदि आइटम एक ही विभाजन में नहीं हैं तो यह आमतौर पर एक जटिल जहां पैरामीटर के साथ एक क्वेरी करने के बजाय अलग समानांतर क्वेरी करने के लिए तेज़ होता है।
  • आप भंडारण टीम ब्लॉग विशेष रूप से उपयोगी पर ब्लॉग पोस्ट पा सकते हैं - मोटे तौर पर मिलियन हिट प्रति $ 1 - http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure-tables.aspx और http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx
  • आप भी लागत के बारे में पता होना पड़ सकता है।
+0

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

+0

जोड़ने के लिए ... बिलिंग उद्देश्यों के लिए यह वास्तव में मेरे लिए वास्तव में फायदेमंद होगा यदि मैं जितना आवश्यक हो उतना टेबल संग्रहण खाता बना सकता हूं। एक उच्चस्तरीय भंडारण खाता विभाजन जो कि परियोजनाओं के लिए समझ में आता है, हम – user483679

+0

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

संबंधित मुद्दे