"Hướng theo tài liệu" so với Khóa-Giá trị có nghĩa là gì khi nói về MongoDB và Cassandra?


Câu trả lời:


153

Một cửa hàng trọng điểm có giá trị cung cấp các mô hình dữ liệu đơn giản nhất có thể, và là chính xác những gì tên cho thấy: đó là một hệ thống lưu trữ mà các cửa hàng giá trị được lập chỉ mục bởi một chìa khóa. Bạn bị giới hạn truy vấn theo khóa và các giá trị không rõ ràng , cửa hàng không biết gì cả về chúng. Điều này cho phép các thao tác đọc và ghi rất nhanh (truy cập đĩa đơn giản) và tôi thấy mô hình này là một loại bộ nhớ đệm không bay hơi (tức là rất phù hợp nếu bạn cần truy cập nhanh bằng phím để dữ liệu tồn tại lâu dài).

Một cơ sở dữ liệu tài liệu theo định hướng mở rộng mô hình trước đó và các giá trị được lưu trữ trong một cấu trúc định dạng (một tài liệu, vì thế mà tên) mà cơ sở dữ liệu có thể hiểu được. Ví dụ, một tài liệu có thể là một bài đăng trên blog các nhận xét thẻ được lưu trữ theo cách không chuẩn hóa. Vì dữ liệu minh bạch , cửa hàng có thể thực hiện nhiều công việc hơn (như lập chỉ mục các trường của tài liệu) và bạn không bị giới hạn truy vấn theo khóa. Như tôi đã gợi ý, những cơ sở dữ liệu như vậy cho phép tìm nạp dữ liệu của toàn bộ trang với một truy vấn duy nhất và rất phù hợp cho các ứng dụng hướng nội dung (đó là lý do tại sao các trang web lớn như Facebook hoặc Amazon lại thích chúng).

Các loại cơ sở dữ liệu NoSQL bao gồm các cửa hàng hướng cột , cơ sở dữ liệu đồ thị và thậm chí cả cơ sở dữ liệu đối tượng . Nhưng điều này vượt ra ngoài câu hỏi.

Xem thêm


2
Các cửa hàng khóa-giá trị không nhất thiết phải được thực hiện với quyền truy cập đĩa và việc gọi chúng là không bay hơi là không chính xác trong một số triển khai. Bạn có thể tạo một kho lưu trữ khóa-giá trị trong bộ nhớ mà không cần ghi qua hoặc ghi ngược vào phương tiện lưu trữ không bay hơi. Việc gọi dữ liệu là tồn tại lâu cũng gây hiểu lầm vì thời gian tồn tại của dữ liệu không liên quan gì đến cách bạn truy xuất dữ liệu.
Anthony

17

Chà, tôi đã tự mình điều tra NoSQL trong tháng qua. Tôi nghĩ rằng nó thường có thể được phát biểu một cái gì đó như

  • Cửa hàng KV không biết nội dung giá trị thực sự được lưu trữ cho một khóa
  • Dựa trên tài liệu cho phép bạn xác định các chỉ mục phụ trong nội dung giá trị, vì db biết cấu trúc tài liệu (ví dụ: thẻ của một bài đăng trên blog).
  • Mỗi giải pháp NoSQL đều có các tính năng cụ thể cần được xem xét, chẳng hạn như
    • Các kiểu dữ liệu đặc biệt trong cửa hàng KV (ví dụ: đặt với pop / push trái / phải như trong redis)
    • cụm tăng / giảm quy mô dễ dàng như riak nói là có (Tôi chưa thử ... chưa)
    • kho dữ liệu có thể cắm được như trong Voldemort
    • cấu hình web tích hợp và hỗ trợ ứng dụng web như trong CouchDB / couchapp

2

Cơ sở dữ liệu hướng tài liệu, hay kho lưu trữ tài liệu, dùng để lưu trữ, truy xuất và quản lý thông tin hướng tài liệu, là dữ liệu bán cấu trúc. Kho khóa-giá trị là sự kế thừa của cơ sở dữ liệu Hướng tài liệu. Sự khác biệt nằm ở cách dữ liệu được xử lý; trong kho khóa-giá trị, dữ liệu được coi là không rõ ràng đối với cơ sở dữ liệu, trong khi hệ thống hướng tài liệu dựa vào cấu trúc bên trong tài liệu để trích xuất siêu dữ liệu mà công cụ cơ sở dữ liệu sử dụng để tối ưu hóa hơn nữa.

Nếu chúng ta đề cập đến sự khác biệt giữa MOngoDb và Cassandra. MongoDB hoạt động giống như một cơ sở dữ liệu quan hệ. Mô hình dữ liệu của nó bao gồm một cơ sở dữ liệu ở cấp cao nhất, sau đó là các tập hợp giống như các bảng trong MySQL (ví dụ) và sau đó là các tài liệu được chứa trong tập hợp, như các hàng trong MySQL. Mỗi tài liệu có một trường và một giá trị tương tự như các cột và giá trị trong MySQL. Các trường có thể là khóa / giá trị đơn giản, ví dụ: {'name': 'David Mytton'} nhưng chúng cũng có thể chứa các tài liệu khác, ví dụ: {'name': {'first': David, 'last': 'Mytton'}}. Trong tài liệu Cassandra được gọi là "cột" thực sự chỉ là một khóa và giá trị duy nhất. ví dụ: {'key': 'name', 'value': 'David Mytton'}. Ngoài ra còn có một trường dấu thời gian để sao chép nội bộ và nhất quán. Giá trị có thể là một giá trị đơn lẻ nhưng cũng có thể chứa một “cột” khác. Sau đó, các cột này tồn tại trong các họ cột sắp xếp dữ liệu dựa trên một giá trị cụ thể trong các cột, được tham chiếu bằng một khóa.

Tuy nhiên, ở cấp cao nhất có một không gian khóa, tương tự như cơ sở dữ liệu MongoDB.

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.