Dynamodb
DynamoDB: Tổng Quan Dễ Hiểu¶
1. DynamoDB là gì?¶
- DynamoDB là cơ sở dữ liệu NoSQL do AWS phát triển và cung cấp.
- Đặc điểm chính:
- Fully managed: AWS quản lý toàn bộ cơ sở hạ tầng, không cần bảo trì hay vá lỗi.
- High availability: Dữ liệu được sao chép trên nhiều Availability Zones (AZs).
- Cloud native: Được thiết kế riêng cho môi trường AWS.
- Scalable: Có thể mở rộng để xử lý hàng triệu yêu cầu mỗi giây, hàng nghìn tỷ dòng dữ liệu, và hàng trăm terabyte dữ liệu.
2. Lợi ích chính:¶
- Hiệu năng cao:
- Độ trễ một chữ số mili giây.
- Bảo mật tích hợp:
- Tích hợp với IAM để quản lý quyền truy cập.
- Tự động mở rộng (Auto-scaling):
- Linh hoạt điều chỉnh tài nguyên để xử lý khối lượng công việc.
- Không yêu cầu quản lý cơ sở dữ liệu:
- Chỉ cần tạo table và sử dụng.
- Chi phí thấp:
- Có thể chọn chế độ tính phí theo nhu cầu.
3. Cấu trúc cơ bản của DynamoDB:¶
- Table: Không cần tạo database, chỉ cần tạo các table.
- Primary Key: Mỗi table cần một khóa chính, gồm:
- Partition Key: Bắt buộc.
- Sort Key: Tuỳ chọn (nếu cần phân nhóm dữ liệu).
- Item: Các dòng dữ liệu, không giới hạn số lượng.
- Attributes: Cột trong table, có thể thay đổi và không bắt buộc.
4. So sánh DynamoDB với RDS/Aurora:¶
Tiêu chí | DynamoDB | RDS/Aurora |
---|---|---|
Loại cơ sở dữ liệu | NoSQL | SQL (Relational) |
Quy mô dữ liệu | Trillions of rows, 100s of TBs | Hạn chế hơn |
Schema | Linh hoạt, dễ thay đổi | Phải thiết kế trước và khó thay đổi |
Hiệu năng | Single-digit millisecond latency | Phụ thuộc vào cấu hình |
Quản lý | Không cần bảo trì | Cần quản lý backup, vá lỗi |
5. Các chế độ hoạt động của DynamoDB:¶
Provisioned Mode:¶
- Cách hoạt động:
- Bạn xác định trước dung lượng đọc/ghi (RCU/WCU).
- Tự động mở rộng với Auto-scaling nếu được cấu hình.
- Ưu điểm:
- Tiết kiệm chi phí cho khối lượng công việc ổn định.
- Hạn chế:
- Không phù hợp với công việc có biến động bất ngờ hoặc tăng đột biến nhanh.
On-Demand Mode:¶
- Cách hoạt động:
- DynamoDB tự động mở rộng mà không cần lập kế hoạch trước.
- Bạn trả phí dựa trên số lượng đọc/ghi thực tế.
- Ưu điểm:
- Phù hợp với khối lượng công việc không đoán trước hoặc có biến động đột ngột.
- Hạn chế:
- Chi phí cao hơn Provisioned Mode trong một số trường hợp.
Chế độ | Khi nào nên dùng? |
---|---|
Provisioned | Khối lượng công việc ổn định, có thể dự đoán. |
On-Demand | Khối lượng công việc không ổn định hoặc tăng đột biến. |
6. Dữ liệu và kiểu dữ liệu trong DynamoDB:¶
- Dữ liệu:
- Item size: Tối đa 400KB (không phù hợp lưu trữ tệp lớn).
- Kiểu dữ liệu hỗ trợ:
- Scalar: String, Number, Boolean, Binary, Null.
- Collection: List, Map, Set.
7. Khi nào chọn DynamoDB?¶
- Khi ứng dụng cần:
- Khả năng mở rộng lớn và hiệu năng cao.
- Schema linh hoạt (thay đổi cấu trúc dữ liệu dễ dàng).
- Đọc/Ghi ở quy mô hàng triệu giao dịch mỗi giây.
- Xử lý khối lượng công việc không đoán trước.