NOSQLドキュメントストアDBを使用するための実際のユースケースは何ですか?

StackOverflow https://stackoverflow.com/questions/3621415

質問

私は過去数日間、ドキュメントを読んで、Mongo DBに固有のスクリーンキャストを見てきましたが、このような解決策が典型的なPGやMySQL環境よりも優れているときに途方に暮れています。

具体的には、私の質問はどのような状況(ユースケースがいいでしょう)の下にありますか?NOSQLルートに行きたいですか?

ありがとう!

正しい解決策はありません

他のヒント

  1. 多くの異なる作家。特に、ネットワーク内の切断のために作家がセグメント化され、後で分岐の両側に書かれたデータを再同期する必要がある場合。これは酸を破り、明示的なビジネスロジックで問題を解決することができますが、あなたは今やNOSQLの領土にいます。これは軍事的状況では非常に一般的ですが、誰もが多作な作家であるシステムは、酸システムに何らかの書き込みロックを持っているでしょう。

  2. 流体スキーマ。従来のDBでスキーマを変更することは、多くの場合、何らかのサーバーダウンタイムまたは他の複雑なプロセスを必要とする高価な操作です。ほとんどのNOSQLシステムでは、些細なことです。したがって、多くの異なるソースからのデータがあり、後日新しい情報の追跡を開始する可能性のある状況を統合したり、状況を持っている場合、NOSQLシステムは対処がはるかに簡単になります。 2つのデータソースをマージして、互いにチャート化できることは、私が考えることができる良い例です。

  3. 低帯域幅の複製。酸を破ったら、データベースの完全なレプリカを必要としない部分的なデータを備えたネットワークグラフのリーフノードに読者と作家を持つことができます。私自身の会社の製品である陸軍の将来のコマンドポストは、これを使用しています。

  4. データの相互運用性。ほとんどのNOSQLデータベースを使用すると、スキーマを事前に知らずにデータを内省することができ、異なるシステム間の接続が簡単になります。

  5. 大規模なスケーリング。これは最も議論されているものであり、ほとんどの場合NoSQLの支持者によって虐待されます。これがNOSQLを選択している唯一の理由である場合は、代わりにMySQLから始めて後でスケーリングします。

使用事例
Mongodbを使用して、大規模な非常に一時的なデータ構造に使用します。事実上、多くの作業ユニットが毎秒処理されているジョブトラッカー /マネージャーとして機能します。作業ユニットには、定義されたスキーマがありません(異なるユニットはやや頻繁に発明されます)が、DB全体を反復することなく、特定のフィールドまたはプロパティをクエリする機能が必要です。要約すると、クラウドで実行されている単一の「コモディティ」マシンで約600qpsの作業負荷を使用して、非常に一時的で高度に利用可能(クエリをブロックする余裕はありません)。

問題の事実は、同じコストを維持しながら、SQLマシンで同じことを行うことは非常に困難です。

MongoDB(当社にとっても)の他の一般的なユースケースは統計収集であり、ドキュメント内の特定のプロパティを増やすのに非常に効率的であり、ほとんどのRDBMSシステムよりもはるかに効率的です。

繰り返しますが、MySQLでそれを行うことは不可能であるということではなく、より高価で、より多くの時間(より多くのスキル)が必要です。

一部のREST APIはJSONデータを返します(たとえば、多くの 政府のデータAPIを開きます)。 RESTデータをローカルデータストアにダンプしたい場合(分析などを実行する必要がある場合)、MongoDBを使用してJSONオブジェクトを摂取することは些細なことです。テーブルスキーマを定義する必要はありません。さらに良いことに、JSONオブジェクトが時間の経過とともに変更された場合(たとえば、REST APIが追加のフィールドを返します)、1つのステップでデータを摂取できます。リレーショナルデータベースでそれを試してください!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top