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.
Antworten:
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 ...
quelle
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.
quelle