Làm thế nào để bạn gọi mô hình dữ liệu của DynamoDB và Cassanda?


9

Các bài viết DynamoDB Wikipedia nói rằng DynamoDB là một " chìa khóa-giá trị " cơ sở dữ liệu. Tuy nhiên, việc gọi nó là cơ sở dữ liệu "khóa-giá trị" hoàn toàn bỏ lỡ một tính năng cực kỳ cơ bản của DynamoDB, đó là khóa sắp xếp : Khóa có hai phần (khóa phân vùng và khóa sắp xếp) và các mục có cùng khóa phân vùng có thể được truy xuất một cách hiệu quả được sắp xếp cùng nhau bằng phím sắp xếp.

Cassandra cũng có chính xác tính năng sắp xếp các mục bên trong phân vùng (mà nó gọi là "khóa phân cụm") và bài viết trên Cassandra Wikipedia sử dụng thuật ngữ lưu trữ cột rộng để mô tả nó. Tuy nhiên, mặc dù thuật ngữ "cột rộng" này tốt hơn "khóa-giá trị", nó vẫn không phù hợp vì nó mô tả tình huống chung hơn khi một mục có thể có một số lượng rất lớn các cột không liên quan - không nhất thiết phải là một danh sách riêng biệt được sắp xếp mặt hàng.

Vì vậy, câu hỏi của tôi là liệu có một thuật ngữ phù hợp hơn có thể mô tả mô hình dữ liệu của cơ sở dữ liệu như DynamoDB và Cassandra - cơ sở dữ liệu giống như một kho lưu trữ khóa-giá trị có thể truy xuất các mục cho các khóa riêng lẻ một cách hiệu quả, nhưng cũng có thể truy xuất các mục được sắp xếp theo khóa hoặc chỉ là một phần của nó ( khóa sắp xếp của DynamoDB hoặc khóa phân cụm của Cassandra ).


2
Tôi tìm thấy "Khóa-Khóa-Giá trị" để nắm bắt bản chất Phân vùng / Đặt hàng / Giá trị của mô hình này
Tzach Livyatan

Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì nó dường như không liên quan đến tiền mã hóa.
Charles

5
Tại sao nó cần liên quan đến "mã hóa"? Nó không có thẻ C ++ hoặc Java hoặc bất kỳ ngôn ngữ lập trình nào khác, vì vậy nó không phải là về mã hóa trong bất kỳ ngôn ngữ lập trình nào. Nó có Cassandra et al. thẻ - chỉ ra rằng đó là về phần mềm đó . Có một trang web stackexchange tốt hơn mà bạn nghĩ rằng bộ câu hỏi tốt hơn về phần mềm? Và lưu ý rằng câu hỏi này đã có điểm +2. Đó rõ ràng không phải là một câu hỏi tồi.
Nadav Har'El

2
Đề xuất của tôi "Khóa-Sắp xếp-Giá trị"
TomerSan

Câu trả lời:


3

Trước khi CQL được giới thiệu, Cassandra tuân thủ chặt chẽ hơn mô hình dữ liệu lưu trữ cột rộng, trong đó bạn chỉ có các hàng được xác định bởi một khóa hàng và chứa các cột khóa / giá trị được sắp xếp. Với sự ra đời của CQL, các hàng được gọi là phân vùng và cột tùy ý có thể được nhóm thành các hàng logic thông qua các khóa phân cụm.

Ngay cả cho đến khi Cassandra 3.0, CQL chỉ đơn giản là một bản tóm tắt trên mô hình dữ liệu tiết kiệm ban đầu và không có khái niệm về các hàng CQL trong công cụ lưu trữ. Chúng chỉ là một tập hợp các cột được sắp xếp với khóa tổng hợp bao gồm các giá trị được nối của các khóa phân cụm. Thêm chi tiết được đưa ra trong bài viết này . Bây giờ có hỗ trợ riêng cho CQL trong công cụ lưu trữ, cho phép các mô hình dữ liệu CQL được lưu trữ hiệu quả hơn.

Tuy nhiên, nếu bạn nghĩ về một hàng CQL như một nhóm các cột hợp lý trong cùng một phân vùng, Cassandra vẫn có thể được coi là một cửa hàng cột rộng. Trong mọi trường hợp, theo hiểu biết của tôi, một thuật ngữ được thiết lập tốt khác để mô tả loại cơ sở dữ liệu này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.