أنشئ نموذج التطبيق هذا لاكتشاف مدى سهولة قواعد البيانات.

الماخذ الرئيسية

  • DynamoDB هي قاعدة بيانات NoSQL قوية تقدمها AWS ويمكنها التعامل مع كميات كبيرة من البيانات المتنوعة دون المساس بالأداء أو المتانة أو الموثوقية.
  • للبدء في استخدام DynamoDB في Node.js، تحتاج إلى تثبيت حزمة Client-dynamodb من aws-sdk وتكوين بيانات الاعتماد الخاصة بك.
  • يتيح لك DynamoDB إمكانية إنشاء الجداول وكتابة البيانات وقراءتها وتحديث السجلات وحذفها بسهولة باستخدام أساليب العميل ومعلماته. فهو يوفر المرونة وقابلية التوسع لتطوير التطبيقات بكفاءة.

يحتاج جزء كبير من تطوير التطبيقات الحديثة إلى مزيج من لغات البرمجة القوية وقواعد البيانات القوية.

أحد الحلول التي تقدمها Amazon Web Services (AWS) هو DynamoDB، وهي أداة يمكنها إحداث ثورة في إدارة بياناتك. باستخدامه، يمكنك توفير قاعدة بيانات بسرعة للتعامل مع كميات كبيرة من البيانات المتنوعة.

ما هو DynamoDB؟

تقدم AWS خدمات لاحتياجات قواعد البيانات المختلفة، مثل Amazon RDS لقواعد البيانات العلائقيةو DocumentDB لـ قواعد بيانات المستندات مثل MongoDB. DynamoDB هي قاعدة بيانات NoSQL لتخزين البيانات بتنسيق قيمة المفتاح.

instagram viewer

يمكن لـ DynamoDB التعامل مع كميات كبيرة من البيانات عبر البنية التحتية الموزعة دون المساس بالأداء أو المتانة أو الموثوقية. فهو يقدم نموذجًا مرنًا، مما يتيح لك تخزين البيانات والاستعلام عنها بسهولة، سواء كانت منظمة أو غير منظمة.

يمكنك استخدام DynamoDB كقاعدة بيانات لأنواع مختلفة من التطبيقات. يمكنك الوصول إليه مباشرة من وحدة تحكم الويب AWS وبرمجيًا عبر AWS-CLI، أو من تطبيقات الويب باستخدام AWS-SDK.

البدء باستخدام DynamoDB في Node.js

هناك العديد من أدوات لبناء واجهات برمجة التطبيقات الخلفية في Node.js ولك الحرية في اختيار قاعدة البيانات لواجهة برمجة التطبيقات (API) الخاصة بك عند العمل باستخدام أي من هذه الأدوات. يوفر Node.js دعمًا واسعًا للخدمات الخارجية بما في ذلك قواعد البيانات مثل AWS DynamoDB.

كل ما تحتاجه للوصول إلى خدمة AWS من تطبيق Node الخاص بك هو العميل aws-sdk حزمة لهذه الخدمة. على سبيل المثال، للوصول إلى DynamoDB، تحتاج إلى تثبيت ملف العميل dynamodb الحزمة تحت aws-sdk.

قم بتشغيل هذا الأمر في دليل المشروع الخاص بك لتثبيت الحزمة:

npm install @aws-sdk/client-dynamodb

بعد التثبيت aws-sdk/client-dynamodb في مشروع Node.js الخاص بك، تحتاج إلى إضافة منطقة جدول DynamoDB إلى التكوين قبل التفاعل معه. ستقوم بذلك عند تهيئة عميل DynamoDB.

إذا قمت بتثبيت AWS-CLI واستخدامه على جهاز الكمبيوتر الخاص بك من قبل، فمن المحتمل أن يكون لديك بيانات اعتماد AWS معينة في بيئتك بالفعل، وسيحصل SDK تلقائيًا على القيم الخاصة بك من البيئة.

ولكن إذا لم تقم بذلك، يمكنك التوجه إلى إدارة الوصول إلى الهوية من AWS (IAM) الخدمة في وحدة التحكم الخاصة بك وإنشاء مستخدم جديد. بعد إنشاء المستخدم، يمكنك الحصول على معرف مفتاح الوصول والمفتاح السري، وهما بيانات الاعتماد الشخصية الخاصة بك.

أضف بيانات الاعتماد هذه إلى بيئتك عن طريق تشغيل الأوامر الطرفية التالية لنظامك الأساسي:

على أنظمة Unix أو Linux أو macOS:

export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'

على نظام التشغيل Windows (CMD):

set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'

على نظام التشغيل Windows (PowerShell):

$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'

بعد ذلك، عد إلى مشروع Node.js الخاص بك، وقم بإنشاء ملف جديد وقم بتسميته dynamodb.js. في هذا الملف، قم بإنشاء مثيل لعميل AWS DynamoDB جديد باستخدام التعليمة البرمجية التالية:

const { DynamoDB } = require('@aws-sdk/client-dynamodb')

const region = "us-east-1"// your preferred region

const client = new DynamoDB({ region })

بسيطة جدا! تتأكد AWS من عدم الكشف عن أي من بيانات اعتماد الأمان الخاصة بك في التعليمات البرمجية الخاصة بك، وذلك أثناء استخدام التعليمات البرمجية يحاول أعلاه إنشاء العميل، فهو يقرأ أولاً مفتاح الوصول والمفتاح السري من بيئتك.

المنشأة حديثا عميل تمكنك من تنفيذ عمليات مختلفة، مثل إنشاء الجداول وقراءة البيانات وكتابتها.

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

تحقق من الكود التالي الذي يقوم بإنشاء جدول جديد (عميل) في DynamoDB:

const createCustomerTable = async () => {
const params = {
TableName: "Customer",
AttributeDefinitions: [
{
AttributeName: "Email",
AttributeType: "S"
},
],
KeySchema: [
{
AttributeName: "Email",
KeyType: "HASH"
}
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};

client.createTable(params, (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
}

createCustomerTable();

ال تعريفات السمات الحقل هو المكان الذي تحدد فيه السمات الرئيسية للجدول وأنواعها. ال بريد إلكتروني السمة هنا لها نوع س مما يعني أن المجال يتوقع أ خيط كقيمته. أنواع السمات الثلاثة المتاحة هي س, ن، و ب (السلسلة والرقم والثنائي).

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

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

المعلمة المهمة الثالثة في الكود أعلاه هي الإنتاجية المتوفرة. هذا هو المكان الذي تحدد فيه عدد عمليات القراءة والكتابة التي تريد أن يسمح بها DynamoDb على الجدول في الثانية.

عند تشغيل الكود أعلاه، يجب أن تحصل على الإخراج الذي يبدو كما يلي:

إذا قمت بفحص لوحة تحكم جداول DynamoDB في وحدة تحكم الويب، فسترى الجدول إما لا يزال قيد التجهيز أو بحالة نشيط بالفعل.

ضع في اعتبارك دائمًا احتياجات تطبيقك عند تحديد وحدات سعة القراءة و وحدات سعة الكتابة لأن القيمة غير المناسبة يمكن أن تؤدي إلى مشاكل في الأداء أو ارتفاع تكاليف الفواتير على حسابك.

بمجرد التأكد من أن الجدول نشط بالفعل، يمكنك إجراء عمليات CRUD عليه.

فيما يلي بعض أمثلة التعليمات البرمجية التي توضح لك كيفية كتابة البيانات وقراءتها من عميل طاولة.

  1. إضافة البيانات إلى الجدول. لكتابة البيانات إلى جدول، تحتاج إلى العميل putItem طريقة. يضيف الكود أدناه عميلاً جديدًا إلى عميل الجدول في DynamoDB.
    const createCustomer = async (customer) => {
    const params = {
    TableName: "Customer",
    Item: customer
    }

    client.putItem(params, (err, data) => {
    if (err) {
    console.error(err)
    } else {
    console.log(data)
    }
    })
    }

    const customerData = {
    Name: { "S": "Timilehin O." },
    Email: { "S": "[email protected]" },
    Age: { "N": "18"},
    Country: { "S": "Nigeria" }
    }

    createCustomer(customerData)

    ال المعلمات الكائن يحتوي على اسم الطاولة وهو الجدول الذي تكتب إليه، و غرض الحقل الذي يحتوي على البيانات التي تضيفها مع أنواعها المحددة. لاحظ الحقول الجديدة التي لم تكن موجودة في الجدول في البداية، هذه هي الطريقة التي يعمل بها DynamoDB بمرونة. يمكنك عرض البيانات الموجودة في قاعدة البيانات الخاصة بك في وحدة التحكم الخاصة بك مثل هذا:
  2. قراءة البيانات من الجدول. يتيح لك DynamoDB قراءة البيانات بطرق مختلفة. أدوات تطوير البرامج (SDK). مسح تقوم الدالة بقراءة الجدول بأكمله، بينما تحصل على البند يقرأ بيانات محددة فقط. على سبيل المثال، الكود أدناه يحصل على جميع العملاء:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

    const customers = await client.scan(params)
    console.log(customers)
    }

    بينما يحصل الكود التالي على المستخدم بقيمة البريد الإلكتروني:
    const getCustomerByEmail = async (email) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email } // the type is always required
    }
    }

    const customer = await client.getItem(params)
    console.log(customer)
    }

    getCustomerByEmail("[email protected]")

  3. تحديث البيانات في الجدول. لتحديث البيانات الموجودة في جدول، استخدم أدوات تطوير البرمجيات (SDK). updateItem وظيفة. يوضح التعليمة البرمجية التالية كيفية تحديث سجل معين:
     const updateCustomerLocation = async (email, age) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email }
    },
    UpdateExpression: "SET Age = :newAge",
    ExpressionAttributeValues: {
    ':newAge': { "N": age }
    },
    ReturnValues: "ALL_NEW"
    }

    const updatedCustomer = await client.updateItem(params)
    console.log(updatedCustomer.Attributes)
     }

    يمكنك أيضًا اختيار جعل وظيفتك ديناميكية عن طريق إنشاء تعبيرات التحديث من بيانات التحديث الخاصة بك. تسمح لك مرونة DynamoDB بالتعامل مع كل عملية وفقًا لاحتياجاتك.
  4. حذف البيانات من الجدول. لحذف سجل من DynamoDB، تحتاج إلى deleteItem وظيفة ومفتاح سجل معين. وإليك كيفية تنفيذها:
    const deleteCustomer = async (email) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email }
    }
    }

    client.deleteItem(params, (err, data) => {
    if (err) {
    console.error(err)
    } else {
    console.log("Customer deleted successfully")
    }
    })
    }

    deleteCustomer("[email protected]")

بناء تطبيقات فعالة باستخدام DynamoDB

تستمر Amazon Web Services في الازدهار. فهو يوفر منصة يمكن الوصول إليها يمكنك استخدامها لتقديم حلول رقمية فعالة وآمنة. يعد DynamoDB هو الخيار الأمثل إذا كنت تبحث عن قاعدة بيانات لتشغيلها دون القلق بشأن البنية التحتية أو الأمان.

أنت الآن مجهز بكل ما تحتاجه لبدء استخدام DynamoDB في Node.js، ويمكنك بكل ثقة اختيار DynamoDB لتطبيق Node.js التالي.