2010-07-27 14 views
7

Tôi đã rối tung với bộ dữ liệu Khảo sát Ordnance Code-Point Open của mã bưu điện/tọa độ của Vương quốc Anh. Kể từ khi Couch.io được cung cấp một trường hợp CouchDB được lưu trữ miễn phí, tôi nghĩ rằng tôi muốn đưa dữ liệu địa lý của tôi vào một trong số đó, học một chút về CouchDB trong quá trình này. Ý tưởng là vì CouchDB được cho là có khả năng xử lý các tập dữ liệu lớn (dữ liệu mã bưu chính khoảng 1,7 triệu bản ghi) và hoạt động nguyên gốc với REST/JSON, nó sẽ gắn liền với jQuery phía máy khách để sử dụng với Ứng dụng Google Maps. Mục tiêu ban đầu của tôi đơn giản là có thể thực hiện cuộc gọi AJAX với mã bưu điện làm tham số, lấy lại một đối tượng JSON có thuộc tính lat/lon mà tôi có thể sử dụng trong tập lệnh của mình (hiển thị điểm đánh dấu cho mã bưu điện đó).Loại ứng dụng nào sẽ CouchDB hữu ích nhất/trình diễn cho?

Tôi đã thực hiện thành công, nhưng đến từ một nền tảng quan hệ DB nó phức tạp hơn nhiều so với tôi nghĩ; khi tôi đọc thêm về CouchDB và chơi với nó một chút, tôi có ấn tượng rằng nó sẽ không thực sự là công cụ thích hợp cho công việc này, tôi có thực sự sử dụng nó cho một dự án thực tế hay không.

Tôi có nghĩ rằng các truy vấn động là một điểm yếu của CouchDB không? Nó có nhằm mục đích trả lại các lượt xem lớn mà không thay đổi thường xuyên, từ các tập dữ liệu lớn không? Điều gì có thể là một số ví dụ về việc sử dụng 'tốt' và 'xấu' của CouchDB, về mặt sức mạnh của nó?

Trả lời

5

Tôi là người lưu trữ chính của Couchio. Rất vui khi bạn đang tận hưởng CouchDB.

Cảm giác của tôi về cơ bản là các cơ sở dữ liệu quan hệ sẽ tốt hơn ở các truy vấn liên tục, thay đổi một lần từ các tập dữ liệu lớn. Nó vẫn mất mãi mãi để khuấy động tất cả dữ liệu đó. Cả SQL lẫn NoSQL là một viên đạn bạc ở đó. Tuy nhiên, nói chung, các cơ sở dữ liệu NoSQL là tốt hơn nếu bạn đã biết những câu hỏi mà bạn sẽ hỏi. Nói cách khác, đó không phải là câu hỏi về số lượng dữ liệu thay đổi, nhưng số lượng thay đổi truy vấn là bao nhiêu.

Đó là lý thuyết. Đối với dự án cụ thể của bạn, CouchDB có phù hợp không? Cảm giác của tôi là, không có gì sai khi tạo ra nhiều chỉ mục trên tập dữ liệu cơ bản. Lợi ích của các truy vấn chỉ mục là, các truy vấn diễn ra rất nhanh. CouchDB nói riêng chỉ cần tái lập chỉ mục dữ liệu mới, ngay cả đối với các truy vấn như trung bình, hoặc kiểm tra XOR.

Vì vậy, ngay cả khi bạn có hàng trăm loại truy vấn khác nhau mà bạn có thể thực hiện, nếu bạn đã biết những truy vấn đó là gì, hãy viết chúng xuống. Tuy nhiên, nếu bạn sẽ không bao giờ ngừng tạo ra các truy vấn mới, CouchDB sẽ có một thời gian khó khăn để duy trì.

+0

Cảm ơn vì điều đó, nó sao lưu những gì tôi nghĩ (mặc dù tôi có lẽ không nói rõ ràng). –

+0

Giả sử bạn có trình ghi nhật ký cho tài nguyên. Các tài nguyên được truy cập bởi nhiều người dùng mỗi giây. Trình ghi nhật ký cần tính toán số lượng người dùng hiện tại truy cập vào tài nguyên và thời gian trung bình mà tài nguyên đang được tất cả người dùng sử dụng. Hiện tại MySQL không thể theo kịp với số lượng ghi. CouchDB sẽ là một giải pháp tốt hơn? – Cory

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