我遇到以下规则:
使用Kafka和spark-streaming将数据解析为HBase。
我想使用HBase和TTL是3小时,版本控制是1,符合上述条件。问题是我很困惑如何组织HBase中的数据以获得更快的查询响应,我应该使用具有场地名称或场地名称的单个列作为不同的列名称吗?
这将是一个更好的选择,为什么?
需要执行的查询是: 1.用户A现在在哪里? 2.目前X会场的用户是什么?
答案 0 :(得分:1)
最有效的查询基于HBase表的行键。 我会使用用户名作为行键,以便能够快速获取特定用户的信息。而且每行需要一列 - 场地。
显然,要收集所有数据(查询2:用户在场地X的位置),您需要扫描整个(部分)表格。所以效率不高。查看HBase的二级索引 - 如果您遇到此类查询的性能问题。
答案 1 :(得分:1)
So, to address above scenario I would suggest having two table:
Since you use Kafka and Spark, ingesting to two tables should not affect your performance.
Please let me know if you need more details.