2010-05-05 17 views
13

Cơ sở dữ liệu phù hợp để làm gì? Tôi đặc biệt quan tâm đến trải nghiệm của bạn với các hệ thống NoSQL không quan hệ. Chúng có tốt cho loại sử dụng này không, hệ thống nào bạn đã sử dụng và muốn giới thiệu, hoặc tôi nên đi với cơ sở dữ liệu quan hệ bình thường (DB2)?Giải pháp cơ sở dữ liệu NoSQL và phi quan hệ tốt cho cơ sở dữ liệu kiểm toán/ghi nhật ký là gì

Tôi cần thu thập thông tin loại đường mòn/ghi nhật ký kiểm tra từ nhiều nguồn đến máy chủ tập trung nơi tôi có thể tạo báo cáo hiệu quả và kiểm tra những gì đang xảy ra trong hệ thống.

Điển hình là một sự kiện kiểm toán/ghi sẽ bao gồm luôn của một số lĩnh vực bắt buộc, ví dụ

  • toàn cầu độc đáo id (một số cách tạo ra bởi chương trình mà tạo ra sự kiện này)
  • timestamp
  • loại sự kiện (tức là người dùng đã đăng nhập, lỗi đã xảy ra, vv)
  • một số thông tin về nguồn (server1, server2)

Ngoài ra, sự kiện có thể chứa các cặp khóa-giá trị 0-N, trong đó giá trị có thể lên đến vài kilobyte văn bản.

  • Nó phải chạy trên máy chủ Linux
  • Nó sẽ làm việc với số lượng cao của dữ liệu (100GB chẳng hạn)
  • nó nên hỗ trợ một số loại hiệu quả tìm kiếm đầy đủ văn bản
  • Nó sẽ cho phép việc đọc đồng và viết
  • Sẽ linh hoạt khi thêm các loại sự kiện mới và thêm/xóa cặp khóa-giá trị vào sự kiện mới. Linh hoạt = không cần thay đổi lược đồ cơ sở dữ liệu, ứng dụng tạo các sự kiện chỉ có thể thêm các loại sự kiện mới/trường mới nếu cần.
  • sẽ hiệu quả khi truy vấn cơ sở dữ liệu. Để báo cáo và khám phá những gì đã xảy ra. Ví dụ:
    • Có bao nhiêu sự kiện xảy ra với loại = X trong một khoảng thời gian.
    • Nhận tất cả các sự kiện mà lĩnh vực A có giá trị Y.
    • Nhận tất cả các sự kiện với kiểu X và lĩnh vực A có giá trị 1 và lĩnh vực B không phải là 2 và sự kiện xảy ra trong 24 giờ qua

Trả lời

4

Các hai tôi đã thấy được sử dụng thành công là MongoDBCassandra.

+0

Ý của bạn là MongoDB? –

+1

MongoDB thật tuyệt vời cho việc ghi nhật ký: http://blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging – kristina

2

Chúng tôi đã sử dụng Redis để thực hiện tất cả việc ghi nhật ký tập trung của mình cho tất cả các máy chủ ứng dụng của chúng tôi tại mflow.com. Nó là rất nhanh, dựa trên these benchmarks nó làm khoảng 110000 SETs mỗi giây, khoảng 81.000 GET mỗi giây. Nó có một triển khai VM (nếu tập dữ liệu của bạn vượt quá bộ nhớ có sẵn) mà hoán đổi các giá trị không thường xuyên ra đĩa.

Đây là máy chủ cấu trúc dữ liệu nâng cao có thể lưu trữ bất kỳ dữ liệu an toàn nhị phân nào với hỗ trợ gốc cho chuỗi, danh sách, tập hợp, tập hợp và băm được sắp xếp. Dựa trên các cuộc thảo luận về danh sách gửi thư, nó được nhiều người sử dụng để lưu trữ phân tích.

2

tôi có nên đi với cơ sở dữ liệu quan hệ bình thường (DB2) không?

Có, bạn nên! Nếu bạn chỉ muốn lưu trữ nội dung và quét nó, bạn cũng có thể ghi vào một tệp. Rất nhanh, không có phí! Nhưng phút bạn muốn tóm tắt dữ liệu theo thời gian (24h cuối cùng, hoặc giữa thời gian t và t + 1), bạn càng quan tâm đến dữ liệu chứ không phải dòng văn bản, không có câu hỏi nào là RDBMS đúng là bạn của bạn.