การทำความเข้าใจวิธีตั้งค่าคีย์การจัดเรียงของ DynamoDB เมื่อสร้างตารางจะช่วยให้คุณจัดระเบียบข้อมูลได้ในระยะยาว ยิ่งกว่านั้นยังช่วยเพิ่มประสิทธิภาพในการดึงข้อมูลของคุณเมื่อใดก็ตามที่คุณต้องการ
บทความนี้มุ่งเน้นไปที่คีย์การจัดเรียงของ DynamoDB นอกจากการอภิปรายว่าคีย์การจัดเรียงของ DynamoDB คืออะไร เรายังจะหารือเกี่ยวกับวิธีการตั้งค่าและใช้งานอีกด้วย
DynamoDB Sort Keys คืออะไรและใช้งานได้เมื่อใด
คีย์การจัดเรียงคือแอตทริบิวต์ที่ใช้ใน DynamoDB เพื่อจัดระเบียบรายการในพาร์ติชัน โดยทั่วไปแล้ว หลายรายการสามารถมีค่าพาร์ติชันคีย์ที่คล้ายกัน แต่มีค่าคีย์การเรียงลำดับต่างกัน แน่นอนว่า DynamoDB รองรับการใช้พาร์ติชันคีย์เท่านั้น และรวมทั้งพาร์ติชันคีย์และคีย์การเรียงลำดับในตารางเดียว
ในกรณีดังกล่าว คีย์หลักประกอบด้วยพาร์ติชันคีย์และคีย์การเรียงลำดับ โดยค่าของคีย์หลักคือรหัสผลิตภัณฑ์และประเภทผลิตภัณฑ์ตามลำดับ การรวมแอตทริบิวต์นี้เรียกว่าคีย์ผสม ทำให้การดึงรายการง่ายขึ้นและมีประสิทธิภาพมากขึ้น นอกจากนี้ คีย์พาร์ติชันยังใช้ฟังก์ชัน HASH ภายใน ในขณะที่คีย์การเรียงลำดับจะใช้ฟังก์ชัน RANGE
คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีตั้งค่าคีย์การเรียงลำดับในตาราง Dynamo DB
เช่นเดียวกับคีย์พาร์ติชัน การสร้างคีย์การจัดเรียง DynamoDB จะเกิดขึ้นเมื่อคุณตั้งค่าตาราง DynamoDB ทั้งสองกรณีเกี่ยวข้องกับการสร้างคีย์สคีมาก่อน เนื่องจากคีย์การเรียงลำดับไม่เป็นอิสระและทำงานร่วมกับคีย์พาร์ติชันในคีย์ผสมหลักหรือคีย์ผสมช่วงแฮช คุณจึงเริ่มต้นด้วยการสร้างพาร์ติชันคีย์สำหรับตารางของคุณ
ขั้นตอนที่ 1: สร้างพาร์ติชันคีย์สำหรับตารางของคุณ
คีย์การเรียงลำดับมีความสัมพันธ์โดยตรงกับคีย์พาร์ติชัน และเนื่องจากพาร์ติชันคีย์เป็นคีย์หลักในการจัดเรียง DynamoDB ให้เริ่มต้นด้วยการสร้างพาร์ติชันคีย์หลังจากป้อนชื่อตารางของคุณ คุณสามารถใช้ไวยากรณ์ชวเลขต่อไปนี้:
AttributeName=string,KeyType=string ...ประเภทแอตทริบิวต์ในไวยากรณ์ชวเลขสามารถเป็นได้ทั้ง สตริง(S), ตัวเลข(N) หรือไบนารี(B) แต่ถ้าคุณพบว่าไวยากรณ์ชวเลขยุ่งยากในการตั้งค่าพาร์ติชันคีย์ของคุณ คุณสามารถใช้ไวยากรณ์ JSON ต่อไปนี้:
[
{
'ชื่อแอตทริบิวต์': 'สตริง',
'ประเภทคีย์': 'แฮช'
}
...
]
ขั้นตอนที่ 2: เพิ่มคีย์การเรียงลำดับ
ดำเนินการเพิ่มคีย์การเรียงลำดับโดยใช้ไวยากรณ์ JSON ต่อไปนี้ คีย์การเรียงลำดับไม่ควรเป็น ID ให้ใช้แอตทริบิวต์ Type แทน
[{
'ชื่อแอตทริบิวต์': 'สตริง',
'ประเภทคีย์': 'ช่วง'
}
...
]
โปรดทราบว่าเราใช้ฟังก์ชัน HASH เมื่อสร้างคีย์พาร์ติชัน DynamoDB ตอนนี้ เราใช้ฟังก์ชัน RANGE เมื่อตั้งค่าคีย์การเรียงลำดับ DynamoDB
ใน AWS Management Console คุณมีตัวเลือกในการเพิ่มคีย์การจัดเรียง ทำเครื่องหมายตามที่แสดง และเพิ่มคีย์ของคุณ ตัวอย่างเช่น เราสามารถมี customer_ID หรือ order_ID เป็นคีย์พาร์ติชันและ invoice_number เป็นคีย์การเรียงลำดับในตารางสำหรับคำสั่งซื้อใหม่
อ้างอิงถึงภาพประกอบต่อไปนี้:
สิ่งสำคัญคือต้องสังเกตว่าทั้งพาร์ติชันคีย์และแอตทริบิวต์คีย์การเรียงลำดับสามารถอยู่ในรูปแบบของสตริง(S) ตัวเลข(N) หรือไบนารี(B)
ใน Java ตารางเพลงที่มีทั้งพาร์ติชันคีย์และรายการคีย์การเรียงลำดับควรมีลักษณะดังนี้:
แพ็คเกจ com.dynamoDbDemo.entity;นำเข้า com.amazonaws.services.dynamodbv2.datamodeling.*;
@DynamoDBTable(ชื่อตาราง = 'เพลง')
เพลงระดับสาธารณะ {
ศิลปินสตริงส่วนตัว;
ชื่อเพลงสตริงส่วนตัว;
@DynamoDBHashKey(attribute)
}
โมฆะสาธารณะ setSongTitle (String SongTitle) {
this.songTitle = ชื่อเพลง;
}
@DynamoDBRangeKey(attribute) // คีย์การเรียงลำดับ
สตริงสาธารณะ getSongTitle() {
หวนคืนชื่อเพลง;
}
โมฆะสาธารณะ setSongTitle (ชื่อเพลงสตริง) {
this.songTitle = ชื่อเพลง;
}
ในบรรทัดคำสั่งก่อนหน้านี้ DynamoDBTable คือคำอธิบายประกอบ Java ซึ่งใช้สำหรับการแมปคุณสมบัติกับแอตทริบิวต์ตาราง ในขณะที่คำอธิบายประกอบ DynamoDBHashKey แสดงคุณลักษณะของพาร์ติชันคีย์ ในทำนองเดียวกัน คำอธิบายประกอบ DynamoDBRangeKey อุทิศรายการให้กับแอตทริบิวต์คีย์การเรียงลำดับ คุณสามารถดำเนินการเพิ่มแอตทริบิวต์ที่ไม่ใช่หลักอื่นๆ ลงในตารางของคุณได้
บทสรุป
คู่มือนี้กล่าวถึงวิธีตั้งค่าคีย์การจัดเรียงบนตาราง DynamoDB โปรดทราบว่าคุณไม่สามารถเปลี่ยนแอตทริบิวต์ของคีย์การเรียงลำดับได้เมื่อคุณสร้างแล้ว โปรดทราบว่า DynamoDB จะค้นหาตารางและดัชนีของคุณโดยใช้พาร์ติชันคีย์และคีย์การเรียงลำดับร่วมกันเท่านั้น คุณไม่สามารถใช้คีย์การเรียงลำดับเพียงอย่างเดียวในการสอบถามตารางของคุณ ตรวจสอบให้แน่ใจว่าคุณระบุพาร์ติชันคีย์ก่อน