我有3千万条记录放入表中,但是当尝试从那里查找一条记录时,我将花费大量时间进行检索。您能否建议我如何生成行键,以便我们可以快速获取记录。

现在,我已经将1,2,3的自动增量ID用作行键,以及需要采取哪些步骤来提高性能。让我知道你的担心

最佳答案

通常,当我们要提高SQL结构化表的性能时,我们会遵循一些基本/常规调整,例如将适当的索引应用于查询中使用的列。将适当的逻辑分区或存储桶应用于表。给缓冲区足够的内存来执行一些复杂的操作。

当涉及大数据时,尤其是如果您使用hadoop,真正的问题在于硬盘和缓冲区之间的上下文切换。和不同服务器之间的上下文切换。您需要确保如何减少上下文切换以获得更好的性能。

一些注意事项:

使用解释功能了解查询结构并尝试提高性能。

如果您使用整数row-key,那么它将提供最佳性能,但始终在表的开头创建row-key / index。因为后来的性能被杀死。

在Hive / Impala中针对hbase表创建外部表时,将hbase行键映射到Hive / Impala中的字符串列。如果不这样做,则查询中将不使用行键,并且将扫描整个表。

永远不要在行键查询中使用LIKE,因为它会扫描整个表。使用BETWEEN或=, =。
如果您没有在查询中使用针对行键列的过滤器,则行键设计可能是错误的。行键应设计为包含查找特定数据子集所需的信息

关于hadoop - 如何定义hbase行键,以便在表中有数百万条记录时以优化的方式获取记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45011774/

10-11 04:30