DynamoDB - Tổng quan

DynamoDB cho phép người dùng tạo cơ sở dữ liệu có khả năng lưu trữ và truy xuất bất kỳ lượng dữ liệu nào cũng như phục vụ bất kỳ lượng truy cập nào. Nó tự động phân phối dữ liệu và lưu lượng qua các máy chủ để quản lý động các yêu cầu của từng khách hàng và cũng duy trì hiệu suất nhanh chóng.

DynamoDB so với RDBMS

DynamoDB sử dụng mô hình NoSQL, có nghĩa là nó sử dụng một hệ thống không quan hệ. Bảng dưới đây nêu rõ sự khác biệt giữa DynamoDB và RDBMS:

Nhiệm vụ chung RDBMS DynamoDB
Connect to the Source Nó sử dụng một kết nối liên tục và các lệnh SQL. Nó sử dụng các yêu cầu HTTP và hoạt động API
Create a Table Cấu trúc cơ bản của nó là các bảng và phải được xác định. Nó chỉ sử dụng các khóa chính và không có lược đồ khi tạo. Nó sử dụng nhiều nguồn dữ liệu khác nhau.
Get Table Info Tất cả thông tin bảng vẫn có thể truy cập được Chỉ có khóa chính được tiết lộ.
Load Table Data Nó sử dụng các hàng làm bằng cột. Trong bảng, nó sử dụng các mục được tạo từ các thuộc tính
Read Table Data Nó sử dụng câu lệnh SELECT và câu lệnh lọc. Nó sử dụng GetItem, Query và Scan.
Manage Indexes Nó sử dụng các chỉ mục tiêu chuẩn được tạo thông qua các câu lệnh SQL. Các sửa đổi đối với nó xảy ra tự động khi thay đổi bảng. Nó sử dụng một chỉ mục phụ để đạt được chức năng tương tự. Nó yêu cầu các thông số kỹ thuật (khóa phân vùng và khóa sắp xếp).
Modify Table Data Nó sử dụng một câu lệnh UPDATE. Nó sử dụng một hoạt động UpdateItem.
Delete Table Data Nó sử dụng một câu lệnh DELETE. Nó sử dụng một hoạt động DeleteItem.
Delete a Table Nó sử dụng câu lệnh DROP TABLE. Nó sử dụng một hoạt động DeleteTable.

Ưu điểm

Hai ưu điểm chính của DynamoDB là khả năng mở rộng và tính linh hoạt. Nó không buộc sử dụng một nguồn và cấu trúc dữ liệu cụ thể, cho phép người dùng làm việc với hầu hết mọi thứ, nhưng theo một cách thống nhất.

Thiết kế của nó cũng hỗ trợ nhiều mục đích sử dụng từ các tác vụ và hoạt động nhẹ hơn đến các chức năng đòi hỏi của doanh nghiệp. Nó cũng cho phép sử dụng đơn giản nhiều ngôn ngữ: Ruby, Java, Python, C #, Erlang, PHP và Perl.

Hạn chế

DynamoDB có một số hạn chế nhất định, tuy nhiên, những hạn chế này không nhất thiết tạo ra các vấn đề lớn hoặc cản trở sự phát triển vững chắc.

Bạn có thể xem xét chúng từ những điểm sau:

  • Capacity Unit Sizes- Đơn vị dung lượng đọc là một lần đọc nhất quán duy nhất trên giây cho các mục không lớn hơn 4KB. Đơn vị khả năng ghi là một lần ghi mỗi giây cho các mục không lớn hơn 1KB.

  • Provisioned Throughput Min/Max- Tất cả các bảng và chỉ số phụ chung có tối thiểu một đơn vị khả năng đọc và một đơn vị khả năng ghi. Mức tối đa tùy thuộc vào khu vực. Ở Hoa Kỳ, 40 nghìn lượt đọc và ghi vẫn là giới hạn cho mỗi bảng (80 nghìn cho mỗi tài khoản) và các khu vực khác có giới hạn 10 nghìn cho mỗi bảng với giới hạn tài khoản 20 nghìn.

  • Provisioned Throughput Increase and Decrease - Bạn có thể tăng mức này thường xuyên nếu cần, nhưng số lần giảm vẫn được giới hạn không quá bốn lần mỗi ngày cho mỗi bảng.

  • Table Size and Quantity Per Account - Kích thước bảng không có giới hạn, nhưng tài khoản có giới hạn 256 bảng trừ khi bạn yêu cầu giới hạn cao hơn.

  • Secondary Indexes Per Table - Năm địa phương và năm toàn cầu được phép.

  • Projected Secondary Index Attributes Per Table - DynamoDB cho phép 20 thuộc tính.

  • Partition Key Length and Values - Độ dài tối thiểu của chúng là 1 byte và tối đa là 2048 byte, tuy nhiên, DynamoDB không đặt giới hạn về giá trị.

  • Sort Key Length and Values - Độ dài tối thiểu của nó là 1 byte và tối đa là 1024 byte, không có giới hạn cho các giá trị trừ khi bảng của nó sử dụng chỉ mục phụ cục bộ.

  • Table and Secondary Index Names - Tên phải có độ dài tối thiểu 3 ký tự và tối đa là 255. Chúng sử dụng các ký tự sau: AZ, az, 0-9, “_”, “-” và “.”.

  • Attribute Names - Một ký tự vẫn là tối thiểu và tối đa là 64KB, ngoại trừ các khóa và các thuộc tính nhất định.

  • Reserved Words - DynamoDB không ngăn việc sử dụng các từ dành riêng làm tên.

  • Expression Length- Chuỗi biểu thức có giới hạn 4KB. Biểu thức thuộc tính có giới hạn 255 byte. Các biến thay thế của một biểu thức có giới hạn 2MB.