Amazon DynamoDB เบื้องต้น

การใช้งาน Data Stores บน AWS

Dunieski Otano

AWS Solutions Architect

ปัญหา hot partition

  • ลองนึกภาพร้านอาหารที่แคชเชียร์คนเดียวยุ่งมาก ขณะที่อีกสามคนว่างงาน
  • นี่คือสิ่งที่เกิดขึ้นเมื่อออกแบบ partition key ได้ไม่ดี
  • Hot partition = partition หนึ่งรับ traffic มากเกินไป ขณะที่อีกส่วนว่างเปล่า
  • วิธีแก้: ใช้ partition key ที่มี cardinality สูง คือ attribute ที่มีค่าไม่ซ้ำมาก กระจายข้อมูลได้สม่ำเสมอ

partition

การใช้งาน Data Stores บน AWS

Partition key ที่ดีควรมีคุณสมบัติอะไร

  • High cardinality: ค่าไม่ซ้ำมาก
    • userId, orderId, sessionId - เหมาะสม
    • country, status, category - ไม่เหมาะ
  • Even distribution: รูปแบบการเข้าถึงสมดุล
  • Predictable: ทราบค่าได้ตอน query

cardinality

การใช้งาน Data Stores บน AWS

โครงสร้างตาราง DynamoDB

  • Partition key (จำเป็น): กำหนดการกระจายข้อมูล
  • Sort key (ไม่บังคับ): รองรับ range query เช่น userId + orderDate
  • Attributes: ฟิลด์ข้อมูลเพิ่มเติม
  • Primary key = Partition key หรือ Partition key + Sort key

table

การใช้งาน Data Stores บน AWS

สร้างตารางแรกของคุณ

  • AWS Console: ตั้งค่าได้รวดเร็ว เหมาะสำหรับทดสอบ
  • boto3 (Python): สร้างตารางด้วยโค้ด
  • ตัดสินใจหลัก: partition key, sort key, billing mode

first

การใช้งาน Data Stores บน AWS

Composite key และการ query ด้วย sort key

  • Composite key: Partition key + Sort key
  • Range queries: Query ในช่วงวันที่หรือช่วงตัวเลข
  • Operators: =, <, >, <=, >=, BETWEEN, begins_with
  • ตัวอย่าง: ดึงออร์เดอร์ของผู้ใช้ใน 30 วันที่ผ่านมา มูลค่ามากกว่า $100

code

การใช้งาน Data Stores บน AWS

Capacity mode: on-demand vs provisioned

  • On-Demand: จ่ายตามการใช้งาน ปรับขนาดอัตโนมัติ
    • เหมาะกับ: traffic ที่คาดเดาไม่ได้ หรือแอปใหม่
  • Provisioned: กำหนด RCU/WCU ล่วงหน้า ต้นทุนต่ำกว่าเมื่อขนาดใหญ่ขึ้น
    • เหมาะกับ: traffic ที่คาดเดาได้ ต้องการควบคุมค่าใช้จ่าย
  • สลับโหมดได้ครั้งละ 1 ครั้งต่อ 24 ชั่วโมง

mode

การใช้งาน Data Stores บน AWS

มาฝึกกันเถอะ!

การใช้งาน Data Stores บน AWS

Preparing Video For Download...