Region中的数据操作之扫描(查询)

本文详细介绍了HBase RegionServer中Scanner的工作原理,包括Scanner相关接口、Scanner结构、KeyValueHeap以及StoreScanner的next操作流程。重点阐述了StoreScanner如何在Store和Region层次上进行数据扫描,并利用ScanQueryMatcher进行条件匹配,处理删除标记和版本控制,以满足查询需求。
摘要由CSDN通过智能技术生成

客户端有两种方式查询数据,一种是Get,另一种是Scan。这两种操作请求传递到RegionServer,都是通过Scanner对文件扫描实现查询。注意,客户端Scanner与RegionServer器端的Scanner是两个不同的概念,客户端Scanner用于客户端对查询结果进行迭代,而RegionServer端的Scanner用于扫描数据文件获取查询结果。本节讲解RegionServer端的Scanner。

每个Scanner内部都有一个指针,指向下一次读取的位置。该指正可以通过seek操作重定位。

Scanner相关接口

Hbase定义了两个与Scanner相关的接口,KeyValueScanner和InternalScanner。两个接口的区别在于对数据文件next操作不同,KeyValueScanner一次next操作只能取出指针指向的KeyValue,InternalScanner可以取出指针及其后面的同行KeyValues。
KeyValueScanner有三个基本操作peek,seek,next。peek取出当前KeyValue,但指针不移动。next取出当前KeyValue,且指针移动到下一个KeyValue。seek用于指正重定位。
InternalScanner的next操作取出当前行的KeyValue序列,并移动指针。

Scanner结构

前面讲到,Hbase是key-value存储系统,采用层次化抽象的方式,将数据以表格的形式呈现给最终用户。RegionScanner的内部实现也是层次化的,且其层次结构与数据的层次结构对应。如下图所示,RegionScanner包含多个StoreScanne
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值