كما مطور، قد تواجه حالات حيث يجب أن يتعامل قاعدة بيانات تطبيقك مع كميات كبيرة من البيانات. طريقة واحدة لإدارة هذه البيانات بفعالية هي من خلال تجزئة قاعدة البيانات، تقنية توزع البيانات عبر عدة خوادم أو قواعد بيانات أفقياً. يمكن للتجزئة تحسين الأداء والقابلية للتوسع والموثوقية عن طريق تقسيم قاعدة بيانات كبيرة إلى أجزاء أصغر وأسهل في الإدارة تسمى شذرات.
في هذا المقال، سنستكشف مفهوم تجزئة قاعدة البيانات، ونناقش تبادلي عديد من استراتيجيات التجزئة، ونقدم دليل خطوة بخطوة لتنفيذ التجزئة في MongoDB، قاعدة بيانات NoSQL شهيرة.
فهم تجزئة قاعدة البيانات
يتضمن تجزئة قاعدة البيانات تقسيم مجموعة البيانات الكبيرة إلى مجموعات أصغر تسمى شذرات. تحتوي كل شذرة على جزء من البيانات الإجمالية وتعمل بشكل مستقل عن الآخرين. من خلال تنفيذ الاستعلامات والمعاملات على شذرة واحدة بدلاً من المجموعة الكاملة من البيانات، تكون أوقات الاستجابة أسرع، ويتم استخدام الموارد بشكل أكثر كفاءة.
استراتيجيات التجزئة
هناك عدة إستراتيجيات للتجزئة لتختار من بينها، حسب متطلبات تطبيقك:
- التجزئة المبنية على النطاق: يتم تقسيم البيانات بناءً على نطاق محدد من القيم (على سبيل المثال، المستخدمين بأرقام التعريف 1-1000 في شذرة 1، المستخدمين بأرقام التعريف 1001-2000 في شذرة 2).
- تقسيم التجزئة المبني على التجزئة: يتم تطبيق دالة تجزئة على سمة معينة (على سبيل المثال، معرف المستخدم)، والنتيجة التي تحدث تحدد أي شريحة ينتمي إليها البيانات. هذه الطريقة تضمن توزيع متوازن للبيانات عبر الشرائح.
- تقسيم التجزئة المبني على الدليل: يتم استخدام خدمة بحث منفصلة أو جدول لتحديد أي شريحة ينتمي إليها قطعة من البيانات. هذا الأسلوب يوفر مرونة في إضافة أو إزالة الشرائح ولكنه قد يضيف طبقة إضافية من التعقيد.
- تقسيم التجزئة المبني على الموقع الجغرافي: يتم تقسيم البيانات بناءً على الموقع الجغرافي للمستخدمين أو الموارد، مما يقلل من التأخر للمستخدمين الموزعين جغرافياً.
تنفيذ التجزئة في MongoDB
يدعم MongoDB التجزئة مباشرةً، مما يجعله خيارًا رائعًا للمطورين الذين يبحثون عن تنفيذ التجزئة في تطبيقاتهم. هذا هو الدليل خطوة بخطوة لإعداد التجزئة في MongoDB. سنستخدم قواعد بيانات MongoDB التي تستخدم بناء جملة JavaScript لكتابة الأوامر والتفاعل مع قاعدة البيانات:
1. إعداد خادم التكوين
يخزن خادم التكوين بيانات التعريف حول المجمع ومواقع الشريحة. للبيئات الإنتاجية، استخدم مجموعة تكوين من ثلاثة خوادم تكوين.
mongod --configsvr --dbpath /data/configdb --port 27019 --replSet configReplSet
2. تهيئة مجموعة تكوين المستندات
تهيئة هذا الأمر مجموعة جديدة على مثيل MongoDB الذي يعمل على المنفذ 27019
.
mongo --port 27019
> rs.initiate()
3. إعداد خوادم الشريحة
ابدأ كل خادم شريحة مع خيار --shardsvr
و--dbpath
فريد.
mongod --shardsvr --dbpath /data/shard1 --port 27018
mongod --shardsvr --dbpath /data/shard2 --port 27017
4. بدء عملية الmongos
العملية mongos
تعمل كجهاز توجيه بين العملاء ومجمع التشارت.
mongos --configdb configReplSet/localhost:27019
5. الاتصال بمثيل mongos وإضافة التشارت
mongo
> sh.addShard("localhost:27018")
> sh.addShard("localhost:27017")
6. تمكين التجزئة لقاعدة بيانات محددة ومجموعة بيانات
> sh.enableSharding("myDatabase")
> sh.shardCollection("myDatabase.myCollection", {"userId": "hashed"})
في هذا المثال، قمنا بإعداد مجمع تجزئة MongoDB به تشارتان واستخدمنا التجزئة المبنية على التجزئة التجزئة على حقل userId
. الآن، ستتوزع البيانات في مجموعة بيانات "myCollection"
عبر التشارتان، مما يحسن الأداء والقابلية للتوسع.
الخاتمة
تجزئة قاعدة البيانات هي تقنية فعالة لإدارة مجموعات بيانات كبيرة في تطبيقك. من خلال فهم استراتيجيات التجزئة المختلفة وتطبيقها باستخدام MongoDB، يمكنك تحسين أداء تطبيقك بشكل كبير، وقابليته للتوسع، وموثوقيته. بمساعدة هذا الدليل، يجب أن يكون لديك الآن فهم صحيح لكيفية إعداد التجزئة في MongoDB وتطبيقها على مشاريعك.
تعلم بسعادة!!
Source:
https://dzone.com/articles/a-developers-guide-to-database-sharding-with-mongo