2011-01-20 23 views
7

Tôi có cơ sở dữ liệu MS SQL được sử dụng để thu thập số liệu thống kê băng thông. Chúng tôi có bảng dữ liệu thô và để cải thiện tốc độ báo cáo ở các cấp độ phân tích khác nhau, chúng tôi tổng hợp và cuộn dữ liệu theo giờ, hàng ngày và hàng tuần để phân tách các bảng.Cơ sở dữ liệu NoSQL - ứng cử viên tốt cho xử lý/tổng hợp và cuộn lên nhật ký?

Cơ sở dữ liệu NoSQL như Mongo hoặc Raven có phải là ứng cử viên tốt cho loại ứng dụng này không?

Trả lời

16

giải pháp NoSQL khác nhau giải quyết vấn đề khác nhau cho các mục đích khác nhau - vì vậy trước hết là điều tốt nhất để làm là nhìn vào vấn đề của bạn và phá vỡ nó xuống

  • Bạn đang viết nặng nề để lưu trữ, do đó tốc độ ghi là quan trọng đối với bạn
  • Bạn muốn thực hiện các thao tác tổng hợp trên dữ liệu đó và có kết quả dễ dàng truy vấn được
  • Tốc độ đọc không quan trọng bằng âm thanh của mọi thứ, ít nhất không phải trong "ứng dụng web phải thực sự đáp ứng cho hàng triệu pe ople" loại cách
  • Tôi không biết nếu bạn cần truy vấn năng động hay không

Hãy nhìn vào Couch, Mongo và Raven ở một mức độ rất cao, cách tổng quát

Raven

  • nhanh viết
  • truy vấn nhanh (cuối cùng nhất quán, tính toán trước, tập hợp thông qua bản đồ/giảm)
  • .210
  • động truy vấn có thể, nhưng không thực sự phù hợp với trường hợp sử dụng của bạn, như bạn đang có khả năng nhất sẽ được truy vấn theo ngày vv

Mongo

  • blindingly nhanh ghi (Theo ý kiến ​​của tôi nguy hiểm, vì mất điện có nghĩa là mất dữ liệu ;-))
  • Đọc chậm (tương đối), tổng hợp qua bản đồ/giảm, không được tính toán trước
  • Truy vấn động chỉ là what_you_do, nhưng bạn có thể phải xác định chỉ mục trên các cột của bạn nếu bạn muốn bất kỳ loại hiệu suất trên loại dữ liệu này

Couch

  • nhanh viết
  • Fast-ish đọc (Pre-tính, nhưng được cập nhật chỉ khi bạn đọc (IIRC)
  • Không thể truy vấn động, tất cả được xác định trước thông qua chức năng bản đồ hoặc bản đồ/giảm

Vì vậy, về cơ bản - bạn có cần truy vấn động trên loại dữ liệu này không? Tốc độ đọc có cực kỳ quan trọng với bạn không? Nếu bạn cần truy vấn động thì bạn sẽ muốn Raven hoặc Mongo (Đối với loại điều này Couch có lẽ không phải là những gì bạn đang tìm kiếm anyway).

FWIW, trường hợp sử dụng duy nhất của Mongo trong quan điểm của tôi LÀ để đăng nhập, vì vậy bạn có thể có một anwer ở đó.

+0

câu trả lời hay hỏi yêu cầu trước khi chọn :) – stack72

+0

@Rob: Tôi hiểu rằng các truy vấn CouchDB không được tính toán trước, chúng được tính toán theo nhu cầu và sau đó được lưu vào bộ nhớ cache. Ngoài ra, +1. – skaffman

+0

Đó không phải là điều tôi đã nói sao? Đó là hiệu quả trước tính toán - truy vấn bổ sung sẽ kết hợp các kết quả cho đến nay với bất kỳ dữ liệu thay đổi "nhưng chỉ cập nhật khi bạn đọc" –

Các vấn đề liên quan