سؤال

أنا أتطلع إلى تخزين المصفوفات في كيانات طاولة Azure. في الوقت الحاضر ، فإن النوع الوحيد من الصفيف المدعوم أصلاً هو البايت ، يقتصر بطول 64 كيلو بايت. الحجم كافٍ ، لكني أرغب في تخزين صفائف من الطويلات والزواج والطابع الزمني في الكيان.

من الواضح أن بإمكاني إلقاء بايتات متعددة على النوع المطلوب بنفسي ، لكنني كنت أتساءل عما إذا كان هناك أي ممارسات أفضل لتحقيق ذلك.

للتوضيح ، هذه هي صفائف ذات طول ثابت (مثل 1000 خلية) مرتبطة بمفتاح واحد.

هل كانت مفيدة؟

المحلول

كنت أحاول التفكير في طريقة لطيفة للقيام بذلك بخلاف الطريقة التي ذكرتها بالفعل ، وأنا في حيرة. أبسط الحلول التي يمكنني التوصل إليها هي أخذ الصفيف ، وتسلسله الثنائي وتخزينه في خاصية صفيف ثنائية.

خيارات أخرى توصلت إليها ولكن رفضت:

  1. إذا كان تخزينه أمرًا مهمًا ، فيمكنك الاحتفاظ بهذه المعلومات في جدول طفل آخر (أعرف أن جداول Azure ليس لها علاقات من الناحية الفنية ، لكن هذا لا يعني أنه لا يمكنك تمثيل هذا النوع من الأشياء). الجانب السلبي لهذا هو أنه سيكون أبطأ بكثير من الأصل الخاص بك.
  2. خذ المصفوفة ، و serialists xml وتخزينها في خاصية سلسلة. قد يعني هذا أنه يمكنك رؤية محتويات صفيفك عند استخدام أدوات مستكشف بيانات الطرف الثالث ويمكنك تشغيل استعلامات (غير فعالة) التي تبحث عن مطابقة دقيقة على محتويات الصفيف.
  3. يستخدم كيانات الدهون السحابية لوكاد لتخزين بياناتك. هذا يأخذ بشكل أساسي كائنًا كاملًا ، ويقوم بتسلسله الثنائي ويقسم النتائج إلى كتل 64 كيلو بايت عبر خصائص كيان الجدول. هذا يحل المشكلات مثل تلك التي تواجهها ، لكنك ستتمكن فقط من الوصول إلى بياناتك باستخدام أدوات تدعم هذا الإطار.

نصائح أخرى

لقد كتبت عميل تخزين جدول Azure ، يسمى Lucifure Stash ، والذي يدعم المصفوفات ، والتعداد ، والبيانات الكبيرة ، والتسلسل ، والممتلكات العامة والخاصة والحقول والمزيد.

يمكنك الحصول عليه في http://www.lucifure.com أو من nuget.

إذا كان لديك مجموعة من القيمة الرئيسية لتخزينها ، فيمكنك أيضًا تحقق من Azure Blobs. يمكنهم بدلاً من ذلك تخزين المصفوفات التي تصل إلى 25 مليون نقطة زمنية لكل نقطة واحدة (مع وصول عشوائي داخل مجموعة البيانات).

إذا اخترت تخزين كائنك في تخزين blob وتحتاج إلى أكثر من "مفتاح" للحصول عليه ، يمكنك فقط إنشاء جدول Azure أو اثنين أو n حيث تقوم بتخزين المفتاح الذي تريد البحث عنه والمرجع إلى النقطة الدقيقة العنصر.

لماذا لا تخزن القيم كسلاسل CSV؟

يمكنك تسلسل المصفوفة الخاصة بك كسلسلة JSON باستخدام .NET JavaScript Serializer:http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

تحتوي هذه الفئة على خاصية "Maxjsonlength" التي يمكنك استخدامها لضمان عدم تجاوز المصفوفات 64 ألف عندما كنت تسلسلها. ويمكنك استخدام نفس الفئة لإخراج الأشياء المخزنة الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top