2009-09-30 15 views
30

リレーショナルDB上でキー値データストアを選択するのはいつですか?どちらを決定するにあたってどのような考慮事項がありますか?両方の最善のルートの混在はいつですか?可能であれば、例を提供してください。キー値データストアと従来のリレーショナルDBを使用する場合

+18

私は上記のコメントが嫌いです。これは、Google/Yahoo/Twitter以外の誰もNOSQLを使用してはならないと示唆しているようなものです。それはばかげている。 –

答えて

1

私の経験では、伝統的な対秘密の慣行を使用するかどうかという疑問を尋ねていても、伝統的なものになります。難解なプラクティスはセクシーで挑戦的で楽しいですが、99.999%のアプリケーションで従来のアプローチが必要です。 KV対リレーショナルに関して

、あなたはに尋ねるべきである質問は次のとおりです。

なぜ私ははこのシナリオのために、リレーショナル・モデルを使用したくないなります...

あなたはこのシナリオを説明していないので、誰もあなたにそれを使用すべきではない理由を伝えることは不可能です。 KVの「すべてを捕まえる」理由はスケーラビリティですが、今は問題ありません。あなたは最適化のルールを知っていますか?

  1. しないでください。
  2. (専門家のみ)今はしないでください。

KVは、スケーラビリティに最適化されたソリューションであり、アプリケーションにはまったく必要ない可能性が高い最適化ソリューションです。

+27

このコメントは質問に答えることができません。誰がいつ、なぜリレーショナルデータベースを介してKVストアを使用することを選択しますか? – aridlehoover

0

伝統的なリレーショナルデータベースでは、ある点を超えて拡大縮小する問題があります。その点はあなたがやろうとしていることに少し依存しています。

クラウドコンピューティングのサプライヤはすべて、キーバリューのデータストアを提供しています。

しかし、複雑なデータ構造を持つアプリケーションがあれば、リレーショナルデータベースを使用することで得られるサポートは、開発コストを削減できます。

+0

私は、その点が非常に大きいことを指摘したいと思います。私は非常にうまく動作するいくつかのマルチテラバイトのデータベースを知っています(彼らは適切に設計され、管理され、正確なハードウェアを持つ必要があります)。 – HLGEM

14

キー値、階層型、map-reduce、またはグラフのデータベースシステムは実装方法に非常に近く、物理的表現に大きく依存しています。これらのうちの1つを選択する主な理由は、魅力的なパフォーマンスの議論があり、データ処理戦略に非常によく合っているかどうかです。これらのシステムでは通常、アドホックなクエリは実用的ではないので、事前にクエリを決定するほうがよいでしょう。

リレーショナルデータベースシステムは、論理的なビジネス指向モデルを、基礎となる物理的表現と処理戦略から分離しようとします。この分離は不完全ですが、それでもかなり良いです。リレーショナル・システムは、ファクトを処理し、ファクトの集合から信頼できる情報を抽出するのに最適です。リレーショナルシステムは、アドホッククエリでも優れています。他のシステムは悪名高いです。それはビジネス界や他の多くの場所に最適です。そういうわけで、リレーショナルシステムは非常に普及しています。

ビジネスアプリケーションの場合、リレーショナルシステムはほとんど常に答えです。他のシステムでは、おそらく答えです。起こる必要のあるパイプラインのようにデータ処理の問題が増えていて、大量のデータがあり、すべてのクエリが前面に出ていることが分かっている場合は、別のシステムが適切かもしれません。

4

データが単なるリストであり、各アイテムに一意の識別子を派生させることができれば、KVSは良い一致です。それらは、新入生のコンピュータサイエンスで学んだ単純なデータ構造の近くの実装であり、複雑な関係を許容しません。

単純なテスト:データとそのすべての関係をリンクリストまたはハッシュテーブルとして表現できますか?はいの場合、KVSが動作する可能性があります。いいえの場合は、RDBが必要です。

あなたの環境で動作するKVSを見つける必要があります。主要なものでさえ、KVSesのサポートは、PostgreSQLとMySQL/MariaDBのためのものではありません。

関連する問題