דוגמאות לשאילתות DynamoDB

Dwgm Wt Ls Yltwt Dynamodb



מסד נתונים הוא אוסף של נתונים - DynamoDB אינו יוצא דופן. מסדי נתונים מכילים הרבה נתונים שעלולים להיות קשים לאחזור ללא מנגנון מוגדר מראש. זה המקום שבו פקודת השאילתה משחקת תפקיד חשוב.

כמו כל מערכת ניהול מסד נתונים, DynamoDB מציעה שיטות שאילתות שונות שבאמצעותן תוכל ליצור אינטראקציה עם המערכת כדי לגשת ולתפעל את הנתונים שלך. שאילתה ב-DynamoDB היא כלי חזק מאוד המאפשר לך לאחזר פריט או קבוצת פריטים הקשורים לפקודת השאילתה.

מאמר זה מתאר את הדוגמאות העיקריות של פעולות השאילתה של DynamoDB.







דוגמאות לשאילתות נפוצות של DynamoDB

התנהגות ברירת המחדל עבור פעולת השאילתה ב-DynamoDB היא החזרת כל הפריטים המשויכים לפריטי השאילתה. מעניין לציין שפקודת השאילתה ב-DynamoDB ניתנת לשימוש עם טבלאות או אינדקסים משניים.



בכל מקרה, ודא תמיד שאתה מציין את תנאי השוויון עבור הערך של מפתח המחיצה שלך. שוב, ייתכן שיהיה עליך לספק תנאי אחר עבור מפתח המיון למקרה שתשתמש באחד בפקודה.



פרמטרים אחרים שתתקלו בהם בעת ביצוע שאילתות DynamoDB כוללים גם KeyConditionExpression ו-FilterExpression. KeyConditionExpression מציין את ערכי המפתח שבכוונתך לבצע שאילתה. מצד שני, FilterExpression מסיר פריטים מתוצאות השאילתה לפני שאתה מקבל תגובה. אתה תשתמש ב-ExpressionAttributeValues ​​כמצייני מיקום עבור פרמטרי הביטוי שהוזכרו.





דוגמאות לשאילתות DynamoDB כוללות:

מציאת פריט בודד מטבלה על סמך מפתחות ראשיים

אתה יכול להשתמש בכלי השאילתה ב-DynmoDB כדי למצוא פריט בודד על ידי הסתמכות על שילוב של מפתח המחיצה של הפריט וערכי מפתח המיון. התחביר עבור פעולה כזו הוא כדלקמן:



aws dynamodb שאילתה \

--table-name MyTableName \

--מפתח-תנאי-ביטוי 'PartitionKey = :pk AND SortKey = :sk' \

--expression-attribute-values '{':pk':{'S':'a123b'},':sk':{'S':'def456b'}}'

כלי השאילתה לעיל שואף לאחזר פריט עם ערך מפתח מחיצה a1234b וערך מפתח מיון odef456b מטבלת MyTableName. לדוגמה, אנו יכולים להשתמש בכלי השירות לעיל כדי למצוא פריט בטבלת 'הזמנות' שלנו. ערך מפתח המחיצה של הפריט יכול להיות wr546gg המייצג את Customer_ID, בעוד שערך מפתח המיון שלו יכול להיות 24536433 המייצג את מספר ההזמנה.

התוצאה יכולה להיות כדלקמן:

התוצאה שלמעלה מחזירה את ספרי חגים כפריט היחיד שיש לו ערך מפתח מחיצה של wr546gg וערך מפתח מיון של 24536433. זה גם מביא לך את כל שאר התכונות הנוספות הקשורות לפריט. באיור שלנו, זה מחזיר את מספר החשבונית ואת הסכום ששולם.

יש לציין שפקודת השאילתה תחזיר רשימה ריקה אם אין פריט שתואם את ערכי המפתח הראשי שצוינו.

להחזיר כל הפריטים מטבלת DynamoDB התואמים ערכי מאפיינים ספציפיים

השתמש בביטוי סינון כדי לאחזר את כל הפריטים בעלי ערך תכונה דומה בטבלה ספציפית של DynamoDB.

הפקודה עבור פעולת שאילתה זו היא כפי שמוצג להלן.

aws dynamodb שאילתה \

--table-name MyTableName \

--מסנן-ביטוי 'OtherAttribute1 = :val' \

--expression-attribute-values '{':val':{'S':'value1'}}'

לדוגמה, אנו יכולים להשתמש בפקודת השאילתה לעיל כדי לאחזר שירים עם יותר שנמשכים יותר מ-5 דקות בטבלת המוזיקה שלנו. כדי להשיג זאת, נגדיר את הערך OtherAttribute1 שלנו ל-5.00 ואת MyTableName ל-Music.

התוצאה יכולה להיות כפי שמוצג להלן:

יש צורך לקצר את הרשימה לקיצור. אבל מהתוצאות, פקודת השאילתה שלנו שלפה 11 פריטים עם ערך פילטרexpression של 5.00 מטבלת DynamoDB Music שלנו.

אחזור כל הפריטים עם טווח מסוים של ערכי תכונות

הפקודה הבאה שימושית בעת אחזור פריטים בטבלה מסוימת:

aws dynamodb שאילתה \

--table-name <שם הטבלה> \

--מפתח-תנאי-ביטוי 'שם_תכונה בין :val1 ו-:val2' \

--expression-attribute-values '{':val1':{'N':''},':val2':{'N':''}}'

כמובן, תצטרך להחליף את כל התכונות באישורים המותאמים אישית שלך כפי שאתה צריך בכל שורת פקודה אחרת. לדוגמה, נשתמש בטבלת העובדים שלנו עם תכונת מפתח טווח המכונה 'גיל'. נשאף להחזיר מעסיקים בגילאי 30 עד 42.

שורת הפקודה החדשה שלנו תהיה כדלקמן:

aws dynamodb שאילתה \

--table-name משתמשים \

--מפתח-תנאי-ביטוי 'גיל בין :val1 ו-:val2' \

--expression-attribute-values '{':val1':{'N':'30'},':val2':{'N':'42'}}'

הפעלת כלי השירות לעיל תביא תגובה דומה לזו שבאיור למטה;

האיור שלמעלה מראה שהשאילתה החזירה 6 פריטים, תוך ציון ערך התכונה עבור כל שאילתה. ScannedCount הוא מספר הפריטים שנסרקו בטבלה ואילו CapacityUnits הוא כמות היחידות שנצרכו במהלך הפעולה.

סיכום

מכיוון ש-DynamoDB הוא מסד נתונים NoSQL, פעולת השאילתה שלו לא מתנהגת כמו של מסד הנתונים הרגיל של AQL. אבל ברגע שתעשה זאת, תגלה שהפעולה די חזקה ותגרום לאינטראקציה שלך עם מסד הנתונים לקלה יותר.