2012-10-31 41 views
7

Tôi đang tìm kiếm bất kỳ hệ thống NoSQL nào (tốt nhất là nguồn mở) hỗ trợ chức năng phân tích (AF) như Oracle/SQL Server/Postgres. Tôi không tìm thấy bất kỳ chức năng nào có sẵn. Tôi đã đọc một cái gì đó về Hive nhưng nó không có tính năng thực tế của AF (cửa sổ, giá trị first_last, ntiles, lag, chì và vv) chỉ là biểu đồ và ngram. Ngoài ra một số hệ thống NoSQL (ví dụ: Redis) hỗ trợ bản đồ/giảm, nhưng tôi không chắc chắn nếu AF có thể được thay thế bằng nó.NoSQL với chức năng phân tích

Tôi muốn so sánh hiệu suất để chọn hệ thống Postgres hoặc NoSQL.

Vì vậy, trong ngắn hạn:

  1. Tìm kiếm NoSQL hệ thống với AF
  2. Tôi có thể dựa trên bản đồ/giảm để thay thế AF? Là nó nhanh chóng, đáng tin cậy, dễ dàng để đi.

ps. Tôi đã cố gắng làm cho câu hỏi của tôi mang tính xây dựng hơn.

Trả lời

1

Một số chức năng sử dụng kiến ​​thức của tất cả dữ liệu hiện có khi nó liên quan đến một số tập hợp (avg, trung bình, độ lệch chuẩn) hoặc một số thứ tự (đầu tiên, cuối cùng).

Nếu bạn muốn một giải pháp NOSQL phân tán hỗ trợ AF ra khỏi hộp, hệ thống sẽ cần dựa vào một số chỉ mục và siêu dữ liệu tập trung để giữ thông tin về dữ liệu trong tất cả các nút, do đó có nút chính và có thể một điểm thất bại.

Bạn phải hỏi bạn mong đợi gì để hoàn thành việc sử dụng NoSQL. Bạn muốn bảng schemaless? Dữ liệu phân tán? Hiệu suất thô tốt hơn cho các truy vấn rất đơn giản?

Tùy thuộc vào nhu cầu của bạn, tôi thấy ba lựa chọn thay thế chính ở đây:

1 - sử dụng một NoSQL phân phối không có điểm duy nhất của thất bại (ví dụ: Cassandra) để lưu trữ dữ liệu của bạn và sử dụng bản đồ/giảm để xử lý dữ liệu và tạo ra kết quả cho hàm mong muốn (hầu như bất kỳ giải pháp NoSQL chính nào hỗ trợ Hadoop). Thông báo trước là các truy vấn bản đồ/giảm không phải là thời gian thực (có thể mất vài phút hoặc vài giờ để thực hiện truy vấn) và yêu cầu thiết lập và học tập thêm.

2 - sử dụng một RDBMS truyền thống có hỗ trợ nhiều máy chủ như MySQL Cluster

3 - sử dụng một NoSQL với master/slave topo có hỗ trợ ad-hoc và tập hợp các truy vấn như Mongo

Đối với câu hỏi thứ hai: có, bạn có thể dựa vào M/R để thay thế AF. Bạn có thể làm hầu hết mọi thứ với M/R.

+0

Bạn thực sự có thể tính toán trung bình trên kiến ​​trúc phân tán, nhưng để làm điều này, bạn cần phải lưu trữ trung bình cùng với số lượng. –

+0

@ Aurélien Thật vậy – lstern

+0

@ Hiện tại, vâng, bạn đã đúng. Tôi thích thú hơn khi tôi có thể dựa vào bản đồ/giảm để thay thế các chức năng phân tích tích hợp (tôi đề cập đến nó trong chương trình thứ hai) – ravnur

2

Khi bạn đã thực sự hiểu cách hoạt động của MapReduce, bạn có thể làm những điều tuyệt vời với một vài dòng mã.

Đây là một khóa học video đẹp:

http://code.google.com/intl/fr/edu/submissions/mapreduce-minilecture/listing.html

Yếu tố khó khăn thực sự sẽ diễn ra giữa các chức năng mà bạn có thể thực hiện với một MapReduce đơn và rằng những sẽ cần MapReduces xích. Hơn nữa, một số triển khai MapReduce tốt đẹp (như CouchDB) không cho phép bạn nối MapReduces (dễ dàng).

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