0%
DynamoDB ببساطة: دليل شامل للمبتدئين

DynamoDB ببساطة: دليل شامل للمبتدئين

اكتشف Amazon DynamoDB، قاعدة بيانات NoSQL بدون خوادم (serverless) من AWS، ومفاهيمها الأساسية وحالات استخدامها وأفضل الممارسات.

I

InSkillCoach

· دقيقة

DynamoDB ببساطة: دليل شامل للمبتدئين

مقدمة

Amazon DynamoDB هي قاعدة بيانات NoSQL مُدارة بالكامل وبدون خوادم (serverless) تقدمها AWS. توفر أداءً ثابتًا على أي نطاق، مع توافر ومتانة مدمجين. سيساعدك هذا الدليل على فهم المفاهيم الأساسية في DynamoDB والبدء في استخدامها في مشاريعك.

ما هي DynamoDB؟

DynamoDB هي قاعدة بيانات NoSQL تخزّن البيانات في شكل مجموعات من السمات. وخلافًا لقواعد البيانات العلائقية التقليدية، لا تعتمد DynamoDB على مخطط ثابت، وهي مصممة لتكون عالية التوافر وقابلة للتوسع.

الخصائص الرئيسية

  • مُدارة بالكامل: تتولى AWS إدارة البنية التحتية والتحديثات والصيانة
  • بدون خوادم (Serverless): تدفع فقط مقابل ما تستخدمه
  • توافر عالٍ: نسخ متماثل تلقائي عبر عدة مناطق توافر
  • قابلية التوسع: القدرة على معالجة ملايين الطلبات في الثانية
  • زمن استجابة منخفض: أزمنة استجابة بالميلي ثانية

المفاهيم الأساسية

الجداول والعناصر والسمات

  • الجدول (Table): مجموعة من العناصر (يعادل الجدول في قاعدة البيانات العلائقية)
  • العنصر (Item): مجموعة من السمات (يعادل الصف)
  • السمة (Attribute): زوج اسم-قيمة (يعادل العمود)

المفاتيح الأساسية

تستخدم DynamoDB نوعين من المفاتيح الأساسية:

  1. مفتاح التقسيم (Partition key): المعرّف الفريد للعنصر
  2. مفتاح الفرز (Sort key): اختياري، يتيح فرز العناصر التي لها نفس مفتاح التقسيم

الفهارس الثانوية

  • الفهرس الثانوي العام (GSI): يتيح الوصول إلى البيانات باستخدام مفتاح مختلف
  • الفهرس الثانوي المحلي (LSI): يستخدم نفس مفتاح التقسيم ولكن بمفتاح فرز مختلف

حالات الاستخدام

تُعد DynamoDB مثالية لـ:

  • التطبيقات ذات أعباء العمل التي يصعب التنبؤ بها
  • الخدمات التي تتطلب زمن استجابة منخفضًا
  • تطبيقات الهاتف المحمول والويب
  • ألعاب الفيديو والتطبيقات الفورية
  • أنظمة التوصية
  • كتالوجات المنتجات
  • إدارة جلسات المستخدمين

مقارنة مع قواعد بيانات أخرى

الخاصيةDynamoDBMongoDBCassandraRDS
النوعNoSQL (مفتاح-قيمة)NoSQL (مستندات)NoSQL (أعمدة)علائقية
الإدارةمُدارة بالكاملذاتية الإدارة أو سحابيةذاتية الإدارة أو سحابيةمُدارة بالكامل
نموذج التكلفةPay-as-you-go (الدفع حسب الاستخدام)الدفع حسب الاستخدام أو ترخيصالدفع حسب الاستخدام أو ترخيصالدفع حسب الاستخدام أو ترخيص
قابلية التوسعتلقائيةيدوية أو تلقائيةيدوية أو تلقائيةرأسية أو أفقية
الاستعلاماتواجهة API بسيطةلغة استعلام غنيةCQLSQL
المعاملاتACID (محدودة)ACID (محدودة)Eventual consistency (اتساق نهائي)ACID كاملة

أفضل الممارسات

تصميم الجداول

  1. تحديد أنماط الوصول: فهم كيفية الوصول إلى بياناتك
  2. اختيار المفاتيح الأساسية المناسبة: توزيع البيانات بشكل متساوٍ
  3. استخدام الفهارس الثانوية بحكمة: الموازنة بين الأداء والتكلفة
  4. تجنب عمليات المسح (scans): تفضيل الاستعلامات حسب المفتاح

تحسين التكاليف

  1. استخدام وضع السعة المحجوزة (provisioned) لأعباء العمل الممكن التنبؤ بها
  2. استخدام وضع السعة عند الطلب (on-demand) لأعباء العمل التي يصعب التنبؤ بها
  3. تطبيق TTL لحذف البيانات المنتهية الصلاحية تلقائيًا
  4. ضغط البيانات لتقليل التخزين

مثال عملي: إنشاء جدول 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

نبذة عن InSkillCoach

خبير في التدريب والتقنيات

مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.

الشهادات:

  • AWS Certified Solutions Architect – Professional
  • شهادات Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
1.3k
233

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!