2017-09-07 13 views
1

異なるソースから生成されたデータのHbaseストレージを開発しています。通常、同じソースからの列は、同時に検索される可能性が高くなります。予想される書込み/読出し比は、おおよそ1/10〜1/100の範囲にあります(ソースによって異なります)。Hbase複数の列ファミリと複数のテーブル

だから、私のために二つの選択肢があります:

  • 複数の列ファミリーは:ただ一つのテーブルと複数の列ファミリを作成、同じソースからのデータの各種類は、カラムファミリーを形成します。
  • 複数のテーブル:各ソースごとに1つのテーブル(1つの列ファミリを持つ)を作成します。

これは私の理解の一部ですが、間違っていれば私を修正してください。

  • 複数テーブルのソリューションは、新しいソースの動的追加に適しています。複数列ファミリソリューションではダウンタイムが発生する可能性があります。
  • 異なるソースの行キーの分布が異なる場合(int user_idとimage GUIDなど)、カーディナリティが異なる場合は、別のテーブルに分割するほうがよいでしょうか?
  • 同時に、同じ行キーの異なるソースから列を取得するためのいくつかの要件があります。このようにして、複数の列ファミリがより高速になります(わかりません)。

決定を下す前に、他に何か提案がありますか、それとも考慮する必要がありますか?複数テーブル/複数列ファミリが他のテーブルより優れている典型的なケースはありますか?異なるソースからのデータが関連していると、同じキーまたはキーが同じに入れて、同じキーに変換することができた場合

答えて

0

あなたのポイントは、単純なルールに従って、正しい

感謝異なる列ファミリのテーブル。あなたはより良いスキャンとより良いデータ配置を得るでしょう。

データを貼り付けることができない場合は、別のテーブルに配置します。 1つの大きなテーブルは問題を引き起こすだけです。スキャンが長くなり、列ファミリのほとんどが空になります。

関連する問題