NoSQLデータベースにデータを記録し、それをRDBMSに変換するための優れたソリューションがあるかどうか疑問に思っていましたか?
たとえば、セッションログなどの一部のデータをすばやくキャプチャしたいが、それらのレポートを後で作成できるようにする場合です。
私のお気に入りのデータベースはPostgresなので、もしあなたの答えがPostgresに関連しているなら素晴らしいでしょう。
NoSQLデータベースにデータを記録し、それをRDBMSに変換するための優れたソリューションがあるかどうか疑問に思っていましたか?
たとえば、セッションログなどの一部のデータをすばやくキャプチャしたいが、それらのレポートを後で作成できるようにする場合です。
私のお気に入りのデータベースはPostgresなので、もしあなたの答えがPostgresに関連しているなら素晴らしいでしょう。
回答:
クイックアンサー-はい。常に起こります。
たくさんの良い解決策があります。ご使用の環境にはすでにどのようなソリューションがありますか?私は、WebアプリケーションからWebサイト/セッションアクティビティ情報を取得し、それをxmlに書き込み、そのxmlをHadoopにデシリアライズするクライアントを支援しています。次に、Hadoopの上でHiveを使用して集計とファクトを作成します(このログデータを結合して、Postgresデータベースに保存するWebサイトからのデータを参照します)。これらの集計とファクトは、RDBMSにロードされます(SQL Serverスタックで提供される豊富な分析のため、SQL Serverを使用します)。
Hadoopを調べて、Hadを見てみましょう。Hiveは、Hadoopの上位にあるクエリエンジンで、SQLによく似た宣言クエリを作成して、舞台裏でMapReduceジョブに変換できます。次に、データのエクスポート/インポートを支援するHadoopファミリーの別のツールであるSqoopを見てください。
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/
他にもオプションがあります...
すべてのNoSQLが同じというわけではありません。たとえば、MongoDBには非常に優れたクエリ機能があります。データの取得、SQLを思い出させる方法でのデータのソートは非常に簡単です。私が言っているのは、SQL準拠のデータを必要とする既製のツールがない限り、レポートのためのSQLを考えるべきではないということです。他のNoSQLの一部は、CouchDBなどのSQLのような結果をストアから取得することが単純なwhere-clause型クエリを定義するのに簡単ではない限り、少し複雑です。MongodDB-Pythonドライバーを使用しました-は簡単です。したがって、データをリレーショナルストアに移植することを心配することはそれほど重要ではありません。