لماذا اختارت كاريزما إعتماد قاعدة البيانات RethinkDB ؟

إعداد karizma أخبار الشركة لا توجد تعليقات على لماذا اختارت كاريزما إعتماد قاعدة البيانات RethinkDB ؟

شعار قاعدة البيانات RethinkDB

RethinkDB هي قاعدة بيانات مفتوحة المصدر أطلقت أول نسخة منها في العام 2009. وتنتمي RethinkDB إلى عالم قواعد البيانات من فئة NoSQL. وقد صنفها الكثير من الخبراء والمطورين على أنها أفضل قاعدة بيانات من نوع NoSQL. كما أنها الخيار الأنسب لتطبيقات الويب الآنية. لهذه الأسباب وغيرها, فإن شركة كاريزما قد قررت, بعد دراسات معمقة, استخدام قاعدة البيانات هذه في تطوير تطبيقاتها. سنشرح في هذا المقال بالتفصيل الأسباب الكامنة وراء هذا الخيار ونبين افضليته مقارنة ببقية الخيارات المتاحة.

 

أفضل ما في عالم قواعد البيانات NoSQL

ينقسم الجيل الأول من منتجات NoSQL إلى قسمين رئيسين: قسم موجه للمطور developer-oriented وقسم موجه للعمليات operations-oriented.

منتجات الموجه للمطور تضم كل من MongoDB و CouchDB ويولي هذا النوع من قواعد البيانات أهمية قصوى لهذه الخاصيات الثلاث: سهولة الاستخدام, هيكلية بيانات غنية, توفير إمكانيات مرنة للاستعلامات  queries. ومع ذلك ، عند مقارنتها بنظيراتها من فئة الموجه للعمليات ، نلاحظ إنها تعاني من صعوبة النشر في البيئات المجزئة sharded environments و من صعوبة قياس الحمولات الكبيرة من البيانات.

أما النظم الموجهة للعمليات فتضم كل من Cassandra و Riak. هذه المنتجات قد ركزت على اتاحة عمليات النشر بشكل موسع وعلى التلاؤم مع الحمولات الكبيرة من البيانات. على عكس قواعد البيانات من فئة الموجه للمطور ، فإن  المنتجات الحالية من النظم الموجهة للعمليات ، عادة ما تكون إمكانيات طلب الاستعلامات queries فيها متواضعة جدا. كما إنها لا تولي أهمية لخاصية سهولة الاستخدام مما يجعل منتجاتها صعبة الفهم والاستعمال.

بفضل ثلاث سنوات من الجهود الهندسية ومن دراسة ثغرات ومزايا النظم الموجودة,  اختارت RefthinkDB الأفكار المميزة من كل فلسفة لتقديم أفضل ما في القسمين.

لقد صممت لتكون سهلة الاستخدام للغاية,  ذات هيكلية بيانات غنية و توفر إمكانيات طلب استعلامات مرنة. إن مجموعة من عقد البيانات في RethinkDB يمكن تجزئتها من خلال بضع نقرات فقط. مما يعني إنها تدعم البيئات المجزئة بشكل كبير.

التطوير والإضافات

لقد عملت RethinkDB على تطوير كل الخاصيات المتاحة في نظم NoSQL. فأضافت لغة استعلامات حديثة وبنية أساسية موزعة ومتوازية وكثيفة. كما دعمت طلبات الاستعلام الفرعية subqueries وعمليات الربط الموزعة distributed joins  إضافة إلى توفيرها أدوات إدارة بسيطة وجميلة.

لغة استعلامات حديثة

صرح خبراء في مجال قواعد البيانات بأن RethinkDB تمتلك أفضل لغة استعلامات من بين كل قواعد البيانات الموجودة.

  • يطلق على لغة الاستعلامات التي أحدثتها RethinkDB اسم ReQL. وهي لغة تقودها وتحركها البيانات data-driven, تجريدية abstract ومتعددة الاشكال polymorphic.
  • على كل برنامج لغة مضيف مثل جافا, روبي, بايثون وجافاسكريبت أن يطور لغة خاصة به تكون مدمجة بأحكام  ومحددة المجال. إن ReQL لغة براغماتية تسمح لكل مضيف لها أن يطوعها ويخصصها بما يتناسب معه فتصبح بذلك سهلة الاستخدام للغاية.
  • على عكس نظم NoSQL الأخرى, فإن ReQL تدعم الاستعلامات الفرعية الناشئة من السيرفر. كما تدعم أيضا عمليات الربط  بين جداول البيانات الموزعة. وهو ما يريح العميل من برمجة اكواد معقدة ويخفف الضغط على الشبكات.
  • لا تعتمد ReQL على تحليل البيانات النصية string parsing. وبذلك  ينقص خطر هجمات الحقن injection attacks بشكل كبير.

إن لغة ReQL في تطور وتحديث دائم. هناك الكثير من الميزات والخاصيات التي تضاف إليها باستمرار.

أدوات إدارة بسيطة ورائعة

تتمتع واجهات الادارة في RethinkDB بالميزات التالية.

  • عمليات التجزئة والنسخ تتم ببعض النقرات البسيطة.
  • كل مجموعة عمليات في RethinkDB قابلة للبرمجة النصية scriptable.
  • مستكشف البيانات المدمج built-in data explorer يوفر مجموعة من الوثائق التي تشرح كيفية استخدامه وهي متاحة على شبكة الإنترنت كما يقدم الاقتراحات التي تسهل كتابة اكواد لغة الاستعلامات.

واجهة الادارة في قاعدة البيانات RethinkDB

العديد من المنتجات سهلة الاستخدام ، لكننا نعتقد أن RethinkDB هي الاجمل.

بنية أساسية موزعة ومتوازية بكثافة

  • كل طلبات الاستعلام بما فيها التي تحتوي على الربط joins والتجميع aggregation وطلبات الاستعلام الفرعية يتم ترجمتها تلقائيا إلى برامج موزعة ومن ثم تنفيذها من دون أي جهد من المستخدم.
  • العمليات الخاصة بالبيانات المكثفة يتم ترجمتها إلى  عدة وظائف مصغرة map-reduce jobs وذلك بفضل الاستفادة من البنية الأساسية الموزعة.
  • بروتوكول مجموعات العمليات يؤمن اتصالا مباشرا بين المجموعات ولا يحتاج إلى عقدة تمثل دور الوسيط. مما يجعل مجموعات العمليات سهلة للغاية في إعدادها واستخدامها.

دعم بيانات الجغرافيا المكانية Geospatial

يعد دعم بيانات الجغرافيا المكانية أحد أهم مميزات قاعدة البيانات RethinkDB. إذ توفر ميزات لتتبع واسترجاع وتحليل بيانات الجغرافيا المكانية. مثال: الحصول على المسافة الإهليلجية الحقيقية بين الإحداثيات.

ما الذي يجعل RethinkDB أفضل من نظيراتها؟

ما يميز RethinkDB في عالم قواعد البيانات من فئة NoSQL هو لغة الاستعلامات الخاصة بها ReQL.  إذ توفر هذه اللغة كل طرق الاستعلامات SQL التقليدية والتي لا تتوفر إلا في قواعد البيانات من فئة SQL. من هذه الطرق نذكر اسلوب الربط بين الجداول فهو سهل للغاية عند استخدام ReQL. أما في باقي نظم NoSQL كحال MongoDB فإن مثل هذه العمليات من الاستعلام تحتاج إلى الكثير من الاكواد المعقدة. علاوة على اشتمالها على طرق الاستعلام التقليدية, فإن ReQL تعد لغة استعلام ديناميكية وقابلة للتطوير.

تعد RethinkDB قاعدة بيانات مفتوحة المصدر مناسبة للتطبيقات الآنية Real Time Application. وهي الخيار الأنسب لهذا النوع من التطبيقات خاصة إذا قارناها بأشهر قاعدة بيانات آنية  Firebase. في الحقيقة, إن تكلفة استخدام Firebase مرتفعة جدا. كما أنها أشد سرعة في تحديث البيانات من Firebase. فهي تمنحك إمكانية كتابة برنامج REST API خاص بك والذي يراقب التحديثات في ملفات قاعدة البيانات ويقدمها للتطبيقات المناسبة بشكل سريع وسلس.

 

  • شارك

اترك التعليق