DynamoDB ببساطة: دليل شامل للمبتدئين
مقدمة
Amazon DynamoDB هي قاعدة بيانات NoSQL مُدارة بالكامل وبدون خوادم (serverless) تقدمها AWS. توفر أداءً ثابتًا على أي نطاق، مع توافر ومتانة مدمجين. سيساعدك هذا الدليل على فهم المفاهيم الأساسية في DynamoDB والبدء في استخدامها في مشاريعك.
ما هي DynamoDB؟
DynamoDB هي قاعدة بيانات NoSQL تخزّن البيانات في شكل مجموعات من السمات. وخلافًا لقواعد البيانات العلائقية التقليدية، لا تعتمد DynamoDB على مخطط ثابت، وهي مصممة لتكون عالية التوافر وقابلة للتوسع.
الخصائص الرئيسية
- مُدارة بالكامل: تتولى AWS إدارة البنية التحتية والتحديثات والصيانة
- بدون خوادم (Serverless): تدفع فقط مقابل ما تستخدمه
- توافر عالٍ: نسخ متماثل تلقائي عبر عدة مناطق توافر
- قابلية التوسع: القدرة على معالجة ملايين الطلبات في الثانية
- زمن استجابة منخفض: أزمنة استجابة بالميلي ثانية
المفاهيم الأساسية
الجداول والعناصر والسمات
- الجدول (Table): مجموعة من العناصر (يعادل الجدول في قاعدة البيانات العلائقية)
- العنصر (Item): مجموعة من السمات (يعادل الصف)
- السمة (Attribute): زوج اسم-قيمة (يعادل العمود)
المفاتيح الأساسية
تستخدم DynamoDB نوعين من المفاتيح الأساسية:
- مفتاح التقسيم (Partition key): المعرّف الفريد للعنصر
- مفتاح الفرز (Sort key): اختياري، يتيح فرز العناصر التي لها نفس مفتاح التقسيم
الفهارس الثانوية
- الفهرس الثانوي العام (GSI): يتيح الوصول إلى البيانات باستخدام مفتاح مختلف
- الفهرس الثانوي المحلي (LSI): يستخدم نفس مفتاح التقسيم ولكن بمفتاح فرز مختلف
حالات الاستخدام
تُعد DynamoDB مثالية لـ:
- التطبيقات ذات أعباء العمل التي يصعب التنبؤ بها
- الخدمات التي تتطلب زمن استجابة منخفضًا
- تطبيقات الهاتف المحمول والويب
- ألعاب الفيديو والتطبيقات الفورية
- أنظمة التوصية
- كتالوجات المنتجات
- إدارة جلسات المستخدمين
مقارنة مع قواعد بيانات أخرى
| الخاصية | DynamoDB | MongoDB | Cassandra | RDS |
|---|---|---|---|---|
| النوع | NoSQL (مفتاح-قيمة) | NoSQL (مستندات) | NoSQL (أعمدة) | علائقية |
| الإدارة | مُدارة بالكامل | ذاتية الإدارة أو سحابية | ذاتية الإدارة أو سحابية | مُدارة بالكامل |
| نموذج التكلفة | Pay-as-you-go (الدفع حسب الاستخدام) | الدفع حسب الاستخدام أو ترخيص | الدفع حسب الاستخدام أو ترخيص | الدفع حسب الاستخدام أو ترخيص |
| قابلية التوسع | تلقائية | يدوية أو تلقائية | يدوية أو تلقائية | رأسية أو أفقية |
| الاستعلامات | واجهة API بسيطة | لغة استعلام غنية | CQL | SQL |
| المعاملات | ACID (محدودة) | ACID (محدودة) | Eventual consistency (اتساق نهائي) | ACID كاملة |
أفضل الممارسات
تصميم الجداول
- تحديد أنماط الوصول: فهم كيفية الوصول إلى بياناتك
- اختيار المفاتيح الأساسية المناسبة: توزيع البيانات بشكل متساوٍ
- استخدام الفهارس الثانوية بحكمة: الموازنة بين الأداء والتكلفة
- تجنب عمليات المسح (scans): تفضيل الاستعلامات حسب المفتاح
تحسين التكاليف
- استخدام وضع السعة المحجوزة (provisioned) لأعباء العمل الممكن التنبؤ بها
- استخدام وضع السعة عند الطلب (on-demand) لأعباء العمل التي يصعب التنبؤ بها
- تطبيق TTL لحذف البيانات المنتهية الصلاحية تلقائيًا
- ضغط البيانات لتقليل التخزين
مثال عملي: إنشاء جدول DynamoDB
إليك مثالًا على إنشاء جدول DynamoDB باستخدام AWS CLI:
aws dynamodb create-table \
--table-name Users \
--attribute-definitions \
AttributeName=UserId,AttributeType=S \
AttributeName=Email,AttributeType=S \
--key-schema \
AttributeName=UserId,KeyType=HASH \
--global-secondary-indexes \
"[
{
\"IndexName\": \"EmailIndex\",
\"KeySchema\": [
{\"AttributeName\":\"Email\",\"KeyType\":\"HASH\"}
],
\"Projection\": {
\"ProjectionType\":\"ALL\"
},
\"ProvisionedThroughput\": {
\"ReadCapacityUnits\": 5,
\"WriteCapacityUnits\": 5
}
}
]" \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
التكامل مع خدمات AWS الأخرى
تتكامل DynamoDB بسلاسة مع خدمات AWS الأخرى:
- AWS Lambda: معالجة البيانات بدون خوادم
- Amazon API Gateway: عرض البيانات عبر واجهات REST API
- Amazon S3: تخزين الكائنات للبيانات غير المهيكلة
- Amazon CloudWatch: مراقبة الأداء
- AWS Backup: النسخ الاحتياطي التلقائي للجداول
الخاتمة
Amazon DynamoDB حل قوي ومرن للتطبيقات الحديثة التي تتطلب قاعدة بيانات NoSQL بدون خوادم. وتجعلها سهولة استخدامها، إضافةً إلى قابليتها للتوسع وموثوقيتها، خيارًا ممتازًا للعديد من حالات الاستخدام.
بفهم المفاهيم الأساسية واتباع أفضل الممارسات، ستتمكن من الاستفادة القصوى من DynamoDB في مشاريعك على AWS.
موارد إضافية
نبذة عن InSkillCoach
خبير في التدريب والتقنيات
مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.
الشهادات:
- AWS Certified Solutions Architect – Professional
- شهادات Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش