Ich brauche einen Rat. Ich arbeite an einem neuen Start-up im Bereich Data Mining. Dies ist im Grunde die Ausgliederung eines Forschungsprojekts.
Bei jeder Art von Daten, die unstrukturiert sind, führen wir verschiedene NLP-, Klassifizierungs- und Clusteranalysen für diese Daten durch.
Wir haben Millionen von Nachrichten, die von Twitter-Nachrichten, Blog-Posts, Foren-Beiträgen, neuen Papierartikeln, Berichten usw. usw. reichen. Alles in allem nehmen wir etwa 300GB + Textdaten und wachsen jeden Tag (ca. 10GB pro Tag Wachstum)!
Also müssen wir alle diese Informationen in einem Format speichern, das wir tatsächlich verarbeiten und abfragen können und relative Echtzeitergebnisse erhalten.
Irgendwie müssen wir irgendwo diese Daten speichern ...
Da dies ein neues Start-up ist, können / wollen wir nicht für ein lizenziertes Produkt zahlen, z. Enterprise Edition von VoltDB, Oracle, etc. ist nicht erreichbar.
Ich dachte, dies könnte die perfekte Anwendung für eine Non-Relation "NoSQL" -Datenbank wie Apache Cassandra oder Hadoop / HBase (Spaltenfamilie), MongoDB (Dokument), VoltDB (Community Edn) oder MySQL sein.
>Derzeit befinden sich alle Daten in TSV-Textdateien und werden so verarbeitet, wie sie in die Datei geschrieben werden. Unnötig zu sagen, es ist schmerzhaft und es bedeutet, dass das Ganze in dem einen Prozess stecken bleibt und wir es nicht abfragen können. Es funktioniert, aber sein Weg zu begrenzt für den Reichtum dessen, was wir mit diesem Datensatz tun könnten.
Wie auch immer ich gehofft hatte, dass jemand seine Erfahrung mit einem der oben genannten Tools oder Empfehlungen für diesen Anwendungsfall (großer Satz von Textdaten unstrukturiert) für Natural Language Processing, Klassifikation, Clustering, Frequenzsammlung, Echtzeitanalyse teilen könnte usw.?
Meine größte Sorge ist, dass MySQL nicht in der Lage sein wird, die schiere Datenmenge der Zukunft zu bewältigen. Diese Sache wird Ende des Jahres im Terabyte-Bereich liegen, und so versuchen wir zum Teil, durch die Implementierung einer skalierbaren Lösung, die es uns ermöglicht, Daten leicht abzufragen, ein Kopf von der Kurve und das Wachstum zu bekommen ...
Ich denke, eine Non-rel / NoSQL-Spaltenfamiliendatenbank wie HBase ist die beste, da wir ständig neue Datenquellen hinzufügen (Crawler, Streaming-APIs usw.), wird es viel einfacher sein, wenn wir ein unstrukturiertes Modell haben. p>
Jede Hilfe wäre sehr willkommen! Hölle dort könnte sogar eine Arbeit darin sein:)
Prost!
Sie müssen sorgfältig darüber nachdenken, welche Arten von Abfragen Sie über diese Dokumente ausführen müssen. Cassandra usw. kann gut passen, wenn Ihre Abfragen grundlegend sind, aber reichere SQL-ähnliche Abfragen sind nicht möglich. Die größten Cassandra-Bereitstellungen liegen in der Größenordnung von 150 TB, daher sollten Ihre Datenmengen kein Problem darstellen. Aber Cassandras Leistung kann übertrieben sein und die Abfragefülle beeinträchtigen.
Wenn Sie nur Textindexierung möchten, dann sollten Sie auch Lucene in Erwägung ziehen, da Lucene jetzt mehr als 100 GB / Stunde verarbeiten kann, sodass eine Indexierung von 1 TB über Nacht möglich wäre - und Lucene behauptet jetzt auch vergleichbare Geschwindigkeiten für die inkrementelle Indexierung ...
Checkout RavenDB . Es ist eine Dokument-Datenbank, die Map / Reduce unterstützt, die auf Lucene basiert und daher auch Volltextsuchfunktionen nativ von der abfragenden API zur Verfügung stellen kann.
Die Funktionen für das Sharding und Replizieren sind integriert und sehr fortschrittlich. Mit Esent als Speicher kann jeder Knoten bis zu 16 TB Daten speichern.
Die Datenbank hängt hauptsächlich von Ihren Anwendungsfällen ab. Ich werde vorschlagen, dass Sie mit Cassandra oder HBase gehen.
Für Echtzeit-Analyse über Cassandra können Sie Apache Spark und Spark-Streaming alle funktionieren gut.
Versuchen Sie auch Elastic search oder solar search for text searching. All dies sind Open Source und sehr gut zu versuchen.
Für Echtzeit-Analyse können Sie auf Facebook Opensource Prestodb auch haben, aber ich habe nicht viel Informationen abgesehen von Presto Website gefunden und die meisten Leute vorschlagen, mit Cassandra mit Apache Funke gehen.