hadoop—从hbase获取列值的优化方法?

wfveoks0  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(224)

我只知道hbase中的columnfamily和columnname,我想检索该特定列的所有唯一值,并在最重要的时间内填充到我的webapplication gui中。
一种方法是尝试应用colfamily和columnname进行扫描,这需要花费时间,并让最终用户等待很长时间。
有没有其他有效的方法?
如果你能帮忙就太好了。谢谢

nfg76nw0

nfg76nw01#

没有什么神奇的方法可以让用户界面快速扫描这些数据。它需要从磁盘上翻阅列族中的所有数据以获得所需的信息。几乎只有一件事,你会得到从hbase在任何类型的互动方式是一个特定的rowkey获取或一个非常小的范围扫描。
以下是一些高级方法:
你关心延迟/更新吗?使用mapreduce作业或扫描每隔20分钟重新计算一次唯一列表,并将结果存储在某个文本文件中。
使用协处理器确定每个区域的唯一列表,然后在客户机中将唯一列表聚合为一个唯一列表。这可能仍然是太慢,但它会加快你的扫描,如果你有大量的重复和你的网络正在饱和。
重新考虑如何在hbase中存储数据。与rdbms不同,我不能随意地向列添加索引。在模式设计中,您必须考虑如何访问数据,然后在此基础上进行模式设计。你想尽快得到你的独特清单吗?也许您应该用原始值作为键构建第二个表,然后将指针指向原始行键。
你能在一个单独的系统中跟踪唯一的值吗?在这个系统中你能快速获取信息吗?

相关问题