DynamoDB صفحہ بندی: جائزہ، استعمال کے کیسز، اور مثالیں۔

Dynamodb Sfh Bndy Jayz Ast Mal K Kysz Awr Mthaly



بڑی مقدار میں ڈیٹا کا انتظام کرنا ڈیٹا مینیجرز کے لیے ایک مشکل کام ہو سکتا ہے، خاص طور پر اگر آپ کے استفسار یا اسکین کے نتائج متعدد صفحات میں چلتے ہیں۔ DynamoDB میں صفحہ بندی ڈیٹا بیس کو اعداد و شمار کی بڑی مقدار کو سنبھالنے کے قابل بناتی ہے تاکہ نتائج کو متعدد قابل انتظام صفحات میں تقسیم کیا جا سکے۔ یہ اس بات پر بھی روشنی ڈالتا ہے کہ کس طرح DynamoDB میں صفحہ بندی دوسرے ڈیٹا بیس میں صفحہ بندی سے مختلف ہے۔

DynamoDB میں صفحہ بندی کیا ہے؟

عام طور پر، صفحہ بندی، لفظ کے صفحات سے ماخوذ، ایک تکنیک ہے جو ڈیٹا بیس کے ذریعے ڈیٹا ریکارڈ کو متعدد حصوں، حصوں یا صفحات میں تقسیم کرنے کے لیے استعمال کیا جاتا ہے۔ اور چونکہ AWS DynamoDB بڑی مقدار میں ڈیٹا کو ذخیرہ کرنے کی حمایت کرتا ہے، اس لیے اس میں صفحہ بندی کی قابل اعتماد صلاحیتیں موجود ہیں۔







DynamoDB صفحہ بندی کا جزو اس بات کو یقینی بناتا ہے کہ آپ فی اسکین یا استفسار پر صرف 1 GB تک ڈیٹا حاصل کر سکتے ہیں۔ جب کہ یہ ڈیفالٹ سیٹنگ ہے، آپ ایک سوال میں حد کا پیرامیٹر شامل کر سکتے ہیں تاکہ ایک حد بتائی جا سکے۔ آپ ہر اسکین کے استفسار میں ریکارڈز کی تعداد کے لیے مزید ایک حد مقرر کر سکتے ہیں۔



خاص طور پر، DynamoDB میں صفحہ بندی اور عام SQL ڈیٹا بیس میں صفحہ بندی کے درمیان کچھ فرق موجود ہیں۔ واضح طور پر، ہر صفحہ بندی شدہ ریکارڈ جو DynamoDB میں بازیافت کیا جاتا ہے براہ راست لاگت کے ساتھ آتا ہے، جس سے DynamoDB میں صفحہ بندی کا استعمال کرتے وقت یہ ایک غیر تحریری اصول بن جاتا ہے۔ یہ خصوصیت صفحہ بندی کو بازیافت شدہ ریکارڈ اور براہ راست اخراجات دونوں کو محدود کرنے میں ایک اہم عنصر بناتی ہے۔



DynamoDB میں صفحہ بندی کا استعمال کیسے کریں۔





1. سوال کے آپریشن کے دوران صفحہ بندی

DynamoDB میں، ایک سوال صرف 1 MB تک کے نتائج دیتا ہے۔ لیکن آپ مؤثر طریقے سے اس بات کی تصدیق کر سکتے ہیں کہ آیا آپ کے نتائج کی چھان بین کرکے مزید نتائج ہیں۔ خاص طور پر، ایک نچلے درجے کے استفسار کے آپریشن کے نتیجے میں LastEvaluatedKey عنصر ہوتا ہے جو اس بات کی نشاندہی کرتا ہے کہ آپ کے استفسار سے متعلق مزید آئٹمز ہیں جنہیں آپ کو بازیافت کرنا چاہیے۔

LastEvaluatedKey عنصر کے بغیر نتیجہ جو کہ غیر null ہے، اس کا مطلب یہ ہے کہ استفسار سے مماثل تمام آئٹمز 1 MB کی حد میں فٹ ہیں اور بازیافت کے لیے مزید کوئی آئٹمز نہیں ہیں۔ بلاشبہ، آپ فی نتیجہ اشیاء کی تعداد کے لیے ایک حد بھی مقرر کر سکتے ہیں۔ مندرجہ ذیل نمونہ کمانڈ دیکھیں:



aws dynamodb استفسار \

--table-name MyTableName \

--key-condition-expression پارٹیشن کی = :pk \

--expression-attribute-values ​​'{'
:pk ':{' ایس ' :' a1234b '}}،

--حد 10 \

آپ پچھلی کمانڈ کا استعمال کر سکتے ہیں اپنے ٹیبل سے ان آئٹمز کے لیے استفسار کرنے کے لیے جو ایک ہی کلیدی حالت کے اظہار کی اقدار کے ساتھ ہیں۔ آئیے ڈیری ٹیک سے آرڈر_آئی ڈی کے لیے اپنے 'آرڈرز' ٹیبل کو تلاش کریں۔ ہم نے فی صفحہ 10 آئٹمز کی حد بھی مقرر کی ہے۔ -limit پیرامیٹر کے لیے ایک اور آپشن -page-size پیرامیٹر کو اسی مقصد کے لیے استعمال کرنا ہے۔

صفحہ بندی AWS CLI میں 1MB سے کم ڈیٹا کے لیے ایک خودکار آپریشن ہے۔ اگر آپ چاہتے ہیں کہ آپ کا استفسار کسی خاص ترتیب سے شروع ہو تو آپ کمانڈ میں ایک خصوصی اسٹارٹ کلید شامل کر سکتے ہیں۔

جواب اس طرح لگتا ہے:

فراہم کردہ نتائج پہلے صفحہ پر 10 ڈیری ٹیک دکھاتے ہیں۔ آپ LastEvaluatedKey اقدار کو مزید آرڈرز حاصل کرنے کے لیے استعمال کر سکتے ہیں جو کہ آپ کی تلاش کی کلیدی اقدار سے مماثل ہوں تاکہ ایک نیا سوال بنایا جا سکے۔ نئی استفسار کی درخواست ExclusiveStartKey پیرامیٹر میں LastEvaluatedKey اقدار پر مشتمل ہے۔

نحو کی ایک مثال درج ذیل میں دکھائی گئی ہے۔

aws dynamodb استفسار \

--table-name ExampleTable\

--key-condition-expression پارٹیشن کی = :pk \

--expression-attribute-values ​​'{'
:pk ':{' ایس ': ڈیری ٹیک' \

--حد 10 \

--exclusive-start-key '{'
پارٹیشن کی ':{' ایس ': ڈیری ٹیک' 'SortKey' :{ 'S' : '5356' }} '

پچھلی کمانڈ اگلے صفحہ میں اگلے سیٹ آف آرڈرز تیار کرتی ہے، اس آرڈر ID سے شروع ہوتی ہے جس میں مخصوص بنیادی کلید ہوتی ہے، یعنی {'PartitionKey':{'S': Darry Tech'},'SortKey':{'S': ”5356-sy”}}۔

2. اسکین آپریشنز کے دوران صفحہ بندی

اسکین آپریشنز کے لیے صفحہ بندی کا استعمال بھی ممکن ہے۔ سب کچھ اسی طرح کام کرتا ہے جیسا کہ استفسار کے احکامات کے ساتھ ہوتا ہے۔ تاہم، آپ کو فلٹر-اظہار وصف استعمال کرنے کی ضرورت ہے۔ کمانڈ ایسا لگتا ہے جو ہمارے یہاں ہے:

aws dynamodb اسکین \

--table-name MyTable \

--فلٹر-اظہار 'AtributeName = :value' \

--expression-انتساب-اقدار '{':value':{'S':'ABC123'}}' \

--حد بیس \

--exclusive-start-key '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

پچھلی کمانڈ MyTable ٹیبل سے فی صفحہ 20 آئٹمز تک کو ریٹائر کرتی ہے، اس آئٹم سے شروع ہوتی ہے جس کی بنیادی کلید {'PartitionKey': 'ABC123'، 'SortKey': 'XYZ987'} ہے۔ یہ صرف ان آئٹمز کو شامل کرنے کے لیے نتائج کو فلٹر کرتا ہے جہاں AttributeName انتساب کی 'ABC123' قدر ہوتی ہے۔

جواب میں، د LastEvaluatedKey فیلڈ نتیجہ سیٹ میں آخری آئٹم کی بنیادی کلید پر مشتمل ہے۔ آپ اس قدر کو بطور استعمال کر سکتے ہیں۔ ExclusiveStartKey بعد میں سکین نتائج کے اگلے صفحے کو بازیافت کرنے کے لیے آپریشن۔

نتیجہ

DynamoDB میں صفحہ بندی ڈیٹا کے انتظام کو بہتر بناتی ہے۔ تاہم، یہ جاننا ضروری ہے کہ آیا آپ کے سسٹم صفحہ بندی سے فائدہ اٹھائیں گے۔ اگر آپ کے پاس کسی ایپلی کیشن میں اشیاء کی ایک لمبی فہرست ہے تو صفحہ بندی کا استعمال ضروری ہے۔ جبکہ فراہم کردہ مثال AWS CLI کال پر مرکوز ہے، آپ AWS SDKs جیسے Python's Boto3 یا کوئی بھی SDK جسے آپ ترجیح دیتے ہیں کے ساتھ صفحہ بندی بھی استعمال کر سکتے ہیں۔