3

Riak はキーを分離する方法としてバケットを使用するため、バケット内にバケットを持つことは可能ですか? そうでない場合、複数のアプリ用に多くのバケットを使用して Riak セットアップを整理するにはどうすればよいでしょうか。

基本的な問題は、Riak 内で「データベース」と「テーブル」を表現する方法です。バケットはテーブルに変換されるので、データベースに変換されるのは何ですか?

プログラミング言語の名前空間には通常、階層があります。バケットは本質的に名前空間であるため、Riak バケットが階層を許可することも理にかなっています。

4

1 に答える 1

10

Riakは、バケットがキーのプレフィックスにすぎない非常に大きなkey -> value「テーブル」と考える必要があります。バケツがバイナリオブジェクトである限り、バケツで何でもできることがわかったとき。

線形の「テーブル」を作成できます。

<<"table1">>
<<"table2">>

または、階層を作成できます。

<<"db1.table1">>
<<"db1.table2">>
<<"db2.table1">>
<<"db2.table2">>

または、タプルをバケットとして使用することもできます:

1> term_to_binary({"db1", "table1"}).
<<131,104,2,107,0,3,100,98,49,107,0,6,116,97,98,108,101,49>>
2> term_to_binary({"db1", "table2"}).
<<131,104,2,107,0,3,100,98,49,107,0,6,116,97,98,108,101,50>>
3> term_to_binary({"db2", "table1"}).
<<131,104,2,107,0,3,100,98,50,107,0,6,116,97,98,108,101,49>>
4> term_to_binary({"db2", "table2"}).
<<131,104,2,107,0,3,100,98,50,107,0,6,116,97,98,108,101,50>>
于 2011-05-26T15:51:15.483 に答える