2012-02-22 59 views
8

Hiện tại, chúng tôi có một cửa hàng tài liệu lớn đang hoạt động ở mức 3 TB và tăng thêm 1 TB mỗi sáu tháng. Chúng hiện đang được lưu trữ trong một hệ thống tập tin cửa sổ mà đôi khi gây ra vấn đề về truy cập và truy xuất. Chúng tôi đang tìm cách khai thác cơ sở dữ liệu lưu trữ tài liệu dựa trên Haddop. Bạn có nên tiếp tục với Haddop không? Bất cứ ai có bất kỳ tiếp xúc với nhau? Điều gì có thể là những thách thức, rào cản công nghệ trong việc đạt được như vậy?Hadoop là cơ sở dữ liệu lưu trữ tài liệu

+0

Tôi tò mò về những lợi ích mà bạn thấy trong Hadoop cho việc sử dụng này. – Bill

+0

@Msdnexpert: loại chức năng nào bạn đang tìm kiếm? Bộ nhớ chia sẻ đơn giản? HDFS/Hadoop không phải là SAN. Chi tiết, xin vui lòng. –

+0

Có Im đang tìm cách tận dụng HDFS như một hệ thống lưu trữ có thể mở rộng phân tán. Điều đó có thể không? – Msdnexpert

Trả lời

10

Hadoop là nhiều hơn cho xử lý hàng loạt có quyền truy cập dữ liệu cao. Bạn nên xem xét một số hệ thống NoSQL, như cơ sở dữ liệu định hướng tài liệu. Khó trả lời mà không biết dữ liệu của bạn là như thế nào.

Quy tắc số một cho thiết kế NoSQL là xác định kịch bản truy vấn của bạn trước tiên. Một khi bạn thực sự hiểu cách bạn muốn truy vấn dữ liệu thì bạn có thể xem xét các giải pháp NoSQL khác nhau. Đơn vị phân phối mặc định là khóa. Vì vậy, bạn cần phải nhớ rằng bạn cần có khả năng tách dữ liệu giữa các nút của bạn một cách hiệu quả nếu không bạn sẽ kết thúc với một hệ thống có thể mở rộng theo chiều ngang với tất cả công việc vẫn đang được thực hiện trên một nút (mặc dù các truy vấn tốt hơn tùy thuộc vào từng trường hợp).

Bạn cũng cần suy nghĩ lại về định lý CAP, hầu hết các cơ sở dữ liệu NoSQL đều nhất quán (CP hoặc AP) trong khi DBMS quan hệ truyền thống là CA. Điều này sẽ tác động đến cách bạn xử lý dữ liệu và tạo ra một số thứ nhất định, ví dụ thế hệ khóa có thể trở nên phức tạp. Rõ ràng các tập tin trong một thư mục là một chút khác nhau.

Cũng nên nhớ hơn trong một số hệ thống như HBase không có khái niệm lập chỉ mục (tôi đang gussing bạn có thiết lập lập chỉ mục tệp trên cửa sổ tài liệu FS này). Tất cả các chỉ mục của bạn sẽ cần phải được xây dựng bởi logic ứng dụng của bạn và mọi bản cập nhật và các lần xóa sẽ cần được quản lý như vậy. Với Mongo bạn thực sự có thể tạo các chỉ mục trên các trường và truy vấn chúng một cách tương đối nhanh chóng, cũng có khả năng tích hợp Solr với Mongo. Bạn không chỉ cần truy vấn bằng ID trong Mongo như bạn làm trong HBase, đó là một họ cột (còn gọi là cơ sở dữ liệu kiểu Google BigTable), nơi bạn về cơ bản có cặp khóa-giá trị lồng nhau.

Vì vậy, một lần nữa, dữ liệu của bạn, thứ bạn muốn lưu trữ, cách bạn dự định lưu trữ và quan trọng nhất là cách bạn muốn truy cập dữ liệu đó. Dự án Lily trông rất hứa hẹn. Công việc tôi tham gia với chúng tôi lấy một lượng lớn dữ liệu từ trang web và lưu trữ, phân tích, phân tích, phân tích, phân tích, truyền, cập nhật, v.v. Chúng tôi không chỉ sử dụng một hệ thống mà nhiều phù hợp nhất với công việc trong tầm tay. Đối với quy trình này, chúng tôi sử dụng các hệ thống khác nhau ở các giai đoạn khác nhau vì nó cho phép chúng tôi truy cập nhanh nơi chúng tôi cần, cung cấp khả năng truyền và phân tích dữ liệu theo thời gian thực và quan trọng, theo dõi mọi thứ khi chúng tôi đi (như mất dữ liệu trong sản phẩm hệ thống là một việc lớn). Tôi đang sử dụng Hadoop, HBase, Hive, MongoDB, Solr, MySQL và thậm chí cả các tệp văn bản cũ tốt. Hãy nhớ rằng để sản xuất một hệ thống bằng cách sử dụng các kỹ thuật này là một chút khó khăn hơn so với cài đặt Oracle trên một máy chủ, một số bản phát hành không ổn định và bạn thực sự cần phải làm thử nghiệm của bạn đầu tiên.Vào cuối ngày, nó thực sự phụ thuộc vào mức độ kháng cự kinh doanh và bản chất nhiệm vụ quan trọng của hệ thống của bạn.

Một đường dẫn khác mà không ai đề cập đến là NewSQL - tức là RDBMS có thể mở rộng theo chiều ngang ... Có một số ít như MySQL cluster (tôi nghĩ) và VoltDB có thể phù hợp với nguyên nhân của bạn.Nhưng một lần nữa tùy thuộc vào dữ liệu của bạn (là các tập tin từ tài liệu hoặc tài liệu văn bản có thông tin về sản phẩm, hóa đơn hoặc công cụ hoặc một cái gì đó) ...

Một lần nữa hiểu được dữ liệu của bạn và mẫu truy cập, hệ thống NoSQL cũng không phải là Non-Rel và có phù hợp hơn với các tập dữ liệu phi quan hệ. Nếu dữ liệu của bạn vốn có quan hệ và bạn cần một số tính năng truy vấn SQL thực sự cần làm những thứ như sản phẩm Cartesian (hay còn gọi là join) thì bạn có thể tốt hơn khi gắn bó với Oracle và đầu tư một thời gian vào việc lập chỉ mục, sharding và hiệu chỉnh.

Lời khuyên của tôi sẽ thực sự phát xung quanh với một vài hệ thống khác nhau. Nhìn vào;

MongoDB - Tài liệu - CP

CouchDB - Tài liệu - AP

Cassandra - Cột Family - sẵn & phân vùng chịu (AP)

VoltDB - Một thực sự sản phẩm tìm kiếm tốt, cơ sở dữ liệu quan hệ được phân phối và có thể hoạt động cho trường hợp của bạn (có thể là một mo dễ dàng hơn đã). Họ cũng dường như cung cấp hỗ trợ doanh nghiệp mà có thể phù hợp hơn cho một env sản (ví dụ: cung cấp cho người dùng doanh nghiệp một cảm giác an toàn).

Bất kỳ cách nào là 2c của tôi. Chơi xung quanh với các hệ thống thực sự là cách duy nhất bạn sẽ tìm hiểu những gì thực sự làm việc cho trường hợp của bạn.

+0

Câu trả lời tuyệt vời bạn có thể cung cấp cho bất kỳ resourse cho cơ sở dữ liệu như triển vọng kỹ thuật dữ liệu cho begginner làm thế nào một số có thể tìm hiểu những điều này? –

0

HDFS không đúng là giải pháp phù hợp. Nó được tối ưu hóa để xử lý dữ liệu parralel lớn và không phải là hệ thống tệp mục đích chung. Cụ thể là nó có những hạn chế sau đây khiến nó trở thành lựa chọn tồi tệ:
a) Nó nhạy cảm với số lượng tệp. Giới hạn thực tế nên là khoảng hàng chục triệu tệp.
b) Các tệp chỉ đọc và chỉ có thể được thêm vào, nhưng không được chỉnh sửa. Nó là tốt cho xử lý dữ liệu phân tích nhưng có thể không phù hợp với nhu cầu của bạn.
c) Có một điểm lỗi - nút tên. Vì vậy, độ tin cậy của nó bị hạn chế.

Nếu bạn cần hệ thống có khả năng mở rộng tương đương, nhưng không nhạy cảm với số lượng tệp tôi sẽ đề xuất Swift của OpenStack. Nó cũng không có SPOF.

+0

a) là chính xác, b) có thể được mô phỏng bằng cách xóa theo sau là ghi, c) không còn giữ: https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop- hdfs/HDFSHighAvailabilityWithNFS.html. – Matt

0

Đề xuất của tôi là bạn có thể mua bộ nhớ NAS. Có thể được EMS isilon loại sản phẩm bạn có thể xem xét.

Hadoop HDFS không dành cho lưu trữ tệp. Đó là lưu trữ để xử lý dữ liệu (đối với báo cáo, phân tích ..)

NAS là để chia sẻ tập tin

SAN được nhiều hơn cho cơ sở dữ liệu

http://www.slideshare.net/jabramo/emc-sanoverviewpresentation

Tuyên bố: Tôi không phải là một EMC người, vì vậy bạn có thể xem xét bất kỳ sản phẩm nào. Tôi chỉ sử dụng EMC để tham khảo.

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