2013-12-10 14 views
6

Trường hợp sử dụng của tôi là ghi nhật ký kiểm tra tài nguyên. Để thảo luận xem xét một lược đồ rất đơn giản: một tên tài nguyên, dấu thời gian truy cập và truy cập tên người dùng. Với tất cả các tùy chọn NoSQL, tôi tự hỏi giải pháp nào là tốt nhất cho trường hợp sử dụng của tôi?Cơ sở dữ liệu NoSQL nào tốt nhất để nối thêm trường hợp sử dụng ghi nhật ký kiểm tra?

Tên tài nguyên đang được giữ trong cơ sở dữ liệu đồ thị (Neo4j) và trong khi chúng tôi có thể thêm đỉnh và cạnh vào đỉnh kiểm tra được kết nối với đỉnh tài nguyên, thông tin kiểm tra có thể lớn và tôi sợ gây ô nhiễm biểu đồ tương đối đơn giản.

Tôi hiện đang hướng tới một cơ sở dữ liệu tài liệu như MongoDB hoặc Couchbase, trong đó mỗi tài nguyên có tài liệu riêng và nhật ký kiểm tra là một mảng đơn giản trong tài liệu này được nối thêm vào. Tôi lo sợ rằng I/O có thể trở thành một vấn đề khi nhật ký kiểm tra nhận được lâu và toàn bộ tài liệu phải được trao đổi giữa máy chủ ứng dụng và cơ sở dữ liệu. Một trong những linh hồn tôi thấy để giảm thiểu điều này là để làm cho mỗi mục kiểm toán tài liệu riêng của mình và gắn thêm ID của nó vào mảng tài liệu tài nguyên chính.

Nhật ký kiểm tra tìm kiếm không phải là yêu cầu tại thời điểm này, nhưng với cơ sở dữ liệu tài liệu, tôi cảm thấy có một con đường tốt để tích hợp Tìm kiếm Đàn hồi sau này.

Có vẻ như Redis có thể tối ưu hơn một chút so với trường hợp sử dụng của tôi, nhưng sự kiên trì dữ liệu không xuất hiện nghiêm ngặt như các giải pháp khác.

Về mặt khái niệm, tôi đoán tôi đang tìm kiếm bất kỳ giải pháp NoSQL nào hỗ trợ cuộc gọi API "nối thêm" mà không cần trao đổi nhiều thông tin. Trớ trêu thay điều này về cơ bản là một câu lệnh INSERT của SQL, nhưng tôi sợ một RDBMS truyền thống sẽ không đáp ứng các yêu cầu về quy mô của tôi. Bảng kiểm toán sẽ nhận được rất nhanh và tôi thà tận dụng các phương pháp NoSQL mới nhất và lớn nhất để phân vùng/sharding.

Mọi thông tin chi tiết về các trường hợp sử dụng nhật ký được đánh giá cao!

Những dường như là tương tự như SO câu hỏi:

Database design for audit logging

NoSQL or RDBMS for audit data

Cảm ơn, Jared

+0

Có bao nhiêu yêu cầu trong một giây? Bạn phải giữ dữ liệu trong bao lâu? Thành thật mà nói, postgres hoặc mysql sẽ là tốt và chỉ lưu trữ dữ liệu cũ hơn. Nó cũng sẽ dễ dàng hơn để phân tích dữ liệu của bạn. – scalabilitysolved

+0

Câu hỏi hay nhưng đáng buồn là không có phản ứng tốt, bạn đã chọn giải pháp nào? –

Trả lời

0

Apache Kafka là log theo định hướng, khả năng mở rộng và cho phép đăng ký vào tin nhắn trong nhiều những cách khác.

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