تعبيرات عامل تصفية DynamoDB: كل ما تحتاج إلى معرفته

T Byrat Aml Tsfyt Dynamodb Kl Ma Thtaj Aly M Rfth



تُستخدم تعبيرات التصفية في دالة No-SQL DynamoDB مثل عبارات WHERE الشائعة في قواعد بيانات SQL. ومع ذلك ، نظرًا لأن DynamoDB هي قاعدة بيانات No-SQL ، فإن تعبيرات المرشح تتصرف بشكل مختلف تمامًا عن عبارات WHERE بسبب طبيعة وهيكل قواعد بيانات No-SQL.

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

ما المقصود بتصفية التعبيرات؟

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







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



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



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





نماذج تعبيرات المرشح وأمثلة

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

يمكن أن تشمل العوامل الأخرى التي تقوم بتصفية التعبيرات أيضًا عامل التشغيل CONTAINS ، وعامل التشغيل OR ، والعامل الذي لا يساوي () ، وعامل IN ، وعامل BETWEEN ، وعامل التشغيل BEGINS_WITH ، وعامل SIZE ، وعامل التشغيل EXISTS.



مثال 1: الاستعلام باستخدام AWS CLI و DynamoDB Primary Keys

يستعلم هذا المثال عن جدول الموسيقى لنوع معين (مفتاح القسم) وفنان معين (مفتاح الفرز). تعيد الأداة المساعدة فقط نتيجة للعناصر التي تتطابق مع مفتاح القسم المحدد ومفتاح الفرز للأغاني التي تتمتع بأكبر عدد من المشاهدات.

يمكنك تحديد عدد المشاهدات (#v) في الأمر. على سبيل المثال ، نضع علامة على الحد الأدنى من المشاهدات إلى 1000 مشاهدة للإشارة إلى أن نتائج الأغاني التي تحتوي على أكثر من 1000 مشاهدة فقط هي التي ستعود.

استعلام دينامودب $ aws \
--اسم الطاولة موسيقى \
- مفتاح شرط التعبير 'النوع =: fn والفنان =: فرعي' \
- مرشح التعبير '#v> =: عدد (1000)' \
- التعبير-السمة-الأسماء '{'#v': 'طرق العرض'}' \
- التعبير-السمة-القيم ملف: // القيم. json

المثال 2: استخدام AWS CLI مع تعبير الشرط

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

استعلام دينامودب $ aws \
--اسم الطاولة موسيقى \
- مفتاح شرط التعبير 'اسم المستخدم =: اسم المستخدم' \
- مرشح التعبير 'المبلغ>: المبلغ' \
- التعبير-السمة-القيم {
': اسم المستخدم': {'S': 'الفنان'}،
': amount': {'N': '1000'}
} '
\
المحلية $

مثال على النتيجة يبدو كالتالي:

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

مثال 3: استخدام تعبيرات المرشح مع عامل التشغيل No-Equal ()

في أداة Java التالية ، نريد الاستعلام عن جدولنا (مجموعة الأفلام) لجميع الأفلام التي لا تساوي 'Movie X'. تأكد من استخدام تعبير مرشح بسمة (#name) جنبًا إلى جنب مع قيمة سمة التعبير (: name) كما هو موضح في ما يلي:

const AWS = تتطلب ( 'aws-sdk' ) ؛
AWS.config.update ( { منطقة: 'eu-west-1' } ) ؛
const dynamodb = AWS.DynamoDB.DocumentClient الجديد ( ) ؛

فار بارامس = {
اسم الطاولة: 'مجموعة أفلام' و
التعبير: '#PK =: PK' و
عامل التصفية '#اسم اسم' و ( تعبير المرشح )
ExpressionAttributeNames: { '#PK' : 'PK' و '#اسم' : 'اسم' } و ( تعبير الشرط )
ExpressionAttributeValues: {
': PK' : 'OgejhHrdRS453HGD4Ht44' و
':اسم' : 'فيلم X'
}
} ؛

دينامودب ( حدود، وظيفة ( يخطئ البيانات ) {
إذا ( يخطئ ) وحدة التحكم ( يخطئ ) ؛
آخر وحدة التحكم ( بيانات ) ؛
} ) ؛

مثال 4: استخدام تعبيرات المرشح مع مشغل المسح الضوئي

بينما يستخدم الأمر السابق <> لجلب فقط تلك العناصر التي لا تساوي اسم الفيلم المسمى Movie X ، تأكد من استخدام تعبيرات شرط المفتاح هنا مع تعبير المرشح. هذا لأنه من المستحيل تصفية البيانات في عامل تشغيل الاستعلام دون استخدام تعبير شرط مفتاح.

فار بارامس = {
اسم الطاولة: 'مجموعة أفلام' و
عامل التصفية 'PK =: PK و #name: name' و
ExpressionAttributeNames: { '#اسم' : 'اسم' } و
ExpressionAttributeValues: {
': PK' : 'OgejhHrdRS453HGD4Ht44' و
':اسم' : 'فيلم X'
}
} ؛

dynamodb.scan ( حدود، وظيفة ( يخطئ البيانات ) {
إذا ( يخطئ ) وحدة التحكم ( يخطئ ) ؛
آخر وحدة التحكم ( بيانات ) ؛
} ) ؛

استنتاج

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