DynamoDB - ดัชนี

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

ดัชนีทุติยภูมิ

ดัชนีรองมีชุดย่อยแอตทริบิวต์และคีย์สำรอง คุณใช้ผ่านการสืบค้นหรือการสแกนซึ่งกำหนดเป้าหมายดัชนี

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

DynamoDB จะรักษาดัชนีรองทั้งหมดโดยอัตโนมัติ ในการดำเนินการรายการเช่นการเพิ่มหรือการลบจะอัปเดตดัชนีใด ๆ บนตารางเป้าหมาย

DynamoDB เสนอดัชนีรองสองประเภท -

  • Global Secondary Index- ดัชนีนี้ประกอบด้วยคีย์พาร์ติชันและคีย์การจัดเรียงซึ่งอาจแตกต่างจากตารางต้นทาง ใช้ป้ายกำกับ "global" เนื่องจากความสามารถในการสืบค้น / สแกนบนดัชนีเพื่อขยายข้อมูลตารางทั้งหมดและบนพาร์ติชันทั้งหมด

  • Local Secondary Index- ดัชนีนี้แชร์คีย์พาร์ติชันกับตาราง แต่ใช้คีย์การจัดเรียงอื่น ลักษณะ "โลคัล" เป็นผลมาจากพาร์ติชันทั้งหมดที่กำหนดขอบเขตไปยังพาร์ติชันตารางที่มีค่าคีย์พาร์ติชันเหมือนกัน

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

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

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

ดัชนีทุติยภูมิแต่ละรายการต้องการข้อกำหนดบางประการ -

  • Type - ระบุท้องถิ่นหรือทั่วโลก

  • Name - ใช้กฎการตั้งชื่อเหมือนกับตาราง

  • Key Schema - อนุญาตเฉพาะสตริงระดับบนสุดตัวเลขหรือประเภทไบนารีเท่านั้นโดยประเภทดัชนีจะเป็นตัวกำหนดข้อกำหนดอื่น ๆ

  • Attributes for Projection - DynamoDB จะฉายภาพโดยอัตโนมัติและอนุญาตให้ใช้ข้อมูลประเภทใดก็ได้

  • Throughput - ระบุความสามารถในการอ่าน / เขียนสำหรับดัชนีทุติยภูมิทั่วโลก

ขีด จำกัด สำหรับดัชนียังคงอยู่ที่ 5 global และ 5 local ต่อตาราง

คุณสามารถเข้าถึงข้อมูลโดยละเอียดเกี่ยวกับดัชนีด้วย DescribeTable. ส่งคืนชื่อขนาดและจำนวนรายการ

Note - ค่าเหล่านี้จะอัปเดตทุกๆ 6 ชั่วโมง

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

Note - การลบตารางจะลบดัชนีทั้งหมดด้วย