使用impala查询salted hbase rowkey

k5hmc34c  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(405)

我想用hbase来存储网络事件,rowkey将是事件的时间戳。这将在hbase中创建热插拔,为了避免这种情况,我将向rowkey添加salt前缀。这将在所有区域均匀分布行。到目前为止没有问题。
但是我还想使用cloudera impala用sql查询这些数据。有没有可能用 Impala 和盐腌的划艇?或者我需要*sql查询来获得所有结果?

ztyzrc3y

ztyzrc3y1#

不幸的是, Impala 不支持这一点。我还发现impala在hbase上的性能非常差。我仍在尝试调整我的配置,以便性能更好。在我的实验中,Parquet地板似乎是最快的(x的100倍)。事实上,没有压缩的扁平tsv文件的性能比hbase好。下面介绍了使用hbase的impala的用例(直接来自cloudera文档):
通过impala查询hbase的用例
以下是使用impala查询hbase表的常用用例:
在impala中保留较大的事实表,在hbase中保留较小的维度表。事实表使用parquet或其他针对扫描操作优化的二进制文件格式。join查询扫描大型impala事实表,并在hbase中使用高效的单行查找交叉引用维度表。使用hbase存储快速递增的计数器,例如网页的浏览次数,或社交网络上的浏览次数,用户的连接数或帖子的投票数。hbase对于捕获这种可变数据非常有效:仅附加存储机制对于将每次更改写入磁盘非常有效,并且查询总是返回最新的值。应用程序可以从hbase查询这些特定的总计,并将结果与从impala查询的更广泛的数据集相结合。在hbase中存储非常宽的表。宽表有许多列,可能有数千列,通常记录一个重要主题的许多属性,例如在线服务的用户。这些表通常也是稀疏的,也就是说,大多数列的值都是null、0、false、空字符串或其他空值或占位符值(例如,任何特定的网站用户可能从未使用过某个网站功能,在他们的个人资料中填写过某个字段,访问过网站的某个特定部分,等等。)针对这种表的典型查询是查找一行以检索有关特定主题的所有信息,而不是求和、求平均值,或者像在典型的impala管理的表中那样过滤数百万行。
或者hbase表可以与一个更大的impala托管表连接。例如,分析代表站点web流量的大型impala表,并选出50个查看最多页面的用户。将该结果与hbase中的wide user表连接起来,以查找这些用户的属性。连接的hbase端将在hbase中产生50个高效的单行查找,而不是扫描整个用户表。
特别是针对hbase运行sql查询。你查过菲尼克斯吗?它确实支持salted表并提供sql语法。我不知道它有多快,也不知道它与dremel实现相比有多快。

相关问题