2012-01-21 9 views
11

चलें पहली बोली: एक इकाई में प्रॉपर्टी कीAzure टेबल संग्रहण पंक्ति के बारे में 1 एमबी सीमा, यह यूटीएफ 8 कोड के लिए कैसे मायने रखता है?

संयुक्त आकार 1MB अधिक नहीं हो सकता। msdn से (एक पंक्ति/इकाई के लिए)

मेरे प्रश्न है: चूंकि सब कुछ 1 एमबी के लिए डेटा XMLed है, इसलिए, क्या की 1 एमबी, ASCII वर्ण का 1 एमबी, या UTF8 वर्ण का 1 एमबी, या कुछ और है अन्य?

नमूना:

Row1: PartitionKey="A', RowKey="A", Data="A" 
Row2: PartitionKey="A', RowKey="A", Data="A" (this is a UTF8 unicode A) 

ROW1 और ROW2 एक ही आकार (लंबाई में), या Row2.Length=Row1.Length+1 है?

+0

मुझे मेरा जवाब मिला Row2.Length = Row1.Length + 1 –

उत्तर

12

आपके उदाहरण में "डेटा" जैसे एकल कॉलम बाइनरी डेटा के 64 KB तक सीमित हैं और एकल पंक्तियां 1 एमबी डेटा तक सीमित हैं। स्ट्रिंग्स यूटीएफ 8 प्रारूप में बाइनरी में एन्कोडिंग कर रहे हैं, इसलिए आपकी स्ट्रिंग के लिए बाइट आकार समाप्त होने वाली सीमा भी सीमित है। यदि आप चाहते हैं कि आपका कॉलम 64 से अधिक केबी डेटा स्टोर करे, तो आप एफएटी एंटिटी जैसी तकनीक का उपयोग कर सकते हैं जो आपको लोकद (https://github.com/Lokad/lokad-cloud-storage/blob/master/Source/Lokad.Cloud.Storage/Azure/FatEntity.cs) के साथ प्रदान की जाती है। तकनीक बहुत सरल है, आप बस अपनी स्ट्रिंग को बाइनरी में एन्कोड करते हैं और फिर बाइनरी को कई कॉलम में विभाजित करते हैं। फिर जब आप तालिका से स्ट्रिंग को पढ़ना चाहते हैं, तो आप फिर से कॉलम में फिर से जुड़ जाएंगे और बाइनरी को स्ट्रिंग में वापस कनवर्ट करेंगे।

+0

क्या आपका मतलब है, यदि ASCII कोड है, तो मैं 1 एम वर्णों को बचा सकता हूं, लेकिन यूटीएफ 8 कोड के लिए, मैं केवल आधा बचा सकता हूं? –

+3

यूटीएफ 8 एन्कोडिंग आवश्यक रूप से ASCII एन्कोडिंग के आकार को दोगुना नहीं है। वास्तव में यदि आपके पात्र 0-128 की ASCII रेंज में हैं तो एन्कोडिंग एक ही आकार के होने पर समाप्त होता है। आपको देखना चाहिए कि यूटीएफ 8 कैसे एन्कोड किया गया है। – RyanFishman

+0

तो अगर मैं एशियाई पात्रों को बचाता हूं, तो मैं केवल शुद्ध अंग्रेजी के आधे आकार को बचा सकता हूं? दाएं –

10

Azure तालिका पंक्ति आकार की गणना काफी शामिल है और इसमें संपत्ति के नाम और उसके मूल्य और कुछ ओवरहेड दोनों आकार शामिल हैं।

http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/30/how-the-size-of-an-entity-is-caclulated-in-windows-azure-table-storage.aspx

संपादित करें। हटाए गए बयान जो पहले कहा था कि आकार की गणना थोड़ा गलत था। यह काफी सटीक है।

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