5

スキーマのない財務データを扱うアプリケーションがあります。より正確には、シーマレス データは注文に関する情報であり、フィールドはマーチャントによってカスタマイズされます。一貫性と耐久性が重要です。

データが非常に動的であるため、報告は非常に困難です。各レコードはわずかに異なる場合もあれば、完全に異なる場合もあります。リレーショナル データベースを引き続き使用する場合、「ドキュメント」を BLOB としてシリアル化するしか選択肢がないように思われます。レポートは、おそらくユーザー定義レポートによって定義された共通構造にデータをコピーすることによって、個別に実行する必要があります (各「レポート」にはカスタム テーブルがあります)。

もう 1 つのオプションは、MongoDB のようなドキュメント指向の NoSQL データベースです。いくつかの調査を行った後、NoSQL データベースはACIDではなくBASEに依存しているため、ほとんどの人は NoSQL データベースを金融データで信頼しないようです。

私は、まったく異なる 2 つのユース ケースの真ん中にいるようです。私のデータはドキュメント指向データベース (MongoDB) に非常によく適合しますが、ACID データベースの信頼性が必要です。同時に、複雑なユーザー定義のレポートが必要です。

したがって、次の 3 つの選択肢があるようです。

  1. 2 つの MySQL データベースを使用します。1 つはデータ (blob) の保存用、もう 1 つはユーザー定義レポート (多数のテーブル) 用です。
  2. 大規模なデータベースをサポートしますが、グローバルな書き込みロックがあり、「最終的に一貫性がある」MongoDB を使用します。
  3. MySQL を使用してデータ (blob) を保存し、それをレポート用に MongoDB にコピーします。唯一のインデックスがおそらくmerchantIDになるとすれば、これはどの程度うまく機能するでしょうか?

では、3 つのうちどれが私の最良の選択肢 (柔軟性と耐久性が最も高い) でしょうか? データの動的性を変更できないことを知っているので、考慮していない他のオプションはありますか? 本番環境でのレポート作成に MongoDB を使用している人はいますか?

(RDMS には MySQL を使用しています。MariaDB に切り替えることを考えています。選択したプログラミング言語は PHP です。誰かの名前を検索するような全文検索に Sphinx を使用することを考えています。)

4

2 に答える 2

3

いくつかのポイント:

MongoDB は、セカンダリ ノードから読み取る場合にのみ結果整合性が保たれます。そうでなければ、それは一貫しています。

マルチオブジェクト ACID トランザクションが必要な場合、MongoDB は機能しません。原子性、一貫性、および耐久性が必要な場合は、ジャーナリングを有効にして書き込み懸念を慎重に使用すれば、その MongoDB を取得できます。

于 2011-11-23T20:15:57.553 に答える
0

オラクルの新しい NoSQL 製品について、他の NoSQL 製品よりも信頼性に重​​点を置いているように見えるいくつかの肯定的な意見を目にしました。どうやら、コミュニティ エディション (オープン ソース ライセンス、どちらかはわかりません) とエンタープライズ エディション (驚き...) として利用できるようです。

http://www.infoworld.com/d/data-explosion/first-look-oracle-nosql-database-179107

ドキュメント指向のソリューションではなく、キーと値のペアのソリューションです

私はこれを扱っていないことに注意してください。

http://www.oracle.com/us/products/database/nosql/overview/index.html

于 2011-11-23T19:21:41.160 に答える