2012-04-02 30 views
6

Lưu ý: (Tôi đã điều tra CouchDB đôi khi và cần một số trải nghiệm thực tế).Để CouchDB hay không?

Tôi có một cơ sở dữ liệu Oracle cho một dịch vụ theo dõi hạm đội và một số trạng thái tại đây là:

  1. 100 GB db
  2. lớn chèn/giây (tin nhắn đã nhận của chúng tôi)
  3. sao chép đáng tin cậy (qua suối Oracle trên 4 máy chủ)
  4. Truy vấn phức tạp nặng.

Bây giờ câu hỏi: CouchDB có thể được sử dụng trong trường hợp này không?

Lưu ý: Tại sao tôi nghĩ đến CouchDB?

  1. Tôi đã đọc về khả năng mở rộng theo chiều ngang rất tốt. Điều đó rất quan trọng trong trường hợp của chúng tôi.
  2. Vì lược đồ miễn phí, chúng tôi có thể xử lý các thay đổi chính xác hơn vì chúng tôi có nhiều thay đổi trong các bảng khác nhau và các thủ tục được lưu trữ.

Cảm ơn

Sửa I: tôi cần giao dịch quá. Nhưng tôi cũng có thể chịu đựng được các giải pháp khác. Và nếu có một chút chậm trễ trong nhân rộng, đó sẽ là không có vấn đề NẾU nó được đảm bảo.

+0

Bạn có cần giao dịch?Bạn có cần sao chép đồng bộ được đảm bảo không? – edze

+0

Cảm ơn bạn đã làm rõ. Vâng; Tôi cần giao dịch NHƯNG tôi có thể chịu đựng một số chậm trễ trong nhân rộng. –

+1

http://stackoverflow.com/questions/299723/can-i-do-transactions-and-locks-in-couchdb – edze

Trả lời

23

Bạn đang thưởng thức các tính năng sau với cơ sở dữ liệu của bạn:

  1. Sử dụng nó trong sản xuất
  2. Dữ liệu được tự nhiên quan hệ (liên quan đến chính nó)
  3. tỷ lệ chèn lớn (không lo ngại MVCC)
  4. Truy vấn phức tạp
  5. Giao dịch

Đây là tất cả các lý do không phải để chuyển sang CouchDB.

Tất nhiên, câu chuyện không đơn giản như vậy. Tôi nghĩ bạn đã khám phá ra điều mà nhiều người không bao giờ học được: các vấn đề phức tạp đòi hỏi các giải pháp phức tạp. Chúng tôi không thể thay thế cơ sở dữ liệu của chúng tôi một cách đơn giản và mất phần còn lại của tháng. Chắc chắn, CouchDB (và BigCouch) hỗ trợ mở rộng ngang tuyệt vời (và sao chép chéo trung tâm dữ liệu quá!) Nhưng chi phí sẽ được viết lại một ứng dụng sản xuất. Điều đó không đúng.

Vì vậy, CouchDB có thể mang lại lợi ích cho bạn ở đâu?

Tôi khuyên bạn nên bắt đầu tăng thêm ứng dụng của bạn với các ứng dụng CouchDB. Triển khai CouchDB, nhập dữ liệu của bạn vào nó, và xây dựng các ứng dụng không nhiệm vụ quan trọng. Xem nơi nó phù hợp nhất.

Đối với dự án của bạn, đó là những điểm mạnh CouchDB chính:

  1. Nó là một nhỏ, đơn giản công cụ — dễ dàng để bạn có thể thiết lập trên một máy trạm hoặc máy chủ
  2. Nó là một máy chủ web. Nó tích hợp rất cũng với cơ sở hạ tầng và chính sách bảo mật của bạn.
    • Ví dụ, nếu bạn có một chính sách linh hoạt, chỉ cần đặt nó lên trên LAN
    • của bạn Nếu bạn có một mạng nghiêm ngặt và chính sách tường lửa, bạn có thể thiết lập nó đằng sau một VPN, hoặc có chứng chỉ SSL của bạn
  3. với rằng bước thực hiện, đó là rất dễ dàng để truy cập ngay bây giờ. Chỉ cần thực hiện yêu cầu http hoặc http. Cho dù bạn đang nhập dữ liệu từ Oracle với một công cụ tùy chỉnh, hoặc sử dụng trình duyệt web của bạn , đó là tất cả giống nhau.
  4. Có! CouchDB cũng là một máy chủ ứng dụng! Ứng dụng này có ứng dụng quản trị tích hợp sẵn, để khám phá dữ liệu, thay đổi cấu hình, v.v. (như một phpmyadmin cài sẵn). Nhưng đối với bạn, giá trị sẽ là xây dựng các ứng dụng và báo cáo quản trị là đơn giản, HTML/Javascript/CSS đơn giản ứng dụng. Bạn có thể nhận được như ưa thích hoặc đơn giản như bạn muốn.
  5. Như dự án của bạn phát triển và trở nên có giá trị, bạn đang ở trong một vị trí tuyệt vời để phát triển, sử dụng nhân rộng
    • Hoặc mở rộng cốt lõi với cụm CouchDB lớn
    • Hoặc, sao chép dữ liệu và các ứng dụng của bạn vào trung tâm dữ liệu khác nhau, hoặc vào máy trạm cá nhân, hoặc điện thoại di động, vv (chiến lược sẽ được rõ ràng hơn khi thời gian đến.)

CouchDB cung cấp cho bạn một máy chủ web và web site đơn giản. Nó cung cấp cho bạn được xây dựng trong API dịch vụ web cho dữ liệu của bạn. Nó giúp bạn dễ dàng xây dựng các ứng dụng web. Do đó, CouchDB có vẻ lý tưởng cho mở rộng ứng dụng cốt lõi của bạn, chứ không phải thay thế nó.

+2

Cảm ơn rất nhiều! Đó là thông tin và có giá trị hơn tôi mong muốn! –

+0

Một lưu ý phụ: Chúng tôi vẫn đang tìm kiếm thay thế Oracle (Lý do chính là chi phí cao) với công nghệ nguồn mở (PostgreSQL hoặc MySQL có thể (?)). –

+2

Tôi đã nghe Jan Lehnardt (người đồng sáng lập Couchbase, người khởi xướng Apache CouchDB gốc) gọi PostgreSQL, "cơ sở dữ liệu * khác * tốt" :) – JasonSmith

0

Tôi không đồng ý với câu trả lời này ..

Tôi nghĩ CouchDB phù hợp với trường hợp sử dụng theo dõi đặc biệt cũng hạm đội, do tính chất phân phối của họ. Hơn nữa, bản chất không đáng tin cậy của các kết nối gprs được sử dụng để truyền dữ liệu vị trí, làm cho paradygm ngoại tuyến đầu tiên của couchapps đối tác hoàn hảo cho ứng dụng của bạn.

Để tải lên dữ liệu từ xe tải, tỷ lệ chèn có thể tận dụng lợi thế rất lớn từ việc sao chép couchdb và chèn hàng loạt, đặc biệt nếu được thực hiện trên s2 dựa trên couchdb hosting.

Đối tải dữ liệu vào xe tải, couchdb cung cấp lọc nhân rộng, cho phép mỗi xe tải chỉ có dữ liệu nó thực sự cần, thay vì toàn bộ cơ sở dữ liệu.

Về truy vấn phức tạp, cơ sở dữ liệu NoSQL là linh hoạt hơn và có thể thực hiện nhanh hơn nhiều so với cơ sở dữ liệu quan hệ .. Nó chỉ là vấn đề cơ cấu và truy vấn dữ liệu của bạn một cách hợp lý.