リレーショナルDB上でキー値データストアを選択するのはいつですか?どちらを決定するにあたってどのような考慮事項がありますか?両方の最善のルートの混在はいつですか?可能であれば、例を提供してください。キー値データストアと従来のリレーショナルDBを使用する場合
答えて
私の経験では、伝統的な対秘密の慣行を使用するかどうかという疑問を尋ねていても、伝統的なものになります。難解なプラクティスはセクシーで挑戦的で楽しいですが、99.999%のアプリケーションで従来のアプローチが必要です。 KV対リレーショナルに関して
、あなたははに尋ねるべきである質問は次のとおりです。
なぜ私ははこのシナリオのために、リレーショナル・モデルを使用したくないなります...
あなたはこのシナリオを説明していないので、誰もあなたにそれを使用すべきではない理由を伝えることは不可能です。 KVの「すべてを捕まえる」理由はスケーラビリティですが、今は問題ありません。あなたは最適化のルールを知っていますか?
- しないでください。
- (専門家のみ)今はしないでください。
KVは、スケーラビリティに最適化されたソリューションであり、アプリケーションにはまったく必要ない可能性が高い最適化ソリューションです。
このコメントは質問に答えることができません。誰がいつ、なぜリレーショナルデータベースを介してKVストアを使用することを選択しますか? – aridlehoover
伝統的なリレーショナルデータベースでは、ある点を超えて拡大縮小する問題があります。その点はあなたがやろうとしていることに少し依存しています。
クラウドコンピューティングのサプライヤはすべて、キーバリューのデータストアを提供しています。
しかし、複雑なデータ構造を持つアプリケーションがあれば、リレーショナルデータベースを使用することで得られるサポートは、開発コストを削減できます。
私は、その点が非常に大きいことを指摘したいと思います。私は非常にうまく動作するいくつかのマルチテラバイトのデータベースを知っています(彼らは適切に設計され、管理され、正確なハードウェアを持つ必要があります)。 – HLGEM
キー値、階層型、map-reduce、またはグラフのデータベースシステムは実装方法に非常に近く、物理的表現に大きく依存しています。これらのうちの1つを選択する主な理由は、魅力的なパフォーマンスの議論があり、データ処理戦略に非常によく合っているかどうかです。これらのシステムでは通常、アドホックなクエリは実用的ではないので、事前にクエリを決定するほうがよいでしょう。
リレーショナルデータベースシステムは、論理的なビジネス指向モデルを、基礎となる物理的表現と処理戦略から分離しようとします。この分離は不完全ですが、それでもかなり良いです。リレーショナル・システムは、ファクトを処理し、ファクトの集合から信頼できる情報を抽出するのに最適です。リレーショナルシステムは、アドホッククエリでも優れています。他のシステムは悪名高いです。それはビジネス界や他の多くの場所に最適です。そういうわけで、リレーショナルシステムは非常に普及しています。
ビジネスアプリケーションの場合、リレーショナルシステムはほとんど常に答えです。他のシステムでは、おそらく答えです。起こる必要のあるパイプラインのようにデータ処理の問題が増えていて、大量のデータがあり、すべてのクエリが前面に出ていることが分かっている場合は、別のシステムが適切かもしれません。
データが単なるリストであり、各アイテムに一意の識別子を派生させることができれば、KVSは良い一致です。それらは、新入生のコンピュータサイエンスで学んだ単純なデータ構造の近くの実装であり、複雑な関係を許容しません。
単純なテスト:データとそのすべての関係をリンクリストまたはハッシュテーブルとして表現できますか?はいの場合、KVSが動作する可能性があります。いいえの場合は、RDBが必要です。
あなたの環境で動作するKVSを見つける必要があります。主要なものでさえ、KVSesのサポートは、PostgreSQLとMySQL/MariaDBのためのものではありません。
- 1. リポジトリパターンを使用する場合の従来のクラス
- 2. 従来のASP。新しいキーと値を辞書に表示
- 3. Grails、従来のDBのnull値はPropertyAccessExceptionを返します
- 4. エラーiis7.5を使用している場合、従来のASPのServerXMLHTTP.send
- 5. Droolsの統合と従来の方法
- 6. Tumblr APIとの従来のASP統合
- 7. Codeigniter:ドロップダウンデータがdbから来た場合はset_select()を使用します
- 8. Googleのデータストア - キー値のクエリ
- 9. GenMyModelリレーショナルDB
- 10. hibernateを使用した従来のマッピング
- 11. サーブレットエイリアシングを使用した従来のサーブレットチェーン
- 12. 従来のDjangoプロジェクトでvirtualenvを使用
- 13. 外部キーが非従来型の場合にJSONエンコーディングに関連モデルオブジェクトを追加する
- 14. 従来のASPでWINWORD.EXEを使用する場合、どうすれば終了できますか?
- 15. フラスコを従来のデータベースと統合する
- 16. WCF Webserviceを従来のaspに統合
- 17. "従来の"サイト用のNode.js
- 18. Python:defaultdictの場合、キーと値の出力
- 19. rspecを使用したテストテキストファイルの標準/従来の場所は何ですか?
- 20. OauthとAPIキーの認証タイプを使用する場合
- 21. GraphQLスキーマとリレーショナルDBスキーマの互換性
- 22. キー値データベースWindowsの場合?
- 23. Selenium - 同じクラスの@FindByと従来のdriver.findByElementを使用
- 24. C++ ABIを従来のライブラリと組み合わせる
- 25. 値が反復される場合、来年は値を返す
- 26. Expression Web 2とVistaを使用した従来のASP
- 27. ADOと従来のASPを使用した単純なクエリ
- 28. RAKEタスクを使用してCSVをPOSTGRESリレーショナルDBに移動
- 29. バージョンコントロールと従来のソースコントロール
- 30. TomEEと従来のエンティティBean
私は上記のコメントが嫌いです。これは、Google/Yahoo/Twitter以外の誰もNOSQLを使用してはならないと示唆しているようなものです。それはばかげている。 –