DynamoDB - Các khái niệm cơ bản
Trước khi sử dụng DynamoDB, bạn phải tự làm quen với các thành phần cơ bản và hệ sinh thái của nó. Trong hệ sinh thái DynamoDB, bạn làm việc với các bảng, thuộc tính và mục. Một bảng chứa các tập hợp các mục và các mục chứa các tập hợp các thuộc tính. Thuộc tính là một phần tử cơ bản của dữ liệu không cần phân hủy thêm, tức là một trường.
Khóa chính
Khóa chính đóng vai trò là phương tiện nhận dạng duy nhất cho các mục trong bảng và các chỉ mục phụ cung cấp tính linh hoạt cho truy vấn. Dòng DynamoDB ghi lại các sự kiện bằng cách sửa đổi dữ liệu bảng.
Tạo bảng không chỉ yêu cầu đặt tên mà còn cả khóa chính; xác định các mục trong bảng. Không có hai mục dùng chung một khóa. DynamoDB sử dụng hai loại khóa chính:
Partition Key- Khóa chính đơn giản này bao gồm một thuộc tính duy nhất được gọi là “khóa phân vùng”. Bên trong, DynamoDB sử dụng giá trị khóa làm đầu vào cho hàm băm để xác định bộ nhớ.
Partition Key and Sort Key - Khóa này, được gọi là “Khóa chính tổng hợp”, bao gồm hai thuộc tính.
Khóa phân vùng và
Phím sắp xếp.
DynamoDB áp dụng thuộc tính đầu tiên cho một hàm băm và lưu trữ các mục có cùng khóa phân vùng với nhau; với thứ tự của chúng được xác định bởi phím sắp xếp. Các mục có thể chia sẻ khóa phân vùng, nhưng không chia sẻ khóa sắp xếp.
Các thuộc tính Khóa chính chỉ cho phép các giá trị vô hướng (đơn); và kiểu dữ liệu chuỗi, số hoặc nhị phân. Các thuộc tính không khóa không có những ràng buộc này.
Chỉ mục phụ
Các chỉ mục này cho phép bạn truy vấn dữ liệu bảng bằng một khóa thay thế. Mặc dù DynamoDB không bắt buộc sử dụng chúng, nhưng chúng tối ưu hóa việc truy vấn.
DynamoDB sử dụng hai loại chỉ mục phụ:
Global Secondary Index - Chỉ mục này sở hữu các khóa phân vùng và sắp xếp, có thể khác với các khóa bảng.
Local Secondary Index - Chỉ mục này sở hữu một khóa phân vùng giống hệt với bảng, tuy nhiên, khóa sắp xếp của nó khác.
API
Các hoạt động API do DynamoDB cung cấp bao gồm các hoạt động của mặt phẳng điều khiển, mặt phẳng dữ liệu (ví dụ: tạo, đọc, cập nhật và xóa) và các luồng. Trong hoạt động của mặt phẳng điều khiển, bạn tạo và quản lý bảng bằng các công cụ sau:
- CreateTable
- DescribeTable
- ListTables
- UpdateTable
- DeleteTable
Trong mặt phẳng dữ liệu, bạn thực hiện các hoạt động CRUD bằng các công cụ sau:
Tạo nên | Đọc | Cập nhật | Xóa bỏ |
---|---|---|---|
PutItem BatchWriteItem |
GetItem BatchGetItem Truy vấn Quét |
UpdateItem | Xóa mục BatchWriteItem |
Các hoạt động luồng điều khiển các luồng bảng. Bạn có thể xem lại các công cụ phát trực tiếp sau:
- ListStreams
- DescribeStream
- GetShardIterator
- GetRecords
Thông lượng được cung cấp
Trong quá trình tạo bảng, bạn chỉ định thông lượng được cấp phép, lưu lượng dự trữ tài nguyên để đọc và ghi. Bạn sử dụng đơn vị công suất để đo lường và thiết lập thông lượng.
Khi các ứng dụng vượt quá thông lượng đã đặt, các yêu cầu sẽ không thành công. Bảng điều khiển DynamoDB GUI cho phép giám sát thông lượng đã đặt và đã sử dụng để cung cấp động và tốt hơn.
Đọc nhất quán
DynamoDB sử dụng eventually consistent và strongly consistentđọc để hỗ trợ nhu cầu ứng dụng động. Cuối cùng, các lần đọc nhất quán không phải lúc nào cũng cung cấp dữ liệu hiện tại.
Các lần đọc nhất quán cao luôn cung cấp dữ liệu hiện tại (ngoại trừ lỗi thiết bị hoặc sự cố mạng). Cuối cùng các lần đọc nhất quán đóng vai trò là cài đặt mặc định, yêu cầu cài đặt là true trongConsistentRead để thay đổi nó.
Phân vùng
DynamoDB sử dụng phân vùng để lưu trữ dữ liệu. Các phân bổ lưu trữ này cho các bảng có hỗ trợ SSD và tự động sao chép giữa các vùng. DynamoDB quản lý tất cả các tác vụ phân vùng, không yêu cầu sự tham gia của người dùng.
Khi tạo bảng, bảng đi vào trạng thái CREATING, trạng thái này sẽ phân bổ các phân vùng. Khi nó đạt đến trạng thái ACTIVE, bạn có thể thực hiện các thao tác. Hệ thống thay đổi các phân vùng khi dung lượng của nó đạt tối đa hoặc khi bạn thay đổi thông lượng.