Java HBase数据模型的改进

Java HBase数据模型的改进,java,database-design,hbase,Java,Database Design,Hbase,我开始使用HBase,我想知道我设计的模型是否合适,如果合适,如何改进服务器端的查询 我想在HTML表格中显示一些用户信息,第一次显示汇总信息,单击时显示详细信息 这就是模型: 每个用户的汇总信息: Key Sum:1_Field1 Sum:1_Field2 Sum:2_Field1 Sum:2_Field2 ... Id:698745874588 Id:698745874580 90 Value11 Value12 Value21 Value22

我开始使用HBase,我想知道我设计的模型是否合适,如果合适,如何改进服务器端的查询

我想在HTML表格中显示一些用户信息,第一次显示汇总信息,单击时显示详细信息

这就是模型:

每个用户的汇总信息:

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
详细信息:

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…),第二个列族(Sum)具有我希望在第一个外观中显示的字段

此外,我还有第二个表,其中我将细节Id(1,2…)访问的所有细节信息存储为行

我对这种模式的主要担忧是:

  • 就性能而言,这是访问为用户保存的最后记录的最佳方法还是可以改进的方法

  • 我目前正在为给定用户获取整行。然后我获取ID族,读取最后10条记录,并按列名将此数据作为:
    [ID\u VALUE]\u Field1、[ID\u VALUE]\u Field2,依此类推。有没有办法在HBase中而不是在Java服务器中实现这一点?我想知道当一个用户有1m条记录时会发生什么,会有1m(Id)+Xm(Sum)列

  • 我害怕将这两个表合并在一个表中,因为表在列中会增长很多,但是如果我将它保留在两个表中,它就不会增长。我们的项目比用户多,所以我认为正常的增长应该是行,而不是列。我错了吗


很抱歉,我无法正确获取它。你们为什么有两张桌子?我没有得到你的模式。根据你的说法,这就是我正在努力改进的,不需要有两个表吗?我不是说你不能有两个表。但是如果你能通过一张桌子来实现你的目标,那就更好了。实际上,我在理解你的模式时遇到了困难。@Tariq我已经添加了更多的信息(最后一个问题)