NoSQL und RDBMS zusammen?

13

Ich habe mich gefragt, ob es gute Lösungen gibt, um Daten in einer NoSQL-Datenbank aufzuzeichnen und sie dann in ein RDBMS zu konvertieren.

Wenn Sie beispielsweise einige Daten wie Sitzungsprotokolle schnell erfassen möchten, aber später Berichte darüber erstellen möchten.

Meine Lieblingsdatenbank ist Postgres. Wenn Ihre Antwort also für Postgres relevant ist, wäre das großartig.

Joe
quelle
Zu diesem Zeitpunkt hat postgres xml, json natives und gis und hstore (Schlüssel, Wert) als Erweiterungen. Sehr wenig Notwendigkeit für eine NOSQL-Datenbank, wenn Postgres verwendet wird.
Xenoterracide
Das heißt, das cqrs-Muster wurde entwickelt, um Ihre Frage zu erleichtern
Xenoterracide

Antworten:

10

Die schnelle Antwort - Ja. Es passiert die ganze Zeit.

Es gibt viele gute Lösungen. Welche Lösungen gibt es bereits in Ihrer Umgebung? Ich helfe einem Client, der seine Website- / Sitzungsaktivitätsinformationen aus seiner Webanwendung entnimmt, diese in XML schreibt und diese XML dann in Hadoop deserialisiert. Anschließend verwenden sie Hive auf Hadoop, um Aggregationen und Fakten zu erstellen (indem sie diese Protokolldaten zusammenführen, um auf Daten von ihrer Website zu verweisen, die sie in einer Postgres-Datenbank speichern). Diese Aggregtionen und Fakten werden dann in ein RDBMS geladen (sie verwenden SQL Server aufgrund der im SQL Server-Stapel enthaltenen umfangreichen Analysefunktionen).

Ich würde mich mit Hadoop befassen. Schauen Sie sich Hive an, eine Abfrage-Engine auf Hadoop, mit der Sie deklarative Abfragen schreiben können, die stark an SQL erinnern, und die hinter den Kulissen in MapReduce-Jobs übersetzt werden. Schauen Sie sich dann Sqoop an, ein weiteres Tool in der Hadoop-Familie, das Sie beim Exportieren / Importieren von Daten unterstützt.

http://hadoop.apache.org/ http://www.amazon.com/Hadoop-Definitive-Guide-Tom-White/dp/1449389732/ref=sr_1_1?s=books&ie=UTF8&qid=1319160463&sr=1-1 http : //www.cloudera.com/blog/2009/06/introducing-sqoop/ http://hive.apache.org/

Es gibt auch andere Möglichkeiten da draußen ...

Mike Walsh
quelle
Nun, das ist eine äußerst vollständige Antwort. Klingt nicht zu einfach, scheint aber eine Menge cooler Technologien zu verwenden.
Joe
Nun, es ist nicht "einfach" in Bezug auf die Anzahl der Teile usw., aber tatsächlich ist es nicht so komplex, wenn Sie erst einmal loslegen. Welches Werkzeug Sie für die Teile auswählen, hängt davon ab, was Sie in Ihrer Umgebung haben und womit Sie vertraut sind. Schauen Sie sich diese Links an und lesen Sie den Buchempfehlungslink.
Mike Walsh
4

Nicht alle NoSQL sind gleich. Zum Beispiel hat MongoDB sehr gute Abfragemöglichkeiten. Es ist sehr einfach, Daten abzurufen und in einer Weise zu sortieren, die Sie an SQL erinnert. Was ich damit sagen will, ist, dass Sie nicht darüber nachdenken sollten - SQL für die Berichterstellung, es sei denn, Sie verfügen über handelsübliche Tools, die natürlich SQL-kompatible Daten erfordern. Einige der anderen NoSQL-Versionen sind etwas komplizierter, da es nicht einfach ist, SQL-ähnliche Ergebnisse aus Ihrem Geschäft zu erhalten, beispielsweise CouchDB, um eine einfache Abfrage vom Typ where-clause zu definieren. MongodDB - ich habe den Python-Treiber verwendet - ist ein Kinderspiel. Daher ist es für mich weniger wichtig, meine Daten in einen relationalen Speicher zu portieren.

Dantalion
quelle
3
Haben Sie einen Link oder eine Zugehörigkeit zu MongoDB? Gerade beigetreten, vier Antworten, alle sehr positiv über MongoDB, die nach Marketing klingen. Sie können richtig sein, aber es ist schlechte Form, wenn Sie ein Interesse haben ...
gbn
Anscheinend hast du ihn da
draußen