DynamoDB - แนวคิดพื้นฐาน
ก่อนใช้ DynamoDB คุณต้องทำความคุ้นเคยกับองค์ประกอบพื้นฐานและระบบนิเวศ ในระบบนิเวศ DynamoDB คุณทำงานกับตารางแอตทริบิวต์และรายการ ตารางมีชุดของรายการและรายการมีชุดแอตทริบิวต์ แอตทริบิวต์เป็นองค์ประกอบพื้นฐานของข้อมูลที่ไม่ต้องมีการย่อยสลายอีกต่อไปนั่นคือฟิลด์
คีย์หลัก
คีย์หลักทำหน้าที่เป็นตัวบ่งชี้เฉพาะสำหรับรายการตารางและดัชนีรองให้ความยืดหยุ่นในการสืบค้น สตรีม DynamoDB บันทึกเหตุการณ์โดยการแก้ไขข้อมูลตาราง
การสร้างตารางไม่เพียงต้องการตั้งชื่อ แต่ต้องใช้คีย์หลักด้วย ซึ่งระบุรายการตาราง ไม่มีสองรายการที่ใช้คีย์ร่วมกัน DynamoDB ใช้คีย์หลักสองประเภท -
Partition Key- คีย์หลักอย่างง่ายนี้ประกอบด้วยแอตทริบิวต์เดียวที่เรียกว่า "พาร์ติชันคีย์" ภายใน DynamoDB ใช้ค่าคีย์เป็นอินพุตสำหรับฟังก์ชันแฮชเพื่อกำหนดการจัดเก็บ
Partition Key and Sort Key - คีย์นี้เรียกว่า "คีย์หลักแบบผสม" ประกอบด้วยสองแอตทริบิวต์
คีย์พาร์ติชันและ
คีย์การจัดเรียง
DynamoDB ใช้แอ็ตทริบิวต์แรกกับฟังก์ชันแฮชและเก็บไอเท็มที่มีพาร์ติชันคีย์เดียวกันไว้ด้วยกัน ด้วยลำดับที่กำหนดโดยคีย์การจัดเรียง รายการสามารถแชร์คีย์พาร์ติชันได้ แต่ไม่สามารถจัดเรียงคีย์ได้
แอตทริบิวต์คีย์หลักอนุญาตเฉพาะค่าสเกลาร์ (เดี่ยว) และชนิดข้อมูลสตริงตัวเลขหรือไบนารี แอตทริบิวต์ที่ไม่ใช่คีย์ไม่มีข้อ จำกัด เหล่านี้
ดัชนีรอง
ดัชนีเหล่านี้ช่วยให้คุณสืบค้นข้อมูลตารางด้วยคีย์สำรอง แม้ว่า DynamoDB จะไม่บังคับให้ใช้ แต่ก็เพิ่มประสิทธิภาพการสืบค้น
DynamoDB ใช้ดัชนีรองสองประเภท -
Global Secondary Index - ดัชนีนี้มีพาร์ติชันและคีย์การเรียงลำดับซึ่งอาจแตกต่างจากคีย์ตาราง
Local Secondary Index - ดัชนีนี้มีคีย์พาร์ติชันเหมือนกับตารางอย่างไรก็ตามคีย์การจัดเรียงจะแตกต่างกัน
API
การดำเนินการ API ที่นำเสนอโดย DynamoDB รวมถึงระนาบควบคุมระนาบข้อมูล (เช่นการสร้างการอ่านการอัปเดตและการลบ) และสตรีม ในการควบคุมการทำงานของเครื่องบินคุณสร้างและจัดการตารางด้วยเครื่องมือต่อไปนี้ -
- CreateTable
- DescribeTable
- ListTables
- UpdateTable
- DeleteTable
ในระนาบข้อมูลคุณดำเนินการ CRUD ด้วยเครื่องมือต่อไปนี้ -
สร้าง | อ่าน | อัปเดต | ลบ |
---|---|---|---|
PutItem BatchWriteItem |
GetItem BatchGetItem แบบสอบถาม สแกน |
UpdateItem | DeleteItem BatchWriteItem |
สตรีมตารางควบคุมการดำเนินการสตรีม คุณสามารถตรวจสอบเครื่องมือสตรีมต่อไปนี้ -
- ListStreams
- DescribeStream
- GetShardIterator
- GetRecords
ปริมาณงานที่เตรียมไว้
ในการสร้างตารางคุณต้องระบุทรูพุตที่จัดเตรียมไว้ซึ่งสงวนทรัพยากรสำหรับการอ่านและเขียน คุณใช้หน่วยความจุในการวัดและตั้งค่าปริมาณงาน
เมื่อแอปพลิเคชันเกินปริมาณงานที่ตั้งไว้คำขอจะล้มเหลว คอนโซล DynamoDB GUI ช่วยให้สามารถตรวจสอบการตั้งค่าและปริมาณงานที่ใช้เพื่อการจัดเตรียมที่ดีขึ้นและไดนามิก
อ่านความสม่ำเสมอ
DynamoDB ใช้ eventually consistent และ strongly consistentอ่านเพื่อรองรับความต้องการแอปพลิเคชันแบบไดนามิก การอ่านที่สอดคล้องกันในที่สุดไม่ได้ให้ข้อมูลปัจจุบันเสมอไป
การอ่านที่สอดคล้องกันอย่างมากจะส่งข้อมูลปัจจุบันเสมอ (ยกเว้นอุปกรณ์ล้มเหลวหรือปัญหาเครือข่าย) การอ่านที่สอดคล้องกันในที่สุดจะทำหน้าที่เป็นการตั้งค่าเริ่มต้นโดยต้องมีการตั้งค่า true ในไฟล์ConsistentRead พารามิเตอร์เพื่อเปลี่ยนแปลง
พาร์ทิชัน
DynamoDB ใช้พาร์ติชันสำหรับจัดเก็บข้อมูล การจัดสรรพื้นที่เก็บข้อมูลสำหรับตารางเหล่านี้มีการสำรอง SSD และจำลองแบบข้ามโซนโดยอัตโนมัติ DynamoDB จัดการงานพาร์ติชันทั้งหมดโดยไม่ต้องให้ผู้ใช้มีส่วนร่วม
ในการสร้างตารางตารางจะเข้าสู่สถานะ CREATING ซึ่งจัดสรรพาร์ติชัน เมื่อถึงสถานะ ACTIVE คุณสามารถดำเนินการได้ ระบบจะเปลี่ยนพาร์ติชันเมื่อความจุถึงสูงสุดหรือเมื่อคุณเปลี่ยนทรูพุต