คำถามที่พบบ่อยเกี่ยวกับ Amazon DynamoDB

เกี่ยวกับ Amazon DynamoDB

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

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

เมื่ออ่านข้อมูลจาก DynamoDB ผู้ใช้สามารถระบุได้ว่าต้องการให้การอ่านเป็นแบบสอดคล้องกันในท้ายที่สุด (Eventually Consistent) หรือสอดคล้องกันอย่างมาก (Strongly Consistent)

  • Eventually Consistent Read (ค่าเริ่มต้น) - ตัวเลือก eventual consistency ในตอนท้ายช่วยเพิ่มปริมาณการอ่านของคุณ อย่างไรก็ตาม Eventually Consistent Read อาจไม่ได้แสดงถึงผลการเขียนที่เพิ่งเสร็จสิ้นไป โดยทั่วไปสำเนาข้อมูลจะสอดคล้องภายในหนึ่งวินาที การอ่านซ้ำหลังจากช่วงเวลาสั้นๆ จะส่งกลับข้อมูลที่ปรับปรุงแล้ว
  • Strongly Consistent Read ซึ่งนอกเหนือจาก Eventual Consistency แล้ว DynamoDB ยังให้ความยืดหยุ่นและการควบคุมเพื่อร้องขอการอ่านแบบสอดคล้องกันอย่างมาก หากแอปพลิเคชัน หรือองค์ประกอบของแอปพลิเคชันของคุณจำเป็นต้องใช้ การอ่านแบบสอดคล้องกันอย่างมากจะส่งกลับผลลัพธ์ที่แสดงถึงการเขียนทั้งหมดที่ได้รับการตอบสนองที่ประสบความสำเร็จก่อนการอ่าน
  • ธุรกรรม ACID – DynamoDB Transactions มอบธุรกรรมที่มีลักษณะ Atomicity, Consistency, Isolation, และ Durability (ACID) ให้กับนักพัฒนาในตารางมากกว่าหนึ่งตารางภายใต้บัญชีและภูมิภาค AWS เดียว คุณสามารถใช้ธุรกรรมเมื่อสร้างแอปพลิเคชันที่จำเป็นต้องแทรก ลบ หรืออัปเดตรายการหลายๆ รายการร่วมกัน ซึ่งเป็นส่วนหนึ่งของการดำเนินการทางธุรกิจเชิงตรรกะแบบเดี่ยว

เริ่มต้นใช้งาน

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

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

DynamoDB จัดทำดัชนี partition-sort key แบบร่วมเป็นองค์ประกอบ partition key และองค์ประกอบ sort key คีย์หลายส่วนนี้จัดเก็บลำดับชั้นระหว่างค่าองค์ประกอบแรกและองค์ประกอบที่สอง ตัวอย่างเช่น คีย์พาร์ติชันการเรียงลำดับแบบร่วมอาจเป็นการผสมผสานระหว่าง UserID(พาร์ติชัน) กับ Timestamp (เรียงลำดับ) ก็ได้ เมื่อใช้องค์ประกอบ Partition Key เป็นค่าคงที่ คุณจะสามารถค้นหารายการในองค์ประกอบคีย์การเรียงลำดับทั้งหมดได้ การค้นหาดังกล่าวจะช่วยให้คุณสามารถใช้ Query API เพื่อดำเนินการต่าง ๆ เช่น ดึงรายการทั้งหมดสำหรับ UserID เดียวในช่วงการประทับเวลาต่าง ๆ ได้

หลังจากที่คุณสร้างตารางโดยใช้ DynamoDB Console หรือ CreateTable API แล้ว คุณสามารถใช้ PutItem หรือ BatchWriteItem API เพื่อแทรกรายการได้ จากนั้นคุณสามารถใช้ GetItem, BatchGetItem หรือหากคีย์หลักแบบรวมถูกเปิดใช้งานและกำลังใช้งานในตารางของคุณ สามารถใช้ Query API เพื่อดึงรายการที่คุณเพิ่มลงในตาราง

ใช่ DynamoDB คือบริการระบบคลาวด์ที่มีการจัดการอย่างเต็มที่โดยคุณเข้าใช้งานผ่าน API ได้ แอปพลิเคชันที่ดำเนินการบนระบบปฏิบัติการต่างๆ (เช่น Linux, Windows, iOS, Android, Solaris, AIX และ HP-UX) สามารถใช้ DynamoDB ได้ เราขอแนะนำให้ใช้ AWS SDK เพื่อเริ่มต้นใช้งาน DynamoDB

การวางแผน

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

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับราคาของ DynamoDB โปรดดูที่หน้าราคาของ DynamoDB

ในทางปฏิบัติ อัตราการโอนถ่ายข้อมูลสูงสุดต่อหนึ่งตาราง DynamoDB นั้นไม่จำกัด สำหรับข้อมูลเกี่ยวกับข้อจำกัด โปรดดูข้อจำกัดใน DynamoDB หากคุณต้องการขอเพิ่มขีดจำกัด โปรดติดต่อ Amazon 

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

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

ตาราง DynamoDB Standard-IA นั้นไม่แตกต่างจากตาราง DynamoDB Standard ในการรองรับคุณสมบัติ DynamoDB ที่มีอยู่ทั้งหมด รวมถึงตารางสากล ดัชนีรอง การสำรองข้อมูลตามความต้องการ การกู้คืนข้อมูลในจุดเวลาที่กำหนด (PITR) ตาราง DynamoDB Standard-IA ยังมีการผสานรวมในตัวกับบริการอื่นๆ ของ AWS ในลักษณะเดียวกับตาราง DynamoDB Standard อีกด้วย ตัวอย่างเช่น คุณสามารถตรวจสอบประสิทธิภาพของตาราง DynamoDB Standard-IA ได้โดยใช้ Amazon CloudWatch, ใช้เทมเพลต AWS CloudFormation เพื่อจัดเตรียมและจัดการตาราง DynamoDB Standard-IA, เพิ่มแคชด้วย DynamoDB Accelerator (DAX) เพื่อเร่งประสิทธิภาพ, สตรีมบันทึกข้อมูลการเปลี่ยนแปลงของคุณไปยัง Amazon Kinesis Data Streams และส่งออกข้อมูลตาราง DynamoDB Standard-IA ของคุณไปยัง Amazon Simple Storage Service (Amazon S3)

วิธีทำงาน

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับแบบจำลองข้อมูลและ API โปรดดูที่ Amazon DynamoDB: วิธีทำงาน

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

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับ Auto Scaling ของ DynamoDB โปรดดูที่ การจัดการความสามารถในการถ่ายโอนข้อมูลอัตโนมัติด้วย Auto Scaling ของ DynamoDB

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