DynamoDB ترقيم الصفحات: نظرة عامة ، وقضايا الاستخدام ، والأمثلة

Dynamodb Trqym Alsfhat Nzrt Amt Wqdaya Alastkhdam Walamthlt



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

ما هو ترقيم الصفحات في DynamoDB؟

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







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



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



كيفية استخدام ترقيم الصفحات في DynamoDB





1. ترقيم الصفحات أثناء عملية الاستعلام

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

تشير النتيجة التي لا تحتوي على عنصر LastEvaluatedKey وهو غير فارغ إلى أن جميع العناصر التي تطابق الاستعلام تتناسب مع حد 1 ميغابايت ولا يوجد المزيد من العناصر للاسترداد. بالطبع ، يمكنك أيضًا تعيين حد لعدد العناصر لكل نتيجة. انظر نموذج الأمر التالي:



استعلام دينامودب AWS \

- اسم الجدول MyTableName \

- مفتاح شرط التعبير 'PartitionKey =: pk \

- تعبير-سمة-قيم '{'
: pk ': {' س ':' a1234b '}} ،

--الحد 10 \

يمكنك استخدام الأمر السابق للاستعلام عن الجدول الخاص بك عن العناصر التي لها نفس قيم تعبير شرط المفتاح. دعونا نبحث في جدول 'الطلبات' الخاص بنا عن order_Ids من Darry Tech. كما وضعنا حدًا لعشرة عناصر لكل صفحة. هناك خيار آخر للمعامل –limit وهو استخدام المعلمة –page-size لنفس الغرض.

ترقيم الصفحات هو عملية تلقائية في AWS CLI للعناصر التي تقل عن 1 ميغابايت من البيانات. يمكنك إضافة مفتاح بدء خاص إلى الأمر إذا كنت تريد أن يبدأ استعلامك من ترتيب معين.

يبدو الرد كما يلي:

تظهر النتائج المقدمة 10 Darry Tech في الصفحة الأولى. يمكنك استخدام قيم LastEvaluatedKey للحصول على المزيد من الطلبات التي تتطابق مع قيم مفتاح التعبير لبحثك لإنشاء استعلام جديد. يحتوي طلب الاستعلام الجديد على قيم LastEvaluatedKey في المعلمة ExclusiveStartKey.

يظهر مثال على بناء الجملة في ما يلي:

استعلام دينامودب AWS \

- اسم الجدول مثال الجدول \

- مفتاح شرط التعبير 'PartitionKey =: pk \

- تعبير-سمة-قيم '{'
: pk ': {' س ': داري تك \

--الحد 10 \

--مفتاح بدء حصري '{'
مفتاح التقسيم ': {' س ': داري تك' } ، 'SortKey' : { 'س' : '5356' }} '

ينتج عن الأمر السابق أوامر التعيين التالية في الصفحة التالية ، بدءًا من معرف الطلب الذي يحتوي على المفتاح الأساسي المحدد ، مثل {'PartitionKey': {'S': Darry Tech '} ،' SortKey ': {' S ': '5356-sy'}}.

2. ترقيم الصفحات أثناء عمليات المسح

من الممكن أيضًا استخدام ترقيم الصفحات لعمليات المسح. كل شيء يعمل بنفس الطريقة التي تعمل بها أوامر الاستعلام. ومع ذلك ، تحتاج إلى استخدام سمة filter-expression. يبدو الأمر مثل ما لدينا هنا:

مسح دينامودب AWS \

- اسم الجدول MyTable \

- مرشح التعبير 'AttributeName =: القيمة' \

- التعبير-السمة-القيم '{': value': {'S': 'ABC123'}}' \

--حد عشرين \

- مفتاح بدء حصري '{'PartitionKey': {'S': 'ABC123'}، 'SortKey': {'S': 'XYZ987'}}'

يسترجع الأمر السابق ما يصل إلى 20 عنصرًا في كل صفحة من جدول MyTable ، بدءًا من العنصر الذي يكون مفتاحه الأساسي هو {'PartitionKey': 'ABC123' ، 'SortKey': 'XYZ987'}. يقوم بتصفية النتائج لتشمل فقط العناصر التي تحتوي فيها سمة AttributeName على القيمة 'ABC123'.

في الرد ، فإن LastEvaluatedKey يحتوي الحقل على المفتاح الأساسي للعنصر الأخير في مجموعة النتائج. يمكنك استخدام هذه القيمة على أنها ExclusiveStartKey في وقت لاحق مسح عملية لاسترداد الصفحة التالية من النتائج.

استنتاج

يُحسِّن ترقيم الصفحات في DynamoDB من إمكانية إدارة البيانات. ومع ذلك ، من الضروري معرفة ما إذا كانت أنظمتك ستستفيد من ترقيم الصفحات. من الضروري استخدام ترقيم الصفحات إذا كانت لديك قائمة طويلة من العناصر في التطبيق. بينما يركز الرسم التوضيحي المقدم على استدعاء AWS CLI ، يمكنك أيضًا استخدام ترقيم الصفحات مع AWS SDKs مثل Python’s Boto3 أو أي SDK تفضله.