0

私は HBase を使い始めています。私が設計したモデルが適切かどうか、もし適切であれば、サーバー側から作成されたクエリを改善する方法を知りたいです。

ユーザー情報を HTML テーブルに表示して、初めて要約情報を表示し、クリックすると詳細情報を表示したいと考えています。

これはモデルです:

SUMMARIZED_INFO_PER_USER:

Key Sum:1_Field1 Sum:1_Field2 Sum:2_Field1 Sum:2_Field2 ... Id:698745874588 Id:698745874580

 90     Value11       Value12     Value21      Value22   ...       1                2

詳細情報:

Key  Det:Field1  Det:Field2  Det:Field3  Det:Field4  ....

 1     Value11     Value12     Value13    Value14

 2     Value21     Value22     Value23    Value24

特定のユーザー (90) が与えられた場合、要約された詳細テーブルに Id という名前の列ファミリーがあり、列名として逆のタイムスタンプ (自動降順を利用するため) があり、詳細 ID (1、2...) があり、最初の外観で表示したいフィールドを持つ 2 番目のファミリ (Sum)。

さらに、詳細 Id(1, 2 ...) によってアクセスされるすべての詳細情報を行として格納する 2 番目のテーブルがあります。

このモデルに関する私の主な懸念事項は次のとおりです。

  • パフォーマンスの観点から、ユーザーのために保存された最後のレコードにアクセスするのが最善の方法ですか、それとも改善可能ですか?

  • 現在、特定のユーザーの行全体を取得しています。次に、ID ファミリーを取得し、最後の 10 レコードを読み取り、このデータを列名で次のように取得します[ID_VALUE]_Field1, [ID_VALUE]_Field2, and so on。Javaサーバーではなく、HBaseでこれを行う方法はありますか? ユーザーに 1m のレコードがあり、1m(Id)+Xm(Sum) の列がある場合はどうなるのだろうか...

  • これらの 2 つのテーブルを 1 つに結合するのは怖いです。なぜなら、テーブルは列で大きくなるからです。ユーザーよりもアイテムが多いので、通常の成長は列ではなく行で行うべきだと思います。私が間違っている?

4

0 に答える 0