วิธีตั้งค่าคีย์พาร์ติชัน DynamoDB

Withi Tang Kha Khiy Phar Ti Chan Dynamodb



ประสิทธิภาพของฐานข้อมูลใด ๆ ขึ้นอยู่กับความสามารถในการเข้าถึงข้อมูล เนื่องจากการค้นหารายการจากหลาย ๆ วัตถุสามารถพิสูจน์ได้ว่าวุ่นวาย บ่อยครั้ง วิธีที่คุณสืบค้นฐานข้อมูลมักเป็นข้อพิจารณาที่สำคัญเสมอ คีย์พาร์ติชันเป็นจุดเริ่มต้นหลักของคุณใน DynamoDB เมื่อใดก็ตามที่คุณต้องการสร้างการสืบค้นที่มีประสิทธิภาพสูง

โดยปกติแล้ว คีย์พาร์ติชันในตารางจะไม่ซ้ำกัน ดังนั้นจึงเป็นไปไม่ได้ที่จะมีรายการตั้งแต่สองรายการขึ้นไปที่มีคีย์พาร์ติชันเดียวกันในตารางเดียว แต่การย้อนกลับสามารถเกิดขึ้นได้เมื่อใช้ในดัชนี นอกจากนี้ คีย์พาร์ติชันไม่สามารถเปลี่ยนแปลงได้เมื่อคุณสร้างตารางเนื่องจากไม่สามารถเปลี่ยนรูปได้







บทความนี้กล่าวถึงเกี่ยวกับพาร์ติชันคีย์ เราจะมุ่งเน้นไปที่สาเหตุที่คุณต้องใช้คีย์พาร์ติชันและแนวทางปฏิบัติที่ดีที่สุดที่ควรปฏิบัติตามเมื่อตั้งค่า สุดท้าย เราจะพิจารณาว่าคีย์พาร์ติชัน DynamoDB มีความสำคัญอย่างไร



คีย์พาร์ติชัน DynamoDB คืออะไร และเหตุใดจึงสำคัญ

พาร์ติชันคีย์เป็นคีย์หลักอย่างง่ายใน DynamoDB ซึ่งมักจะประกอบด้วยแอตทริบิวต์เดียว แต่ละรายการในตาราง DynamoDB มีพาร์ติชันคีย์ที่ไม่ซ้ำกันเพื่อเปิดใช้งานกระบวนการสืบค้นที่รวดเร็วและมีประสิทธิภาพ



คุณสามารถจับคู่คีย์หลักกับคีย์การเรียงลำดับเพื่อสร้างคีย์หลักแบบผสมที่มีแอตทริบิวต์สองรายการ เมื่อใช้ร่วมกัน คุณสามารถจัดระเบียบข้อมูลทั้งหมดภายใต้พาร์ติชันคีย์ได้โดยใช้ค่าคีย์การเรียงลำดับ





เนื่องจาก DynamoDB สงวนข้อมูลไว้เป็นกลุ่มของแอตทริบิวต์ที่เรียกว่า รายการ แอตทริบิวต์จึงมีคีย์ค่าหลักที่ไม่ซ้ำกันเพื่อให้เข้าถึงได้ง่าย โดยเฉพาะอย่างยิ่ง รายการใน DynamoDB จะคล้ายกับระเบียน ฟิลด์ คอลัมน์ หรือแถวในระบบฐานข้อมูลส่วนใหญ่

นอกจากนี้ DynamoDB ยังให้คุณกระจายข้อมูลไปยังพาร์ติชันของหน่วยพื้นที่เก็บข้อมูลสูงสุด 10 GB ดังนั้นแต่ละตารางสามารถมีหนึ่งหรือหลายพาร์ติชัน คุณสามารถใช้ค่าของพาร์ติชันคีย์เป็นอินพุตไปยังฟังก์ชันแฮชภายในของฐานข้อมูล โดยมีเอาต์พุตจากฟังก์ชันแฮชที่กำหนดพาร์ติชันที่เก็บรายการ นอกจากนี้ ตำแหน่งของรายการจะเป็นตัวกำหนดพาร์ติชันที่จัดเก็บรายการนั้น



วิธีตั้งค่าคีย์พาร์ติชัน DynamoDB

การตั้งค่าพาร์ติชันคีย์อาจเป็นงานที่ยากเย็นแสนเข็ญหากคุณยังไม่เข้าใจแนวคิดนี้ อย่างไรก็ตาม กระบวนการนี้สามารถทำได้ง่ายและมีประสิทธิภาพเมื่อคุณรวบรวมเคล็ดลับและกลเม็ดที่จำเป็น ต่อไปนี้คือแนวทางปฏิบัติที่ดีที่สุดที่ควรปฏิบัติตามเมื่อตั้งค่าพาร์ติชันคีย์:

1. เลือกคีย์พาร์ติชันที่เหมาะสม

ประเภทของพาร์ติชันคีย์จะกำหนดความสะดวกและประสิทธิภาพในการสืบค้นข้อมูลของคุณ ซึ่งเป็นจุดเริ่มต้นหลักสำหรับการสืบค้นข้อมูลของคุณ และการกำหนดรูปแบบการเข้าถึงของแอปพลิเคชันแต่ละรายการถือเป็นสิ่งสำคัญ

ขอแนะนำให้ใช้แอตทริบิวต์จำนวนสมาชิกสูงเมื่อตั้งค่าคีย์พาร์ติชัน DynamoDB ของคุณ แอตทริบิวต์จำนวนสมาชิกสูงจะแสดงค่าที่แตกต่างกันสำหรับแต่ละรายการ และอาจรวมถึงรหัสพนักงาน, รหัสพนักงาน, หมายเลขคำสั่งซื้อ, รหัสอีเมล, รหัสลูกค้า หรือหมายเลขคำสั่งซื้อ

2. ใช้ข้อตกลงการตั้งชื่อ PK

คีย์พาร์ติชันมักใช้หลักการตั้งชื่อ pk วิธีการตั้งชื่อนี้รับประกันกลไกการตั้งชื่อที่แม่นยำโดยไม่แบ่งแยกตามประเภทหรือรุ่นของสินค้าที่แสดง

ตัวอย่างเช่น แม้ว่าคุณอาจถูกล่อลวงให้ใช้ postID และ userID เป็นคีย์พาร์ติชันสำหรับโมเดลโพสต์และผู้ใช้ในตาราง แต่ DynamoDB อนุญาตให้ใช้พาร์ติชันคีย์หนึ่งคีย์สำหรับแต่ละตารางเท่านั้น ดังนั้น คุณไม่สามารถใช้สองอย่างในตารางเดียวได้ โปรดทราบว่าตารางที่ไม่มีคีย์การเรียงลำดับสามารถมีรหัสพาร์ติชันคีย์ได้

3. ใช้แอตทริบิวต์คอมโพสิต

บางตารางได้รับประโยชน์มากขึ้นจากคีย์ผสม กล่าวคือคุณต้องการแอตทริบิวต์มากกว่าหนึ่งรายการเพื่อสร้างคีย์เฉพาะ ตัวอย่างเช่น คุณสามารถใช้รหัสลูกค้า รหัสประเทศ และรหัสผลิตภัณฑ์เพื่อสร้างพาร์ติชันคีย์ (customerid#countrycode#productid) ได้อย่างสะดวก ในขณะเดียวกัน คุณสามารถใช้ order_id เป็นคีย์การจัดเรียงของคุณได้

4. เพิ่มตัวเลขสุ่มอย่างเหมาะสม

หากคุณคาดว่าจะมีการเขียนจำนวนมากสำหรับแต่ละคีย์ การใช้คำนำหน้าหรือส่วนต่อท้ายเพิ่มเติมจะทำให้กรณีการใช้งานหนักมีประสิทธิภาพมากขึ้น ตัวอย่างเช่น คุณสามารถใช้หมายเลขใบแจ้งหนี้ร่วมกับชุดตัวเลขสุ่มเป็นรหัสพาร์ติชันของคุณได้ อย่าลืมแยกส่วนต่างๆ ของพาร์ติชั่นคีย์ของคุณ ตัวอย่างเช่น InvoiceNumber#125656#0 เป็นรหัสพาร์ติชันเหมาะสำหรับการใช้งานหนักที่มีการเขียนเป็นพันครั้งต่อวินาที

สร้างคีย์พาร์ติชัน DynamoDB

เช่นเดียวกับคีย์การจัดเรียง การสร้างพาร์ติชันคีย์ใน DynamoDB เกี่ยวข้องกับการสร้างคีย์สคีมาสำหรับตารางของคุณ แน่นอน สิ่งนี้เกิดขึ้นเมื่อคุณสร้างตาราง ซึ่งมักจะเกี่ยวข้องกับการอธิบายแอตทริบิวต์ของคุณโดยใช้ชื่อแอตทริบิวต์ควบคู่ไปกับประเภทแอตทริบิวต์ ไวยากรณ์ต่อไปนี้จะช่วย:

AttributeName=string,KeyType=string ...

ในไวยากรณ์ที่กำหนด ชื่อแอตทริบิวต์คือชื่อจริงของแอตทริบิวต์ ในขณะที่ประเภทแอตทริบิวต์สามารถเป็นได้ทั้งสตริง (S) ตัวเลข (N) หรือไบนารี (B)

คุณยังสามารถเลือกใช้ไวยากรณ์ JSON ดังที่แสดงต่อไปนี้:

[

{

'ชื่อแอตทริบิวต์': 'สตริง',

'ประเภทคีย์': 'แฮช'

}

...

]

ไม่ว่าคุณจะเลือกไวยากรณ์แบบใด บทบาทของแอตทริบิวต์จะถือว่าฟังก์ชัน HASH เนื่องจากเรากำลังสร้างพาร์ติชันคีย์ ในทางกลับกัน ประเภทคีย์จะถือว่าเป็นฟังก์ชัน RANGE เมื่อสร้างคีย์การเรียงลำดับ

สุดท้าย คุณยังสามารถเปลี่ยนพาร์ติชันคีย์โดยใช้ยูทิลิตีต่อไปนี้:

DynamoDBClient.updateItem({
'ชื่อตาราง': 'myTable_Name',
'สำคัญ': {
'pk': {
'S': 'my_PartitionKey'
}
},
'UpdateExpression': 'SET #emailaddress = :emailaddress',
'ExpressionAttributeNames': {
'#อีเมล': 'ที่อยู่อีเมล'
},
'ExpressionAttributeValues': {
':ที่อยู่อีเมล': {
'เอส': ' [ป้องกันอีเมล] '
}
}
})

ยูทิลิตีที่กำหนดจะอัปเดตแอตทริบิวต์อีเมลของคุณให้ดูเหมือนสิ่งที่คุณมีใน [ป้องกันอีเมล] สำหรับรายการที่พาร์ติชันคีย์ (pk) เท่ากับ my_PartitionKey

บทสรุป

เมื่อตั้งค่าคีย์พาร์ติชัน DynamoDB ไม่มีวิธีเดียวที่เป็นสากล การสร้างและการใช้พาร์ติชันคีย์ขึ้นอยู่กับกรณีการใช้งาน นอกจากนี้ คุณสามารถดูแนวทางต่างๆ ที่มีและค้นหาแนวทางที่เหมาะสมที่สุดสำหรับใบสมัครของคุณ ตรวจสอบให้แน่ใจว่าคุณปฏิบัติตามแนวทางที่กำหนด