Tôi đang làm việc trên một dự án thực hiện tổng hợp và phân tích nhật ký như là một phần của dự án lớn hơn. Tôi không biết cơ sở dữ liệu nào để chọn xử lý các nhật ký này. Gần đây tôi sẽ đi qua lại giữa MongoDB và Cassandra, nhưng tôi chắc chắn có những người khác phù hợp với nhu cầu của tôi. Tôi nên chọn cái nào và tại sao?Mongodb vs Cassandra để tổng hợp, tìm kiếm và phân tích nhiều nhật ký
Toàn bộ điều khá ở đầu ngay bây giờ, nhưng đây là những yêu cầu cho đến nay:
- nhật ký trong các định dạng syslog
- truy vấn chủ yếu là trên một sợi dây nhỏ đó là bây giờ trong thông điệp nhưng tôi sẽ lấy nó trên một lĩnh vực riêng biệt. Và cũng sẽ có các bộ lọc dựa trên ngày, mức độ nghiêm trọng hoặc thẻ. Rất hiếm khi mọi người chỉ tìm kiếm một chuỗi ngẫu nhiên trong thư.
- phân tích theo giờ từ một số các mục log
- giữ các bản ghi trong một khoảng thời gian cấu hình của
- hơn sẽ đến, tôi chắc chắn :) Đó là lý do tôi đang nghĩ NoSQL là thích hợp hơn, bởi vì chúng ta có thể thay đổi giản đồ.
Chúng tôi hy vọng sẽ phát triển cơ sở dữ liệu cho một số dữ liệu TB (và ~ 50K lần chèn mỗi giây), do đó, sharding là phải. Truy vấn không thường xuyên như vậy, bởi vì chúng chủ yếu được sử dụng bởi các nhà phát triển của dự án lớn hơn. Nhưng kết quả cần được trả lại sau vài giây.
Ngay bây giờ, bộ nhớ là phổ biến (và chậm) cho tất cả các máy. Vì vậy, đối với khả năng mở rộng, tôi cho rằng chúng ta cần phải tận dụng tốt nhất bộ nhớ và đa luồng - để cho sharding có ý nghĩa. Các ý tưởng cơ bản mà tôi có cho đến nay là MongoDB có nhiều tính năng hơn, chẳng hạn như kết quả phân loại hoặc regex, và dễ dàng thiết lập cấu hình tốt hơn, trong khi Cassandra có khả năng mở rộng hơn (bằng cách thêm máy chủ), và cũng có vài tính năng gọn gàng, như đặt TTL trên dữ liệu.
tôi đã kết thúc bằng Elasticsearch. Hãy xem ở đây để biết thêm thông tin: [link] (http://www.elasticsearch.org/tutorials/2012/05/19/elasticsearch-for-logging.html) –