עימוד DynamoDB: סקירה כללית, מקרי שימוש ודוגמאות

Ymwd Dynamodb Sqyrh Kllyt Mqry Symws Wdwgm Wt



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

מהו עימוד ב-DynamoDB?

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







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



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



כיצד להשתמש בעידון ב-DynamoDB





1. עימוד במהלך פעולת שאילתה

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

תוצאה ללא רכיב LastEvaluatedKey שאינו ריק, מרמזת שכל הפריטים התואמים לשאילתה מתאימים למגבלה של 1 MB ואין עוד פריטים לשליפה. כמובן שניתן גם להגדיר מגבלה למספר הפריטים לתוצאה. ראה את הפקודה הבאה לדוגמה:



aws dynamodb שאילתה \

--table-name MyTableName \

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

--expression-attribute-values ​​'{'
:pk ':{' ס ':' a1234b '}},

--מגבלה 10 \

אתה יכול להשתמש בפקודה הקודמת כדי לשאול את הטבלה שלך עבור הפריטים עם אותם ערכי ביטוי תנאי מפתח. תן לנו לחפש בטבלת 'הזמנות' שלנו עבור הזמנות_מזהות מ-Darry Tech. כמו כן, הגדרנו מגבלה ל-10 פריטים בעמוד. אפשרות נוספת לפרמטר –limit היא להשתמש בפרמטר –page-size לאותה מטרה.

עימוד הוא פעולה אוטומטית ב-AWS CLI עבור פריטים מתחת ל-1MB של נתונים. אתה יכול להוסיף מפתח התחלה בלעדי לפקודה אם אתה רוצה שהשאילתה שלך תתחיל מסדר מסוים.

התגובה נראית כך:

התוצאות שסופקו מציגות 10 דארי טק בעמוד הראשון. אתה יכול להשתמש בערכי LastEvaluatedKey כדי לקבל יותר הזמנות התואמות את ערכי מפתח הביטוי של החיפוש שלך כדי לבנות שאילתה חדשה. בקשת השאילתה החדשה מכילה את ערכי LastEvaluatedKey בפרמטר ExclusiveStartKey.

דוגמה לתחביר מוצגת בקטע הבא:

aws dynamodb שאילתה \

--table-name ExampleTable \

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

--expression-attribute-values ​​'{'
:pk ':{' ס ': דארי טק' \

--מגבלה 10 \

--exclusive-start-key '{'
PartitionKey ':{' ס ': דארי טק' }, 'מקש מיון' :{ 'ס' : '5356' }} '

הפקודה הקודמת מייצרת את פקודות הקיזוז הבאות בעמוד הבא, החל במזהה ההזמנה שיש לו את המפתח הראשי שצוין, כלומר {'PartitionKey':{'S': Darry Tech'},'SortKey':{'S': '5356-sy'}}.

2. עימוד במהלך פעולות סריקה

אפשר גם להשתמש בעימוד לפעולות סריקה. הכל עובד באותו אופן כמו עם פקודות השאילתה. עם זאת, עליך להשתמש בתכונת filter-expression. הפקודה נראית כמו מה שיש לנו כאן:

aws dynamodb סריקה \

--table-name MyTable \

--מסנן-ביטוי 'AttributeName = :value' \

--expression-attribute-values '{':value':{'S':'ABC123'}}' \

--לְהַגבִּיל עשרים \

--מפתח-התחל בלעדי '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

הפקודה הקודמת מוציאה עד 20 פריטים בעמוד מטבלת MyTable, החל מהפריט שהמפתח הראשי שלו הוא {'PartitionKey': 'ABC123', 'SortKey': 'XYZ987'}. הוא מסנן את התוצאות כך שיכלול רק את הפריטים שבהם לתכונה AttributeName יש את הערך 'ABC123'.

בתגובה, ה LastEvaluatedKey השדה מכיל את המפתח הראשי של הפריט האחרון בערכת התוצאות. אתה יכול להשתמש בערך זה בתור ExclusiveStartKey בהמשך לִסְרוֹק פעולה כדי לאחזר את הדף הבא של התוצאות.

סיכום

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