我开始使用 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...),并且第二个家庭(Sum),它具有我想在第一眼中展示的领域。
此外,我还有第二个表,其中将详细 Id(1, 2 ...) 访问的所有详细信息存储为行。
我对这个模型的主要担心是:
就性能而言,这是访问为用户保存的最后记录的最佳方式还是可以改进?
我目前正在为给定用户获取整行。然后我得到 ID 系列,读取最后 10 条记录,并按列名将此数据作为:
[ID_VALUE]_Field1, [ID_VALUE]_Field2, and so on
。有没有办法在 HBase 中做到这一点,而不是在 Java 服务器中?我想知道当用户有 1m 条记录时会发生什么,会有 1m(Id)+Xm(Sum) 列...我害怕将这两个表合二为一,因为表会在列中增长很多,但如果我把它放在两个表中,它就不会。我们的项目比用户多,所以我认为正常的增长应该是行而不是列。我错了吗?