2012-04-02 8 views
4

Ich bin dabei, ein neues Projekt zu starten, das im Grunde ein Reporting-Tool ist, das eine ziemlich große Datenbank haben sollte.Wie behandelt man sehr große Daten?

Die Anzahl der Tabellen wird nicht groß sein (< 200), die Mehrheit der Daten (80%) wird in 20 Tabellen enthalten sein, alle Daten sind fast einfügen/nur lesen (keine Updates).

Die geschätzte Datenmenge in dieser einen Tabelle wird mit 240.000 Datensätzen pro Minute anwachsen, und wir sollten mindestens 1 bis 3 Jahre Zeit haben, um verschiedene Berichte zu erstellen, und Berichte werden vom Administrator online angezeigt .

Ich habe keine Erfahrung aus erster Hand mit diesen großen Datenbanken, also frage ich diejenigen, die haben, welche DB die beste Wahl in dieser Situation ist. Ich weiß, dass Oracle die sichere Wahl ist, aber ich bin eher daran interessiert, wenn jemand andere Erfahrungen als Datenbanken wie hadoopdb oder Googles großen Tisch hat. bitte führe mich. danke im voraus

+1

Müssen Sie * wirklich * alle Daten behalten? Kannst du es irgendwie aggregieren? Fügen Sie die Rohdaten möglicherweise in Buckets zusammen? 4000 Datensätze pro Sekunde ist ein bisschen verrückt. Wie groß sind deine Aufzeichnungen? –

+0

Für jeden, der direkt auf den Rechner geht, erspare ich Ihnen ein wenig Aufwand: 378,432 Milliarden Datensätze nach 3 Jahren>. < – Corbin

+0

@greg hewgill danke für Ihre Antwort .yes als mein Projektberichterstattungswerkzeug also wenn Benutzer sehen möchten berichten mehr als Jahr dann muss ich diese Daten für mehr als Jahr bis zu 3 Jahren aufbewahren. Ich sammle Daten, aber am Ende aller Berichte zeige ich Daten in der einreihigen Form nicht aggregierten Form. – jenitshah

Antwort

0

Sie können auch Apache Solr und MongoDB verwenden. Mongo DB und Apache Solr sind auch für die Handhabung von Big Data in NOSQL sehr schnell zum Einfügen und Abrufen von Daten in die Datenbank verwendet. So können Sie Apache Solr oder MongoDb-Datenbank verwenden.

4

Oracle wird sehr teuer werden, um genug zu vergrößern. MySQL wird schwer skalierbar sein. Es ist nicht ihre Schuld; Ein RDBMS ist dafür Overkill.

Lassen Sie mich mit einer dummen Frage beginnen: Was machst du mit diesen Daten? "Verschiedene Berichte" könnten eine Menge Dinge sein. Wenn diese Berichte in großen Mengen offline generiert werden können, warum sollten Sie Ihre Daten nicht in einer flachen Datei auf einem freigegebenen Dateisystem speichern?

Wenn es mehr online sein muss, dann ist ja die populäre Weisheit der letzten 2 Jahre, NoSQL-Datenbanken wie Mongo, Couch und Cassandra zu betrachten. Sie sind einfachere, schnellere Kreaturen, die leicht skalierbar sind und mehr zufälligen Zugriff auf Ihre Daten bieten.

Die Analyse von NoSQL ist in diesem Jahr der letzte Schrei. Zum Beispiel würde ich mir ansehen, was Acunu macht, um Analytik in ihren Geschmack von Cassandra einzubetten: http://www.acunu.com/blogs/andy-twigg/acunu-analytics-preview/

+0

hallo danke für deine antwort. Ich muss dem Administrator Online-Reporting zur Verfügung stellen, so dass ich mehr online db sein muss. Normalerweise aggregiere ich die Daten, und ich erfuhr von der primären Feststellung, dass NOSQL in der Aggregation mit Daten sehr langsam ist. ist es wahr? – jenitshah

+0

NoSQL-Datenbanken haben von Natur aus keine Aggregationsprimitive. Das ist genau der Grund, warum Sie sich Dinge wie Acunu ansehen sollten, da sie in Echtzeit inkrementelle Echtzeit-Analysen erstellen. Ich kenne die Jungs und was sie machen, ist ziemlich gut für diesen Anwendungsfall. –