Lộ trình
Amazon Web ServicesAssociateTuần 2: Đào sâu dịch vụ cốt lõiBài 11 / 30

Ngày 11: DynamoDB

Thời lượng: 45 phút
Mục tiêu: 2 nhiệm vụ chính
Tiến độ lộ trình
aws-saa-c03ngày 11
hoàn thành11 / 30 bài
Bối cảnh bài học

Thiết kế DynamoDB theo access pattern, partition key, sort key, capacity và consistency; không chuyển mô hình relational sang NoSQL máy móc.

đọc hiểuthực hànhcheckpoint
Bài giảng hôm nay

Học hiểu, rồi mới thực hành

Thiết kế DynamoDB theo access pattern, partition key, sort key, capacity và consistency; không chuyển mô hình relational sang NoSQL máy móc.

Bắt đầu đọc bài giảng

Nhiệm vụ bài học hôm nay

  • Học partition key, sort key, capacity mode
  • Thực hành tạo bảng và query cơ bản
Instructor walkthrough

Bài giảng chi tiết: từ bài toán đến bằng chứng

Scenario xuyên suốt

Một ứng dụng cần truy vấn đơn hàng theo customer, trạng thái và thời gian ở quy mô lớn. Nếu thiết kế key theo bảng relational hoặc scan toàn bảng, latency và cost sẽ không ổn định.

01Đọc bài toán

Xác định actor, workload, constraint và trạng thái cuối cần đạt.

02Vẽ luồng / boundary

Chỉ ra request, dependency, identity và failure domain trước khi chọn công cụ.

03Chọn và thực hành

Thay đổi nhỏ nhất trong lab cô lập; command nào cũng phải nói rõ nó kiểm tra điều gì.

04Kiểm chứng / recovery

Đối chiếu trạng thái thực tế, tạo một failure variant và ghi cách hoàn tác.

Cách nối lý thuyết với thực tế
  • DynamoDB là key-value/document; partition key phân phối dữ liệu, sort key hỗ trợ range/query trong partition.
  • Access pattern phải định trước; GSI/LSI thêm query path nhưng có cost/consistency implication.
  • On-demand phù hợp traffic khó đoán; provisioned cần capacity planning/autoscaling.
  • DynamoDB Streams, TTL, transactions, consistency và global tables phục vụ requirement riêng.

NoSQL bắt đầu từ query

DynamoDB không thiết kế như một database relational rồi “bỏ schema”. Hãy liệt kê access pattern trước, sau đó chọn partition key/sort key/index. Query nên đi theo key; scan toàn bảng thường là tín hiệu thiết kế chưa phù hợp.

Bài tập

Thiết kế order table cho customer history, order by id, orders by status/time và item lookup. Ghi hot partition risk, consistency, capacity mode và TTL. Mỗi lựa chọn phải có access pattern chứng minh.

Bài giảng chuyên sâu

DynamoDB: thiết kế từ truy vấn, không từ bảng

Với order history, hãy liệt kê access pattern trước: customer xem đơn theo thời gian, lookup theo order id, tìm theo trạng thái và lấy item. Chọn partition key để phân phối tải, sort key cho range/query trong partition; GSI tạo thêm query path nhưng có storage/capacity/consistency cost. Scan toàn bảng là dấu hiệu access pattern chưa được thiết kế.

On-demand hợp traffic khó đoán; provisioned hợp workload ổn định có thể đo. Hot partition xảy ra khi key tập trung traffic; TTL dọn dữ liệu không còn giá trị nhưng không phải backup. Strong consistency và eventual consistency phải gắn với requirement.

Bài tập: tạo access-pattern matrix gồm key condition, expected result, write/read rate, hot-key risk và recovery. Failure drill: một customer trở thành hot key, GSI throttling và duplicate write; ghi metric evidence và phương án giảm tải.

Terminal reference

Command list và cách dùng

Chạy từng lệnh theo đúng thứ tự. Trước các lệnh có thể tạo hoặc thay đổi tài nguyên, hãy kiểm tra profile, account và region.

Commands · read-only checkpoints
aws dynamodb list-tables --profile study --output table
aws dynamodb describe-table --table-name <lab-table> --profile study --output json
Hands-on lab

Thực hành theo scenario

Viết 5 access pattern cho order system rồi thiết kế PK/SK và một index nếu cần. Với mỗi pattern ghi query/key condition, hot partition risk, consistency và cost. Không tạo bảng có dữ liệu thật; có thể dùng schema worksheet.

Evidence checkpoint

Kiểm chứng kết quả

Không coi lệnh chạy thành công là đủ. Hãy đối chiếu output với trạng thái mong đợi:

  • Truy vấn chính không cần scan toàn bảng.
  • Giải thích partition key và sort key bằng access pattern.
  • Nêu khi nào dùng on-demand/provisioned.
  • Phân biệt GSI/LSI và eventual/strong consistency ở mức scenario.
Transfer to exam / production

Bẫy thường gặp và trade-off

DynamoDB câu SAA thường xoay quanh access pattern, hot partition, low latency và scale; đừng chọn vì “NoSQL” mà bỏ qua key design.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Nguyên tắc quan trọng nhất khi thiết kế DynamoDB là gì?

Kết thúc bài

Checklist trước khi sang Ngày 2