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 คุณสามารถดำเนินการได้ ระบบจะเปลี่ยนพาร์ติชันเมื่อความจุถึงสูงสุดหรือเมื่อคุณเปลี่ยนทรูพุต