HBase scan查询缓存优化 setBatch和setCaching的区别

HBase的查询实现只提供两种方式:

1、按指定RowKey获取唯一一条记录,get方法(org.apache.hadoop.hbase.client.Get)
2、按指定的条件获取一批记录,scan方法(org.apache.hadoop.hbase.client.Scan)


实现条件查询功能使用的就是scan方式,scan在使用时有以下几点值得注意:
1、scan可以通过setCaching与setBatch方法提高速度(以空间换时间);
2、scan可以通过setStartRow与setEndRow来限定范围([start,end)start是闭区间,end是开区间)。范围越小,性能越高。
通过巧妙的RowKey设计使我们批量获取记录集合中的元素挨在一起(应该在同一个Region下),可以在遍历结果时获得很好的性能。
3、scan可以通过setFilter方法添加过滤器,这也是分页、多条件查询的基础。

参考:
https://blog.csdn.net/caoli98033/article/details/44650497

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HBase 是一个 NoSQL 数据库,常用于存储大量结构化数据。以下是一些优化 HBase 查询性能的建议: 1. 数据模型优化HBase 的数据模型设计很重要。应该根据数据访问模式设计表结构,尽量避免全表扫描。一般情况下,使用行键设计表结构,将相关数据存储在同一行中,可以提高查询效率。 2. 使用过滤器:HBase 支持使用过滤器来限制查询结果的范围,可以避免扫描整个表,提高查询性能。过滤器包括行键过滤器、列族过滤器、列限定符过滤器、值过滤器等。 3. 优化扫描器:HBase 中的扫描器(Scanner)用于扫描表中的数据。在使用扫描器时,应该使用缓存和批量读取来减少网络传输和 I/O 操作。 4. 预分区:对于需要大量查询的表,可以使用预分区(Pre-Splitting)来提高查询性能。在创建表时,可以指定初始预分区数量,这样可以将数据均匀地分布在多个 Region 中,避免数据倾斜,提高查询效率。 5. 数据块缓存HBase 的数据存储在 HDFS 上,可以使用数据块缓存来提高查询性能。可以将最常用的数据块缓存到内存中,以减少磁盘 I/O 操作。 6. 调整参数:可以根据具体的场景,调整 HBase 的参数来优化查询性能。如调整 Region 大小、缓存大小、最大连接数等。 7. 压缩数据:对于存储在 HBase 中的大量数据,可以使用压缩算法来减小数据存储空间,从而减少网络传输和磁盘 I/O 操作。 以上是一些优化 HBase 查询性能的建议,实际优化时应根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六mo神剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值