私は次の大きなプロジェクトでMongoDBを検討していますが、いくつかの懸念があります。特に、どのようにレポートを作成できますか?
私の理解では、リレーショナルデータベースで通常行うのと同じ種類の結合と集約を行うことはできません。私が念頭に置いていたレポートには、厳格な基準でさまざまな「テーブル」から大量のデータを集約することが含まれます。
これはMongoDBで簡単に実行できますか、それとも大きな頭痛の種になるでしょうか?
PentahoとJaspersoftおよびその他のレガシーレポートソリューションには、MongoDBからデータを抽出する方法がありますが、MongoDBデータの分析とレポート用に明示的に設計された2つの新しいソリューションがあります。
これらは両方ともMongoDBの上で実行されるため(他のアプローチとは対照的に、つまり、Mondrianなどでレポートするためにデータをポンプで送り、正規化するため)、MongoDBのレポートでははるかに簡単で自然です。逆に、データがすべてのメモリキューブに読み込まれないため(たとえば)、リアルタイムで複雑なレポート生成を行おうとすると、レポートエクスペリエンスが低下する可能性があります。
免責事項:私はSlamDataプロジェクトの寄稿者ですが、JSON Studioと提携していません。
JasperReportsやPentahoなどのオープンソースツールはMongoDBに接続できるようです。NoSQL船にジャンプしたいがNoSQL船にジャンプせずに、ODBCまたは= OLE Simba's one のようなDBドライバー、そして DBxtra のような通常のSQLレポートツールを使用する
一般に、実稼働環境で何か新しいことを試してみたいという理由だけでmongodbを使用しないでください。それが頭痛の種になります。いつ使用するかについてのStackoverflowの素晴らしい投稿があります: https://stackoverflow.com/a/1477354/1248724
レポートに関して: Map-Reduce 、特にインクリメンタルなものは非常に役立ちますが、mongoDBをリレーショナルデータベースとして扱うことはできません。それだけではありません。たとえば、サブドキュメントの狂気のクエリ。 mongoDB Aggregation-Framework はほとんどの場合うまくいきますが、SQLに比べて制限があります。
.NETを使用している場合、DexExpressレポートを使用して簡単にレポートを作成できます。 MongoDb .NETドライバーでうまく機能しますが、1つの制限があります。データで使用している各集計に対して強力な型が必要です。メインアプリケーションデータベースプロバイダーから使用できるすべてのタイプなので、大きな頭痛の種にはなりません。 MongoDBコレクションがSQLデータテーブルに類似している場合、ODBCドライバを使用できます。この方法は非常に制限されていますが、ODBC = connection。最初に使用したい: "DevExpress" XtraReports。
私が知る限り、Mongoのリレーショナルデータベースで行うのと同じ方法で、結合、集約などを実行する簡単な方法はありません。これに使用できるさまざまな外部分析ツールがあります。私の会社では、 Sisense を使用し、ODBCドライバーを介してMongoDBに接続します。これにより、データでSQLのような機能を使用できます。私はこれをMongoDBでネイティブに行う方法を知りません。
MongoDBのレポート作成は、レポート作成ソフトウェアに接続できるAPIを提供する集約フレームワークを備えているため、簡単になりました。 MongoDBのレポートと視覚化に関する詳細を提供する記事を次に示します http://blog.jinfonet.com/mongodb-reporting-visualization-jreport/