Pracuję nad projektem, który rejestruje agregację i analizy w ramach większego projektu. Nie wiem, którą bazę danych wybrać do obsługi tych dzienników. Ostatnio wracam pomiędzy MongoDB i Cassandrą, ale jestem pewna, że są też inne, które pasują do moich potrzeb. Którą mam wybrać i dlaczego?Mongodb kontra Cassandra do agregowania, wyszukiwania i analizowania wielu dzienników
Cała sprawa jest dość na początku, teraz, ale tutaj są wymagania tej pory:
- dzienniki są w syslog formacie
- zapytania są głównie na małej ciąg, który jest teraz w komunikacie , ale dostanę to na osobnym polu. Będą także filtry oparte na dacie, ważności lub tagu. Bardzo rzadko ludzie po prostu szukają losowego ciągu w wiadomości.
- analityki godzinowe od niektórych wpisów dziennika
- prowadzą dzienniki konfigurowalnego czasu
- więcej przyjdzie, jestem pewien :) Dlatego myślę NoSQL jest bardziej właściwe, ponieważ możemy zmień schemat.
Spodziewamy się rozbudować bazę danych o kilka TB danych (i ~ 50k wstawek na sekundę), więc odłamki są koniecznością. Zapytania nie są tak częste, ponieważ są wykorzystywane głównie przez twórców większego projektu. Ale wynik musi zostać zwrócony w ciągu kilku sekund.
W tej chwili pamięć jest powszechna (i wolna) dla wszystkich komputerów. Skalowalność wymaga więc najlepszego wykorzystania pamięci i wielowątkowości - aby odciski miały sens.
Podstawowymi pomysłami do tej pory jest to, że MongoDB ma więcej funkcji, takich jak wyrażenie regularne lub wyniki sortowania, i jest to łatwiejsza konfiguracja do przyzwoitej konfiguracji, podczas gdy Cassandra wydaje się bardziej skalowalna (po prostu dodając serwery), a także ma kilka ciekawych funkcji, takich jak umieszczanie TTL na danych.
ja skończyło się Elasticsearch. Zajrzyj tutaj, aby uzyskać więcej informacji: [link] (http://www.elasticsearch.org/tutorials/2012/05/19/elasticsearch-for-logging.html) –