سؤال

لدي قاعدة بيانات ضخمة (kinda wordnet) وأريد معرفة ما إذا كان من الأسهل استخدام كاساندرا بدلاً من MySQL|PostrgreSQL

طوال حياتي كنت أستخدمها MySQL و PostrgreSQL ويمكنني أن أفكر بسهولة فيما يتعلق بالجبر العلائقي ، لكن قبل عدة أسابيع علمت عن كاساندرا وأنه يستخدم في Facebook و Twitter.

هل هو أكثر ملاءمة؟

ما هي DBMs عادةً ما تستخدم في الوقت الحاضر لتخزين بيانات NET الاجتماعية والعلاقات بين الكائنات و WordNet؟

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

المحلول

هناك العديد من النكهات المختلفة لقواعد بيانات "NOSQL". إذا كان تطبيقك مثل Wordnet ربما يجب أن تنظر إلى قاعدة بيانات الرسم البياني مثل neo4j.

نصائح أخرى

لا يوجد شيء مثل حل رصاصة فضية ، تم تصميم كل شيء لحل مشكلة محددة ولديه إيجابيات وسلبيات خاصة به. الأمر متروك لك لتقرير - ما هو بيان المشكلة الذي لديك وما هو الحل الأفضل الذي يناسب مشكلتك. سواء كنت تستخدم Cassandra (NOSQL) أو MySQL (RDBMS) ، فسيتم تشغيله كله من متطلبات نظامك. فيما يلي المدخلات التي ستساعدك في اتخاذ قرار أفضل أثناء اتخاذ قرار بشأن قاعدة البيانات.

لماذا تستخدم NOSQL

في حالة قاعدة بيانات RDBMS ، يكون الاختيار أمرًا سهلاً للغاية لأن جميع قواعد البيانات تقريبًا مثل MySQL و Oracle و MS SQL و PostgreSQL في هذه الفئة توفر نفس النوع من الحلول الموجهة إلى خاصية الحمض. عندما يتعلق الأمر بـ NOSQL ، يصبح القرار صعبًا لأن كل قاعدة بيانات NOSQL تقدم حلًا مختلفًا وعليك أن تفهم أي واحد مناسب لمتطلبات التطبيق/النظام. على سبيل المثال ، يناسب MongoDB حالات الاستخدام حيث يتطلب نظامك لمخزن المستندات الخالي من المخطط. قد يتناسب HBase لمحركات البحث ، وتحليل بيانات السجل ، وأي مكان يكون فيه مسح الجداول الضخمة ثنائية الأبعاد أقل ضرورة. تم تصميم Redis لتوفير البحث في الذاكرة عن أنواع من هياكل البيانات مثل Tree و Laeue وقائمة الارتباط وما إلى ذلك ويمكن أن تكون مناسبة لإنشاء لوحة قادة في الوقت الحقيقي ، ونوع من النظام. وبالمثل ، هناك قاعدة بيانات أخرى في هذه الفئة (بما في ذلك كاساندرا) التي تناسب مشاكل مختلفة. الآن دعنا ننتقل إلى السؤال الأصلي ، والإجابة عليها واحدة تلو الأخرى.

متى تستخدم كاساندرا

نظرًا لكونك جزءًا من عائلة NOSQL ، تقدم Cassandra حلًا للمشكلة حيث يكون متطلباتك أن يكون لديك نظام كتابة ثقيل للغاية وتريد أن يكون لديك نظام تقارير متجاوب للغاية على رأس تلك البيانات المخزنة. فكر في استخدام حالة تحليلات الويب حيث يتم تخزين بيانات السجل لكل طلب وتريد بناء منصة تحليلية من حوله لحساب الزيارات حسب الساعة ، بواسطة المتصفح ، بواسطة IP ، إلخ. يمكنك الرجوع إلى منشور المدونة (http://blogs.shephertz.com/2015/04/22/why-cassandra-excellent-choice-for-realtime-analytics-workload/) لفهم المزيد حول حالات الاستخدام التي يناسبها كاساندرا.

متى تستخدم RDMS بدلاً من Cassandra/NoSQL

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

أود أن أقترح تحليل طلبك.

  1. إذا كنت ذاهبًا مع المزيد من المجموعات ، فإن الآلات تأخذ NoSQL
  2. إذا كان نموذج البيانات الخاص بك معقدًا - تتطلب هياكل فعالة تأخذ NOSQL (لا توجد حدود مع نوع الأعمدة)
  3. إذا كنت تتناسب مع بعض الآلات بدون موازين ، ولم تكن بحاجة إلى أداء فائق لطلب متعدد (كما في الشبكة الاجتماعية - حيث يرسل الكثير من المستخدمين طلب HTTP) ، ولا تعتقد أنك تتضمن قابلية السليمة تأخذ RDBMS ( لدى Postgres بعض الوظائف والهياكل الجيدة التي يمكنك استخدامها ، مثل نوع عمود الصفيف).

يجب أن تعمل كاساندرا بشكل أفضل مع موازين كبيرة من البيانات ، وأغراض متعددة. NEO4J - سيكون أفضل للهياكل الخاصة والرسوم البيانية.

يتم استخدام كاساندرا وغيرها من متاجر NOSQL للمواقع الاجتماعية بسبب حاجتهم إلى عمليات الكتابة الضخمة. ليس أن MySQL و Postgres لا يمكنهم تحقيق ذلك ، لكن NOSQL يتطلب وقتًا أقل بكثير وأموالًا ، بشكل عام.

يبدو أنك قد ترغب في إلقاء نظرة على Neo4J ، فقط من حيث احتياجات نموذج الكائن الخاصة بك.

جميع المنتجات المختلفة ولديهم جميعهم محترفين وكون. ما نوع المشكلة التي يجب عليك حلها؟

ضخمة ، كما في السل؟

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