2010-03-23 30 views
16

Cơ sở dữ liệu đối tượng như MongoDB và db4o gần đây nhận được nhiều công khai. Mọi người chơi với họ dường như thích nó. Tôi đoán rằng họ đang xử lý khoảng 640K dữ liệu trong các ứng dụng mẫu của họ.Có ai đã sử dụng một cơ sở dữ liệu đối tượng với một lượng lớn dữ liệu không?

Có ai đã cố gắng sử dụng cơ sở dữ liệu đối tượng với số lượng lớn dữ liệu (giả sử, 50GB trở lên) không? Bạn có thể vẫn thực hiện các truy vấn phức tạp đối với nó (như từ màn hình tìm kiếm) không? Nó so sánh với cơ sở dữ liệu quan hệ thông thường của bạn như thế nào?

Tôi chỉ tò mò thôi. Tôi muốn lấy cơ sở dữ liệu đối tượng, nhưng tôi cần phải biết liệu nó có hoạt động trên một thứ gì đó hơn là một ứng dụng mẫu hay không.

+1

tbh với ORMs như Hibernate làm một công việc tuyệt vời như vậy trừu tượng hóa các loại điều này đi tôi thực sự không nhìn thấy điểm. –

+3

MongoDB không thực sự cạnh tranh với NHibernate và cơ sở dữ liệu quan hệ trong hầu hết các trường hợp. Xem danh sách ca sử dụng mà tôi đã liên kết. Cơ sở dữ liệu quan hệ thực sự khủng khiếp đối với một số tình huống và các cơ sở dữ liệu thay thế này là các giải pháp tốt hơn. OP có thể không chính xác trong việc sử dụng cơ sở dữ liệu đối tượng thuật ngữ ở đây. –

+8

640K là đủ cho mọi người. –

Trả lời

4

MongoDB quyền hạn SourceForge, The New York Times, và một số cơ sở dữ liệu lớn khác ...

4

Bạn nên đọc MongoDB use cases. Những người chỉ chơi với công nghệ thường chỉ xem xét cách thức hoạt động của nó và không phải là lúc họ có thể hiểu được những hạn chế. Đối với đúng loại tập dữ liệu và mẫu truy cập 50GB thì không có gì cho MongoDB chạy trên phần cứng phù hợp.

Các hệ thống phi quan hệ này xem xét các sự đánh đổi mà RDBM đã thực hiện và thay đổi chúng một chút. Tính nhất quán không quan trọng như những thứ khác trong một số tình huống, vì vậy các giải pháp này cho phép bạn trao đổi điều đó cho một thứ khác. Thương mại-off vẫn còn tương đối nhỏ ms hoặc có thể giây trong một số tình huống.

Điều đáng đọc về số CAP theorem cũng vậy.

2

Dưới đây là một số tiêu chuẩn về db4o:

http://www.db4o.com/about/productinformation/benchmarks/

Tôi nghĩ rằng nó cuối cùng phụ thuộc vào rất nhiều yếu tố, bao gồm cả sự phức tạp của dữ liệu, nhưng db4o dường như chắc chắn treo với tốt nhất của họ.

4

Tôi đã xem xét việc di chuyển API mà tôi đã chắc chắn với ứng dụng ngăn xếp chồng tràn mà tôi đã viết một thời gian quay lại MongoDB từ nơi nó hiện đang nằm trong cơ sở dữ liệu MySQL. Ở dạng thô, bãi chứa SO CC nằm trong phạm vi nhiều gigabyte và cách tôi xây dựng các tài liệu cho MongoDB dẫn đến một cơ sở dữ liệu 10G +. Có thể lập luận rằng tôi không xây dựng tài liệu tốt nhưng tôi không muốn tốn nhiều thời gian để làm điều này.

Một trong những điều đầu tiên bạn sẽ gặp phải nếu bạn bắt đầu xuống con đường này là thiếu sự hỗ trợ 32 bit. Tất nhiên mọi thứ đang chuyển sang 64 bit bây giờ nhưng chỉ cần một cái gì đó để ghi nhớ. Tôi không nghĩ rằng bất kỳ cơ sở dữ liệu tài liệu chính nào hỗ trợ phân trang ở chế độ 32 bit và điều đó có thể hiểu được từ quan điểm phức tạp của mã.

Để kiểm tra những gì tôi muốn làm, tôi đã sử dụng nút EC2 64 bit. Điều thứ hai tôi gặp phải là mặc dù chiếc máy này có 7G bộ nhớ khi bộ nhớ vật lý đã cạn kiệt mọi thứ từ nhanh đến không quá nhanh. Tôi không chắc tôi đã không có một cái gì đó thiết lập không chính xác vào thời điểm này bởi vì không hỗ trợ của hệ thống 32 bit giết chết những gì tôi muốn sử dụng nó cho nhưng tôi vẫn muốn nhìn thấy nó trông như thế nào. Việc nạp cùng một dữ liệu vào MySQL mất khoảng 2 phút trên một hộp ít mạnh hơn nhiều nhưng kịch bản tôi sử dụng để tải hai cơ sở dữ liệu hoạt động khác nhau vì vậy tôi không thể so sánh tốt. Chỉ chạy một tập hợp con của dữ liệu vào MongoDB nhanh hơn rất nhiều miễn là nó dẫn đến một cơ sở dữ liệu nhỏ hơn 7G.

Tôi nghĩ rằng tôi lấy đi nó là cơ sở dữ liệu lớn sẽ hoạt động tốt nhưng bạn có thể phải suy nghĩ về cách dữ liệu được cấu trúc nhiều hơn so với cơ sở dữ liệu truyền thống nếu bạn muốn duy trì hiệu suất cao.Tôi thấy rất nhiều người sử dụng MongoDB để đăng nhập và tôi có thể tưởng tượng rằng rất nhiều cơ sở dữ liệu khổng lồ nhưng đồng thời họ có thể không thực hiện nhiều truy cập ngẫu nhiên để che giấu hiệu suất của các ứng dụng truyền thống .

Tài nguyên gần đây có thể hữu ích là visual guide to nosql systems. Có rất nhiều lựa chọn phong phú bên ngoài MongoDB. Tôi đã sử dụng Redis mặc dù không phải là với một cơ sở dữ liệu lớn.

+1

Xin lỗi bạn đã có một trải nghiệm khốn khổ như vậy. Nếu bạn vẫn quan tâm, bạn có thể đăng những gì bạn đang làm trên http://groups.google.com/group/mongodb-user/ và có thể chúng tôi có thể trợ giúp? Nhập khẩu phải rất nhanh và các truy vấn có vẻ như bạn có thể chỉ cần một chỉ mục ở đâu đó hoặc một cái gì đó. – kristina

+0

Không khốn khổ chút nào. Tôi sẽ thêm rằng ý định của tôi là tạo cơ sở dữ liệu MongoDB "chính xác". Tôi đã không cố gắng để chỉ làm cho tải phù hợp với cơ sở dữ liệu mysql tôi có nhưng thay vì xây dựng một tài liệu đầy đủ đại diện cho mỗi câu hỏi, câu trả lời, bình chọn và ý kiến. Tất cả những thứ đó đều không được chuẩn hóa trong bãi chứa và tôi nghĩ rằng một phần của vấn đề là kéo chúng lại với nhau. Bất kể, giới hạn 32 bit là vấn đề thực sự duy nhất của tôi. Tôi chắc rằng tôi có thể dành nhiều thời gian hơn để nó hoạt động tốt nếu tôi có thể biện minh bằng cách sử dụng nó. – carson

11

Một người nào đó vừa tham gia sản xuất với 12 terabyte dữ liệu trong MongoDB. Lớn nhất tôi biết trước đó là 1 TB. Rất nhiều người đang lưu trữ một lượng lớn dữ liệu ở Mongo.

Điều quan trọng cần nhớ là Mongo hoạt động rất giống cơ sở dữ liệu quan hệ: bạn cần các chỉ mục phù hợp để có hiệu suất tốt. Bạn có thể sử dụng giải thích() trên các truy vấn và liên hệ the user list để được trợ giúp về điều này.

7

Khi tôi bắt đầu db4o vào năm 2000, tôi không có cơ sở dữ liệu lớn trong tâm trí. Mục tiêu chính là lưu trữ bất kỳ đối tượng phức tạp nào chỉ đơn giản bằng một dòng mã và làm điều đó tốt và nhanh chóng với mức tiêu thụ ressource thấp, vì vậy nó có thể chạy được nhúng và trên thiết bị di động. Theo thời gian, chúng tôi đã có nhiều người dùng đã sử dụng db4o cho các ứng dụng web và với số lượng dữ liệu khá lớn, gần với kích thước tệp cơ sở dữ liệu tối đa là 256GB (với kích thước khối được định cấu hình là 127 byte). Vì vậy, để trả lời câu hỏi của bạn: Có, db4o sẽ làm việc với 50GB, nhưng bạn không nên sử dụng nó cho terabyte dữ liệu (trừ khi bạn có thể chia nhỏ dữ liệu của mình một cách độc đáo trên nhiều cơ sở dữ liệu db4o, chi phí thiết lập cho một cơ sở dữ liệu là không đáng kể, bạn chỉ có thể gọi #openFile())

db4o được mua lại bởi Versant trong năm 2008, bởi vì nó capabilites (nhúng, thấp ressource tiêu thụ, trọng lượng nhẹ) làm cho nó một sản phẩm miễn phí tuyệt vời để cơ sở dữ liệu đối tượng cao cấp Versant của VOD. VOD quy mô cho một lượng lớn dữ liệu và nó làm tốt hơn rất nhiều so với cơ sở dữ liệu quan hệ. Tôi nghĩ rằng nó sẽ chỉ cười khúc khích hơn 50GB.

1

Có lẽ đáng nói đến.

Nhiệm vụ Planck của Cơ quan Vũ trụ Châu Âu đang chạy trên Cơ sở dữ liệu Đối tượng Versant. http://sci.esa.int/science-e/www/object/index.cfm?fobjectid=46951

Đây là một vệ tinh với 74 cảm biến trên bo mạch được khởi chạy vào năm ngoái, là bản đồ quang phổ cơ sở hạ tầng của vũ trụ và lưu trữ thông tin trong mô hình phân khúc bản đồ. Nó đã nhận được một tấn hype những ngày này vì nó sản xuất một số hình ảnh tuyệt vời nhất từng thấy của vũ trụ.

Dù sao, nó đã tạo ra 25T thông tin được lưu trữ trong Versant và được nhân rộng trên 3 châu lục. Khi nhiệm vụ hoàn thành vào năm tới, tổng số 50T

Có thể đáng chú ý, cơ sở dữ liệu đối tượng có xu hướng nhỏ hơn nhiều để giữ cùng thông tin. Đó là bởi vì chúng thực sự được chuẩn hóa, không có sự sao chép dữ liệu cho các phép nối, không có không gian cột bị lãng phí trống và vài chỉ mục thay vì 100 của chúng. Bạn có thể tìm thấy thông tin công khai về thử nghiệm ESA đã làm để xem xét lưu trữ trong định dạng cơ sở dữ liệu quan hệ đa cột -vs- sử dụng một mô hình đối tượng thích hợp và lưu trữ trong cơ sở dữ liệu đối tượng Versant. Họ đã tìm thấy họ có thể tiết kiệm 75% không gian đĩa bằng cách sử dụng Versant.

Đây là việc thực hiện: http://www.planck.fr/Piodoc/PIOlib_Overview_V1.0.pdf

Ở đây họ nói về 3T chuyến bay từ 12T tìm thấy trong các thử nghiệm http://newscenter.lbl.gov/feature-stories/2008/12/10/cosmic-data/

Cũng ... có tiêu chuẩn mà hiển thị Versant bậc độ lớn nhanh hơn trên bên phân tích của nhiệm vụ.

Chúc mừng, -Robert

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