DocumentDB

DocumentDB

  • Aurora là “phiên bản do AWS triển khai” cho PostgreSQL / MySQL.
    DocumentDB đóng vai trò tương tự cho MongoDB (MongoDB là một cơ sở dữ liệu NoSQL).
  • MongoDB được sử dụng để lưu trữ, truy vấn, và tạo index cho dữ liệu dạng JSON.
  • Có cùng “mô hình triển khai” như Aurora.
  • Là dịch vụ fully managed, highly available, hỗ trợ replication trên 3 Availability Zones (AZs).
  • Dung lượng lưu trữ tự động mở rộng theo block 10GB, lên tới tối đa 64TB.
  • Tự động scale lên để xử lý hàng triệu request mỗi giây.

So sánh với DynamoDB

Tiêu chíAmazon DocumentDBAmazon DynamoDB
Loại DBNoSQL (document DB – giống MongoDB)NoSQL (key-value / document store)
Mô hình dữ liệuDocument (JSON – giống MongoDB)Key-Value + hỗ trợ document (limited query flexibility)
Ngôn ngữ truy vấnMongoDB Query LanguageDynamoDB API (không dùng SQL, cần SDK hoặc PartiQL)
Tính năng JOIN / aggregationCó hỗ trợ tốt (gần như MongoDB gốc)Không hỗ trợ JOIN, hỗ trợ hạn chế aggregation
Tốc độ truy cậpNhanh, nhưng không bằng DynamoDB ở scale cực lớnRất nhanh ở scale lớn, latency thấp (single-digit ms)
Khả năng mở rộngTự động mở rộng dung lượng, giới hạn tới 64TBGần như unlimited, mở rộng horizontal dễ dàng
Use case phù hợp- App sử dụng MongoDB cũ 

Trong đó: 

Document Store (ví dụ: MongoDB, DocumentDB)
  • Dữ liệu được lưu dưới dạng tài liệu (document) — thường là JSON hoặc BSON.
  • Cấu trúc dữ liệu phức tạp, có thể lồng nhau (nested objects, arrays).
  • Mỗi document có thể có cấu trúc khác nhau (schema-less).
  • Có thể truy vấn theo bất kỳ field nào trong document, thậm chí nested field.
  • Ví dụ
{
 "id": "001",
 "name": "Alice",
 "address": {
   "city": "Hanoi",
   "postalCode": "100000"
 },
 "skills": ["Java", "NodeJS"]
}
 
Key-Value Store (ví dụ: DynamoDB, Redis, ElastiCache)
  • Dữ liệu lưu trữ như một bảng ánh xạ giữa key và value.
  • Không quan tâm nội dung value, chỉ cần biết key.
  • Không hỗ trợ truy vấn theo nội dung trong value (trừ khi dùng workaround hoặc giới hạn).
  • Ví dụ
Key: "user:001"
Value: { "name": "Alice", "age": 30 }

Tóm lại:

  • Nếu bạn cần quản lý dữ liệu có cấu trúc động, lồng nhau, và truy vấn linh hoạt → dùng DocumentDB.
  • Nếu bạn cần truy cập siêu nhanh theo key và không cần truy vấn phức tạp → chọn DynamoDB hoặc Redis.
Bạn thấy bài này thế nào?