異なるソースから生成されたデータのHbaseストレージを開発しています。通常、同じソースからの列は、同時に検索される可能性が高くなります。予想される書込み/読出し比は、おおよそ1/10〜1/100の範囲にあります(ソースによって異なります)。Hbase複数の列ファミリと複数のテーブル
だから、私のために二つの選択肢があります:
- 複数の列ファミリーは:ただ一つのテーブルと複数の列ファミリを作成、同じソースからのデータの各種類は、カラムファミリーを形成します。
- 複数のテーブル:各ソースごとに1つのテーブル(1つの列ファミリを持つ)を作成します。
これは私の理解の一部ですが、間違っていれば私を修正してください。
- 複数テーブルのソリューションは、新しいソースの動的追加に適しています。複数列ファミリソリューションではダウンタイムが発生する可能性があります。
- 異なるソースの行キーの分布が異なる場合(int user_idとimage GUIDなど)、カーディナリティが異なる場合は、別のテーブルに分割するほうがよいでしょうか?
- 同時に、同じ行キーの異なるソースから列を取得するためのいくつかの要件があります。このようにして、複数の列ファミリがより高速になります(わかりません)。
決定を下す前に、他に何か提案がありますか、それとも考慮する必要がありますか?複数テーブル/複数列ファミリが他のテーブルより優れている典型的なケースはありますか?異なるソースからのデータが関連していると、同じキーまたはキーが同じに入れて、同じキーに変換することができた場合
: