web-dev-qa-db-ja.com

MongoDBでレポートを作成する方法は?

私は次の大きなプロジェクトでMongoDBを検討していますが、いくつかの懸念があります。特に、どのようにレポートを作成できますか?

私の理解では、リレーショナルデータベースで通常行うのと同じ種類の結合と集約を行うことはできません。私が念頭に置いていたレポートには、厳格な基準でさまざまな「テーブル」から大量のデータを集約することが含まれます。

これはMongoDBで簡単に実行できますか、それとも大きな頭痛の種になるでしょうか?

29
mpen

PentahoとJaspersoftおよびその他のレガシーレポートソリューションには、MongoDBからデータを抽出する方法がありますが、MongoDBデータの分析とレポート用に明示的に設計された2つの新しいソリューションがあります。

  • JSON Studio 。これは、集約パイプラインを視覚的に構築し、チャートに接続できる商用ソリューションです。
  • SlamData 。これは、GUIインターフェイスまたはAPIを介して、MongoDBでSQLクエリ(JOIN、GROUP BY、HAVINGなどを含む)を直接実行できるオープンソースソリューションです。プロジェクトの現在のバージョンにはデータの視覚化が組み込まれており、レポートダッシュボードを作成してMongoDBアプリケーションに埋め込むことができます。

これらは両方ともMongoDBの上で実行されるため(他のアプローチとは対照的に、つまり、Mondrianなどでレポートするためにデータをポンプで送り、正規化するため)、MongoDBのレポートでははるかに簡単で自然です。逆に、データがすべてのメモリキューブに読み込まれないため(たとえば)、リアルタイムで複雑なレポート生成を行おうとすると、レポートエクスペリエンスが低下する可能性があります。

免責事項:私はSlamDataプロジェクトの寄稿者ですが、JSON Studioと提携していません。

19
John A. De Goes

JasperReportsやPentahoなどのオープンソースツールはMongoDBに接続できるようです。NoSQL船にジャンプしたいがNoSQL船にジャンプせずに、ODBCまたは= OLE Simba's one のようなDBドライバー、そして DBxtra のような通常のSQLレポートツールを使用する

4
Miguel Garcia

一般に、実稼働環境で何か新しいことを試してみたいという理由だけでmongodbを使用しないでください。それが頭痛の種になります。いつ使用するかについてのStackoverflowの素晴らしい投稿があります: https://stackoverflow.com/a/1477354/1248724

レポートに関して: Map-Reduce 、特にインクリメンタルなものは非常に役立ちますが、mongoDBをリレーショナルデータベースとして扱うことはできません。それだけではありません。たとえば、サブドキュメントの狂気のクエリ。 mongoDB Aggregation-Framework はほとんどの場合うまくいきますが、SQLに比べて制限があります。

2
Zarathustra

.NETを使用している場合、DexExpressレポートを使用して簡単にレポートを作成できます。 MongoDb .NETドライバーでうまく機能しますが、1つの制限があります。データで使用している各集計に対して強力な型が必要です。メインアプリケーションデータベースプロバイダーから使用できるすべてのタイプなので、大きな頭痛の種にはなりません。 MongoDBコレクションがSQLデータテーブルに類似している場合、ODBCドライバを使用できます。この方法は非常に制限されていますが、ODBC = connection。最初に使用したい: "DevExpress" XtraReports。

2
Eugene Bosikov

MongoDBですべてのレポートに加えて十分な応答時間を確保できるかどうかはわかりません。そのため、その目的のためにMongoDBの上にツールを追加できます。たとえば、 icCube は、この種の使用法のために MongoDB をサポートするようになりました。データセット全体を抽出することは意味がありませんが、レポートと分析のほとんどの時間データは全体のほんの一部を表しており、インメモリOLAPツールを接続することは理にかなっていますレポートおよび分析用。

1
Marc Polizzi

私が知る限り、Mongoのリレーショナルデータベースで行うのと同じ方法で、結合、集約などを実行する簡単な方法はありません。これに使用できるさまざまな外部分析ツールがあります。私の会社では、 Sisense を使用し、ODBCドライバーを介してMongoDBに接続します。これにより、データでSQLのような機能を使用できます。私はこれをMongoDBでネイティブに行う方法を知りません。

1
Dan

MongoDBのレポート作成は、レポート作成ソフトウェアに接続できるAPIを提供する集約フレームワークを備えているため、簡単になりました。 MongoDBのレポートと視覚化に関する詳細を提供する記事を次に示します http://blog.jinfonet.com/mongodb-reporting-visualization-jreport/

0
Bon