כיצד להגדיר את מפתחות המחיצה של DynamoDB

Kyzd Lhgdyr T Mpthwt Hmhyzh Sl Dynamodb



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

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







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



מהו מפתח מחיצה של DynamoDB ומדוע הוא חשוב?

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



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





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

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



כיצד להגדיר את מפתחות המחיצה של DynamoDB

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

1. בחר את מפתחות המחיצה הנכונים

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

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

2. השתמש באמנת השמות של PK

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

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

3. השתמש בתכונות מורכבות

טבלאות מסוימות נהנות יותר ממפתחות מרוכבים. זאת אומרת שאתה צריך יותר מתכונה אחת כדי ליצור את המפתחות הייחודיים. לדוגמה, אתה יכול להשתמש בנוחות ב-customer_ID, country_code ו-product_ID כדי ליצור מפתח מחיצה (customerid#countrycode#productid). במקביל, אתה יכול להשתמש ב-order_id כמפתח המיון שלך.

4. הוסף מספרים אקראיים כראוי

אם אתה מצפה לנפח עצום של כתיבה עבור כל מפתח, שימוש בקידומת או סיומת נוספת הופך את מקרי השימוש הרב ליעילים יותר. לדוגמה, אתה יכול להשתמש במספר החשבונית לצד קבוצה של מספרים אקראיים כמפתח המחיצה שלך. זכור להפריד בין החלקים השונים של מפתח המחיצה שלך. לדוגמה, InvoiceNumber#125656#0 כמפתח מחיצה אידיאלי לשימוש רב עם אלפי כתיבה בשנייה.

צור מפתח מחיצה של DynamoDB

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

AttributeName=string,KeyType=string ...

בתחביר הנתון, שם התכונה הוא השם האמיתי של התכונה בעוד שסוג התכונה יכול להיות מחרוזת(S), מספר(N) או בינארי(B).

אתה יכול גם לבחור להשתמש בתחביר JSON כפי שמוצג בקטע הבא:

[

{

'AttributeName': 'מחרוזת',

'KeyType': 'HASH'

}

...

]

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

לבסוף, ניתן גם לשנות מפתח מחיצה באמצעות כלי השירות הבא:

DynamoDBClient.updateItem({
'TableName': 'myTable_Name',
'מפתח': {
'pk': {
'S': 'my_PartitionKey'
}
},
'UpdateExpression': 'הגדר #emailaddress = :emailaddress',
'ExpressionAttributeNames': {
'#email': 'כתובת דואר אלקטרוני'
},
'ExpressionAttributeValues': {
':כתובת דוא'ל': {
'S': ' [מוגן באימייל] '
}
}
})

כלי השירות הנתון מעדכן את תכונת הדוא'ל שלך כך שתראה כמו מה שיש לך ב- [מוגן באימייל] עבור הפריט שבו מפתח המחיצה (pk) שווה ל-my_PartitionKey.

סיכום

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