Thao tác CRUD và Query vs Scan trong DynamoDB

Sử dụng Kho dữ liệu trong AWS

Dunieski Otano

AWS Solutions Architect

Sai lầm đắt giá

  • Dev dùng Scan để tìm một người dùng
  • Đọc toàn bộ bảng 1 triệu item
  • Hóa đơn: $500 cho một lần tra cứu
  • Dùng Query chỉ tốn $0.01

lỗi

Sử dụng Kho dữ liệu trong AWS

Thao tác CRUD trong DynamoDB

  • PutItem: Tạo hoặc thay thế item
  • GetItem: Đọc item theo khóa chính
  • UpdateItem: Sửa thuộc tính cụ thể
  • DeleteItem: Xóa item
  • Query: Lấy theo partition key (hiệu quả)
  • Scan: Đọc toàn bộ bảng (tốn kém)

tác vụ

Sử dụng Kho dữ liệu trong AWS

Query vs Scan: khác biệt cốt lõi

  • Query: Cần partition key, đọc mục cụ thể
    • Nhanh, hiệu quả, chi phí thấp
  • Scan: Đọc toàn bảng, lọc sau
    • Chậm, tốn kém, tránh nếu có thể
  • Quy tắc: Biết khóa thì dùng Query. Nếu không, xem lại thiết kế.

scan

Sử dụng Kho dữ liệu trong AWS

Ngăn chặn race condition bằng biểu thức có điều kiện

  • Vấn đề: Hai người dùng cập nhật cùng mục cùng lúc
  • Giải pháp: Biểu thức có điều kiện
  • Ví dụ: Chỉ cập nhật nếu giá trị hiện tại khớp giá trị mong đợi

đua

Sử dụng Kho dữ liệu trong AWS

Biểu thức UpdateItem: sửa đổi thuộc tính

  • SET: Gán giá trị thuộc tính hoặc tạo thuộc tính mới
  • ADD: Tăng/giảm số, thêm vào set
  • REMOVE: Xóa thuộc tính khỏi item
  • DELETE: Gỡ phần tử khỏi set

biểu thức

Sử dụng Kho dữ liệu trong AWS

Phân trang với Query và Scan

  • Vấn đề: Tập kết quả lớn vượt giới hạn 1MB
  • Giải pháp: Phân trang với LastEvaluatedKey
  • Limit: Kiểm soát số item mỗi trang
  • Lặp đến khi LastEvaluatedKey là null

phân trang

Sử dụng Kho dữ liệu trong AWS

Ayo berlatih!

Sử dụng Kho dữ liệu trong AWS

Preparing Video For Download...