問題タブ [key-value-store]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - BigTable、SimpleDB などのデータベースのプロ
Google BigTable や Amazon SimpleDB などの新しい学校のデータストア パラダイムは、特にスケーラビリティを考慮して設計されています。基本的に、結合の禁止と非正規化は、これを達成する方法です。
ただし、このトピックでは、大きなテーブルでの結合は必ずしも高価である必要はなく、非正規化はある程度「過大評価」されているというのがコンセンサスのようです。スケーラビリティを達成するために単一のテーブル?これらのシステムに格納する必要があるのは、膨大な量のデータ (数テラバイト) ですか?
データベースの一般的な規則は、これらの尺度には当てはまりませんか? これらのデータベースの種類は、多くの類似オブジェクトを格納するように特別に調整されているためですか?
それとも、全体像が欠けていますか?
java - 分散型キー値ルックアップ システムが必要
(潜在的に) 数百 GB のデータ全体でキーと値のルックアップを行う方法が必要です。理想的には、Java とうまく連携する分散ハッシュテーブルに基づくものです。耐障害性があり、オープン ソースである必要があります。
ストアは永続的である必要がありますが、速度を上げるためにデータをメモリにキャッシュするのが理想的です。
複数のマシンからの同時読み取りと書き込みをサポートできる必要があります (ただし、読み取りは 100 倍一般的になります)。基本的に、目的は Web サービスのユーザー メタデータの初期ルックアップをすばやく行うことです。
誰でも何かお勧めできますか?
python - キー値ストアの作成
キー/バリュー ストア (おそらく Python) を作成しようと考えていますが、これはほとんど経験のためであり、非常に便利な製品だと思います。いくつか質問があります。一般に、キーと値のペアは通常、メモリとディスクにどのように保存されますか? ディスクに保存されているものをメモリにロードするにはどうすればよいでしょうか? キー/値ストアはすべてのキー/値ペアを一度にメモリに保持しますか? それともディスクから読み取られますか?
この件に関する文献をいくつか見つけようとしましたが、あまりうまくいかず、ここの誰かが私を助けてくれることを望んでいました.
xml - 検索エンジンをキー バリュー ストアとして使用することの利点と欠点は何ですか?
Lucene のような検索エンジンと、完全に保存する必要がある一連の XML ドキュメントがある場合、各ドキュメントに含まれる一意の主キーを指定して XML ドキュメントを返すためのキー値ストアとして検索エンジンを使用することの利点と欠点は何ですか?
memcached - 拡張可能なオブジェクトのキー値ストア
http://www.infoq.com/presentations/newport-evolving-key-value-programming-modelは KV ストアに関するビデオであり、redisがオブジェクトの属性を格納するための列ベースのスタイルを促進するという前提が全体にあります。オブジェクトをシリアル化して単一のキーの下に格納するのではなく、個別のキーの下で。
(この質問はredis 固有のものではありませんが、一般的な KV ストアの一般的なスタイルとベスト プラクティスです。)
たとえば「人」のブロブの代わりに、redis は、オブジェクトの属性が別のキーとして格納される列ベースのスタイルを推奨します。
これがベストプラクティスなのか、人々が異なるアプローチを取るのか、私は興味があります.
たとえば、単一のキーの下でオブジェクトを「ピクル」できます。これには、単一のリクエストで取得または設定できるという利点があります。
または、人は、最初の項目がフィールド名インデックスなどのリストになる可能性がありますか?
これは私に考えさせました-階層的なキーストアが欲しいです、例えば
次に、トランザクションを追加します。
スケーリングの観点から、get と set のバッチ処理が重要になりますか?
これをサポートしている、または他の適用可能なアプローチを持っている主要なストアはありますか?
database - SQL DB と Key-Value ストア (Redis) をどのように組み合わせるのですか?
コードをレビューしていて、膨大な時間を費やしていることに気付きました
- データベースから行を取得し、
- XMLとしてフォーマットし、
- ブラウザへのAJAX GET、そして
- 私のローカルデータストアとしてハッシュされたJavaScriptオブジェクトに変換します。
更新時には、プロセスを逆にする必要があります (XML の代わりに POST を使用する場合を除く)。
Redis を検討し始めたばかりなので、オブジェクトをサーバー上のキーと値のストアに保持し、JSON を使用して JS クライアントに直接転送するだけで、膨大な時間を節約できると考えています。しかし、私の弱い心は、SQL DB を離れることによって何をあきらめるかを予測できません (つまり、GROUP BY/HAVING クエリをあきらめるのが怖いです)。
私のデータについては、次のものがあります。
- 多対多の関係、つまり obj-tags、obj-groups など。
- そのような組み合わせによるオブジェクトのクエリ、つまり WHERE タグ IN ('a', 'b','c') AND グループイン ('x','y')
- 自己結合、つまり各オブジェクトのすべてのタグ WHERE tag='a' (sql group_concat())
- 多くの外部結合、つまり OUTER JOIN rating ON o.id = rating.obj_id
- REDIS の強みと思われるフィード
Key-Value と SQL DB をうまく混在させるにはどうすればよいでしょうか?
たとえば、SQL RANGE クエリ (つまり、WHERE obj.id IN (1,4,6,7,8,34,876,9879,567,345, ...)、またはその逆?
アイデア/提案を歓迎します。
database - NoSQLデータストアを使用して発生したスケーラビリティの問題は何ですか?
NoSQLは、リレーショナルデータベースとACID保証の歴史を破る非リレーショナルデータストアを指します。人気のあるオープンソースのNoSQLデータストアは次のとおりです。
- Cassandra(表形式、Javaで記述、Cisco、WebEx、Digg、Facebook、IBM、Mahalo、Rackspace、Reddit、Twitterで使用)
- CouchDB(Erlangで書かれたドキュメント、BBCとEngine Yardで使用)
- Dynomite(Key-Value、Erlangで記述、Powersetで使用)
- HBase(Key-Value、Javaで記述、Bingで使用)
- Hypertable(表形式、C ++で記述、Baiduで使用)
- Kai(Key-Value、Erlangで記述)
- MemcacheDB(Key-Value、Cで記述、Redditで使用)
- MongoDB(C ++で記述されたドキュメント、Electronic Arts、Github、NY Times、Sourceforgeで使用)
- Neo4j(グラフ、Javaで記述、一部のスウェーデンの大学で使用)
- Project Voldemort(Key-Value、Javaで記述、LinkedInで使用)
- Redis(Key-Value、Cで記述、Craigslist、Engine Yard、Githubで使用)
- Riak(Key-Value、Erlangで記述、ComcastおよびMochi Mediaで使用)
- Ringo(Key-Value、Erlangで記述、Nokiaが使用)
- Scalaris(Key-Value、Erlangで記述、OnScaleで使用)
- Terrastore(ドキュメント、Javaで記述)
- ThruDB(C ++で記述され、JunkDepot.comで使用されるドキュメント)
- 東京内閣/東京暴君(Key-Value、Cで記述、Mixi.jp(日本のソーシャルネットワーキングサイト)で使用)
あなた(SOリーダー)がデータストアを使用して解決した特定の問題と、使用したNoSQLデータストアについて知りたいのですが。
質問:
- NoSQLデータストアを使用して解決したスケーラビリティの問題は何ですか?
- どのNoSQLデータストアを使用しましたか?
- NoSQLデータストアに切り替える前にどのデータベースを使用しましたか?
私は直接の経験を探していますので、それがない限り答えないでください。
nosql - キーと値のペアの noSQL db が従来のリレーショナル DB よりも高速なのはなぜですか
私が使用しているリレーショナル データベースを置き換えるために、キーと値のペア データ システムを調査するように勧められました。
私がよく理解していないのは、これがクエリの効率をどのように改善するかです。私が理解していることから、構造データベースをキーと値の 1 つの大きな長いリストに変えるだけで、クエリをより効率的にするのに役立つ多くの情報を捨てることになりますか?
ポイントを完全に逃しましたか?
database - 最速のキーと値のペアのデータベース?
利用可能な最速の無料のキーと値のペア データベースを探しています。データベースはサーバーベースである必要はなく、アプリケーションにリンクできます。東京内閣は承知しております。他の提案はありますか?