هل يعرف أحد كيف يمكنني تخزين قيم ثنائية كبيرة في رياك؟

StackOverflow https://stackoverflow.com/questions/2212770

  •  19-09-2019
  •  | 
  •  

سؤال

هل يعرف أحد كيف يمكنني تخزين قيم ثنائية كبيرة في رياك؟

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

المحلول

في الوقت الحالي، لا توصي بتخزين الملفات أكبر من 50 ميغابايت في الحجم دون تقسيمها. يرى: التعليمات - رياك ويكي

إذا كانت ملفاتك أصغر من 50 ميغابايت، فقم بالمتابعة كما تريد تخزين البيانات غير الثنائية في Riak.

سبب آخر قد يختار المرء RIAK هو المرونة في تصميم بياناتك. سيقوم Riak بتخزين أي بيانات تخبرها بها بطريقة غير مرغقة في المحتوى - لا يفرض الجداول أو الأعمدة أو النزاهة المرجانية. هذا يعنى يمكنك تخزين الملفات الثنائية مباشرة جنبا إلى جنب مع المزيد من تنسيقات مبرمجة شفافة مثل JSON أو XML. وبعد باستخدام Riak كنوع من "قاعدة بيانات المستندات" (البيانات شبه المنظمة، ومعظمها من إزالة التطبيع)، سيكون لدى "تخزين المرفقات" واحتياجات مختلفة من مخطط الأساس / القيمة النمطية - وهي الحاجة إلى الصراع الفعال عبر الإنترنت القرار، زيادة الدلالات الداخلية، وتعبيرات قوية عن العلاقات.مخطط تصميم في رياك - مقدمة

نصائح أخرى

@ إجابة Brian Mansell تسير على المسار الصحيح - فأنت لا تريد حقًا تخزين قيم ثنائية كبيرة (أكثر من 50 ميجا بايت) ككائن واحد، في Riak (تصبح المجموعة بطيئة بشكل غير قابل للاستخدام، بعد فترة).

لديك خياران بدلاً من ذلك:

1) إذا كان الكائن الثنائي صغيرًا بدرجة كافية، قم بتخزينه مباشرة.إذا كان يتجاوز حدًا معينًا (50 ميجابايت هي قيمة عشوائية مناسبة للبدء بها، ولكن في الحقيقة، قم بإجراء بعض اختبارات الأداء لمعرفة متوسط ​​حجم الكائن لمجموعتك، وبعد ذلك يبدأ في الزحف) - قم بتقسيم ملف إلى عدة قطع، وتخزين القطع بشكل منفصل.(في الواقع، معظم الأشخاص الذين رأيتهم يسلكون هذا الطريق، ويستخدمون أجزاء بحجم 1 ميغابايت).وهذا يعني، بالطبع، أنه يتعين عليك متابعة "البيان" - أي الأجزاء تم تخزينها ومكانها وبأي ترتيب.وبعد ذلك، لاسترداد الملف، سيتعين عليك أولاً جلب الكائن الذي يتتبع القطع، ثم جلب قطع الملف الفردية وإعادة تجميعها مرة أخرى في الملف الأصلي.نلقي نظرة على مشروع مثل https://github.com/podados/python-riakfs لنرى كيف فعلوا ذلك.

2) بدلا من ذلك، يمكنك فقط استخدام رياك سي إس (Riak Cloud Storage)، للقيام بكل ما سبق، ولكن الكود مكتوب لك.هذه هي بالضبط الطريقة التي يعمل بها RiakCS - فهو يقسم الملف الوارد إلى أجزاء، ويخزنها ويتتبعها بشكل فردي في Riak العادي، ويعيد تجميعها عندما يحين وقت استعادتها.ويوفر واجهة برمجة تطبيقات Amazon S3 لتخزين الملفات من أجل راحتك.أوصي بشدة بهذا المسار (حتى لا يتم إعادة اختراع العجلة - فتقسيم الملفات وتتبعها أمر صعب بما فيه الكفاية).نعم، CS هو منتج مدفوع الأجر، ولكن تحقق من المنتج المجاني محاكمة المطور, ، إذا كنت فضوليًا.

تماما مثل كل قيمة أخرى. لماذا يكون مختلفا؟

استخدم إما واجهة Erlang ( http://hg.basho.com/rik/src/461421125af9/doc/basic-client.txt. ) أو واجهة HTTP "الخام" ( http://hg.basho.com/rik/src/tip/doc/raw-http-howto.txt. ). يجب أن "مجرد عمل".

أيضا، ستجد عموما استجابة أفضل على قائمة Riak-Users البريدية أكثر من أنك سوف هنا. http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com. (لا توجد جريمة إلى Z8000، والذي يبدو أنه يحتوي أيضا على إجابات.)

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