私は 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 つに結合するのは怖いです。なぜなら、テーブルは列で大きくなるからです。ユーザーよりもアイテムが多いので、通常の成長は列ではなく行で行うべきだと思います。私が間違っている?