DynamoDB فلٹر اظہار: ہر وہ چیز جو آپ کو جاننے کی ضرورت ہے۔

Dynamodb Fl R Az Ar R W Chyz Jw Ap Kw Jann Ky Drwrt



فلٹر ایکسپریشنز No-SQL DynamoDB فنکشن میں استعمال ہوتے ہیں جیسے WHERE شقیں جو SQL ڈیٹا بیس میں عام ہیں۔ تاہم، چونکہ DynamoDB ایک No-SQL ڈیٹا بیس ہے، فلٹر کے اظہارات No-SQL ڈیٹا بیس کی نوعیت اور ساخت کی وجہ سے WHERE شقوں سے بالکل مختلف برتاؤ کرتے ہیں۔

یہ مضمون فلٹر اظہارات پر مرکوز ہے۔ لہذا، ہم فلٹر کے تاثرات کی وضاحت کریں گے، وضاحت کریں گے کہ وہ کیوں اور کب لاگو ہوتے ہیں، اور متعلقہ مثالوں کے ذریعے ان کے استعمال کے بارے میں مرحلہ وار گائیڈ فراہم کریں گے۔

فلٹر اظہار کیا ہیں؟

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







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



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



اس کے علاوہ، عام Query آپریشنز کی طرح، Query آپریشنز کے لیے آپ کی 1 MB ڈیٹا کی حد آپ کے فلٹر ایکسپریشن آپریشن کی تشخیص سے پہلے ہوتی ہے۔ آپ اس آپریشن کا استعمال پے لوڈ کو کم کرنے، مخصوص اشیاء کی تلاش، اور ایپلیکیشن ڈویلپمنٹ کے دوران سادگی اور پڑھنے کی اہلیت کو بہتر بنانے کے لیے کر سکتے ہیں۔





فلٹر ایکسپریشن نحو اور مثالیں۔

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

دوسرے آپریٹرز جو ایکسپریشنز کو فلٹر کرتے ہیں ان میں CONTAINS آپریٹر، OR آپریٹر، مساوی نہیں () آپریٹر، IN آپریٹر، BETWEEN آپریٹر، BEGINS_WITH آپریٹر، SIZE آپریٹر، اور EXISTS آپریٹر شامل ہیں۔



مثال 1: AWS CLI اور DynamoDB پرائمری کیز کا استعمال کرتے ہوئے استفسار کرنا

یہ مثال میوزک ٹیبل سے کسی خاص صنف (تقسیم کلید) اور ایک مخصوص فنکار (سانٹ کلید) کے لیے سوال کرتی ہے۔ یوٹیلیٹی صرف ان آئٹمز کے لیے نتیجہ واپس لاتی ہے جو خاص پارٹیشن کی اور سب سے زیادہ دیکھے جانے والے گانوں کے لیے ترتیب کی کلید سے مماثل ہوں۔

آپ کمانڈ میں ملاحظات کی تعداد (#v) بتا سکتے ہیں۔ مثال کے طور پر، ہم اپنی کم از کم حد کو 1,000 ملاحظات پر ٹیگ کرتے ہیں تاکہ یہ ظاہر کیا جا سکے کہ صرف 1000 سے زیادہ ملاحظات والے گانوں کے نتائج واپس آئیں گے۔

$aws dynamodb استفسار \
--ٹیبل کا نام موسیقی \
--key-condition-expression 'جینر = :fn اور آرٹسٹ = :sub' \
--فلٹر-اظہار '#v >= :num(1000)' \
--expression-انتساب-نام '{'#v': 'منظر'}' \
--expression-انتساب-اقدار فائل: // values.json

مثال 2: کنڈیشن ایکسپریشن کے ساتھ AWS CLI کا استعمال

ہم پچھلی مثال کی طرح ایک ہی سوال کو دوبارہ ترتیب دے سکتے ہیں لیکن اب اپنے فلٹرز کے ساتھ کنڈیشن کیز کے ساتھ۔ اس میں ترتیب کی کلید شامل نہیں ہے۔ اس کے بجائے، یہ 1,000 سے زیادہ آراء کے ساتھ مخصوص فنکار کے تمام ریکارڈز کو بازیافت کرتا ہے۔ اسے کسی مخصوص صارف نام (customer_id) کے لیے دیے گئے نمبر کے اوپر آرڈر فراہم کرنے کے لیے بھی دوبارہ تشکیل دیا جا سکتا ہے۔

$aws dynamodb استفسار \
--ٹیبل کا نام موسیقی \
--key-condition-expression 'صارف نام = : صارف نام' \
--فلٹر-اظہار 'رقم > :رقم' \
--expression-انتساب-اقدار '{
':username': { 'S': 'artist' },
': رقم': { 'N': '1000' }
}'
\
$LOCAL

نتیجہ کی ایک مثال اس طرح نظر آتی ہے:

دی گئی مثال سے پتہ چلتا ہے کہ ایک ہی فنکار کے 56 گانوں کے ٹائٹلز میں سے صرف سات گانوں کو 1,000 سے زیادہ ویوز ملے ہیں۔ تاہم، ہم نے اختصار کے مقاصد کے لیے اعداد و شمار کو چھوٹا کر دیا ہے اور فہرست میں صرف پہلے اور آخری نتائج شامل کیے ہیں۔

مثال 3: No-Equal () آپریٹر کے ساتھ فلٹر ایکسپریشنز کا استعمال

درج ذیل جاوا یوٹیلیٹی میں، ہم اپنے ٹیبل (مووی کلیکشن) سے ان تمام فلموں کے لیے استفسار کرنا چاہتے ہیں جو 'مووی ایکس' کے برابر نہیں ہیں۔ اس بات کو یقینی بنائیں کہ آپ ایکسپریشن انتساب قدر (:name) کے ساتھ ایک انتساب (#name) کے ساتھ فلٹر ایکسپریشن استعمال کرتے ہیں جیسا کہ درج ذیل میں دکھایا گیا ہے:

const AWS = درکار ہے۔ ( 'aws-sdk' ) ;
AWS.config.update ( { علاقہ: 'eu-west-1' } ) ;
const dynamodb = نیا AWS.DynamoDB.DocumentClient ( ) ;

var params = {
ٹیبل کا نام: 'فلم مجموعہ' ،
کلیدی شرط اظہار: '#PK = :PK' ،
FilterExpression: '#نام  :نام' ، ( فلٹر اظہار )
ExpressionAttributenames: { '#PK' : 'پی کے' ، '#نام' : 'نام' } ، ( حالت کا اظہار )
ExpressionAttributeValues: {
':PK' : 'OgejhHrdRS453HGD4Ht44' ،
':نام' : 'مووی ایکس'
}
} ;

dynamodb.query ( پیرامیٹرز فنکشن ( غلطی، ڈیٹا ) {
اگر ( غلطی ) console.log ( غلطی ) ;
اور console.log ( ڈیٹا ) ;
} ) ;

مثال 4: اسکین آپریٹر کے ساتھ فلٹر ایکسپریشنز کا استعمال

جب کہ پچھلی کمانڈ <> کو صرف ان آئٹمز کو لانے کے لیے استعمال کرتی ہے جو مووی X نامی فلم کے نام کے برابر نہیں ہیں، اس بات کو یقینی بنائیں کہ آپ یہاں کلیدی شرط کے اظہار کو فلٹر ایکسپریشن کے ساتھ استعمال کرتے ہیں۔ اس کی وجہ یہ ہے کہ کلیدی شرط کے اظہار کا استعمال کیے بغیر Query آپریٹر میں ڈیٹا کو فلٹر کرنا ناممکن ہے۔

var params = {
ٹیبل کا نام: 'فلم مجموعہ' ،
FilterExpression: 'PK = :PK اور #name  :name' ،
ExpressionAttributenames: { '#نام' : 'نام' } ،
ExpressionAttributeValues: {
':PK' : 'OgejhHrdRS453HGD4Ht44' ،
':نام' : 'مووی ایکس'
}
} ;

dynamodb.scan ( پیرامیٹرز فنکشن ( غلطی، ڈیٹا ) {
اگر ( غلطی ) console.log ( غلطی ) ;
اور console.log ( ڈیٹا ) ;
} ) ;

نتیجہ

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