戦略的問題:リレーショナルと非リレーショナルDBのミキシング?
-
13-09-2020 - |
質問
cassandra 、 couchdb 、ハイパーテーブル mongodb 、
私たちの次のプロジェクトのためにいくつかの非リレーショナルDBを使用することを提案することを真剣に検討しています。ただし、一部のチームはいくつかのRDBMSファナティクスを構成しているため、感情的な理由から、ハードスイッチを説得できない場合があります。また、複雑なデータモデルに関しては、私は個人的に、低レベルの一貫性執行機構を持つRDBMSの力を信じています。
今ここに私の質問があります。新しいプロジェクトでRDBMS と非リレーショナルDBの両方を真剣に検討することができれば、疑いがあるが、パフォーマンスの重要なデータモデルではなく、リレーショナルモデルとDBを使用して実装されますが、すべてのパフォーマンスが重要ですが、単純なモデルは非リレーショナルDBで実装されます。さらに、そのような柔らかいパラダイムシフトは、硬いものよりも、非常に非常に感情的なチームメンバーに売るのははるかに簡単です。
誰もそのようなアプローチを勧めますか?それとも、あなたはかなり白または白、そしてリレーショナルまたは非関係のアプローチをお勧めしますか?すべてのコメントは大歓迎!
P.:そのようなミックスアップが春と休止状態/ JPAとうまく機能している場合は、任意の考えですか?
解決
最近Rob Coneeryが彼のことについて MongoDBとMySQLの両方のhref="http://tekpub.com/"LEKPUB の両方で、MongoDBとMySQLの両方が強調表示され、両方の強度が強調表示されます。
高読み取りのもの(アカウント情報、プロダクション、エピソード情報)は、MongoDBのような「今すぐ」のようなものに最適です。 「昨日起こったこと」のものは、リレーショナルシステムに最適です。
高レベルでは、ROBはそれらのアプリケーションデータを2つのスコープに分割します。ランタイムデータと履歴データ。たとえば、ユーザーのショッピングカートの現在の状態は、MongoDBを維持するのに最適です。それは絶えず突然変わっているオブジェクトブロックです。ショッピングカートから出入りしたものの歴史的な記録を保つために。それが起こった時;チェックアウトの状態は、MySQLのリレーショナル、表形式データに最適です。
彼はこれと要約されています:
それは完全に機能します。私たちのセットアップでが幸せになることができました。それは信じられないほど低いメンテナンスで、他の解決策のようにそれを取り戻すことができます、そして私たちはそれを必要とするとき私たちが必要とするデータを持っています。
2016年5月(6年後)
これは過去6年間でより本当になるだけです。これは、おすすめのデータベースと従来のリレーショナルデータベースに電力を供給するNOSQLデータベースと、分析データベースに電力を供給するのが一般的です。
他のヒント
両方を使います。RDBMSは、複雑な分析、レポート、および複数のユーザーによってさまざまな方法でアクセスされるデータに適しています。私が単一のユーザーの観点からデータを見ているとき、NoSQLは素晴らしいです。私が自分自身に尋ねる質問は、次のとおりです。「誰がこのデータにアクセスしていますか?」答えが1ユーザーの場合は、NOSQLを使用して保存します。
もちろん、適切な場合は他にもありますが、それが一例です。
記載されているように、NoSQLはより単純なストレージであり、データを保持するために複雑なコードを正しく右にすることができます。たとえば、接続リストを格納します。
非リレーショナルキー値データベースは、BLOBストレージとキャッシングに最適です。