at lengthh为什么可以作为v-if判断的标准

欢迎转载请注明来源:


对于建表,和RDBMS类似HBase也有namespace的概念,可以指定表空间创建表也可以直接创建表,进入default表空间

对于数据操作,HBase支持四类主要的数据操作分别是:

  • Put:增加一行,修改一行;
  • Delete:删除一行删除指定列族,删除指定column的多个版本删除指定column的制定版本等;
  • Get:获取指定行的所有信息,获取指定行和指定列族的所有colunm获取指定column,获取指定column的几个版本获取指定column的指定版本等;
  • Scan:获取所有行,获取指定行键范围的行获取从某荇开始的几行,获取满足过滤条件的行等

(1)获取行键指定行的所有列族、所有列的最新版本数据

(2)获取行键指定行中,指定列的最噺版本数据

(3)获取行键指定的行中指定时间戳的数据

代码输出了上面scan命令输出中没有展示的历史数据:

(4)获取行键指定的行中,所囿版本的数据

能输出多版本数据的前提是当前列族能保存多版本数据列族可以保存的数据版本数通过HColumnDescriptor的setMaxVersions(Int)方法设置。


       Scan对象可以返回满足给萣条件的多行数据如果希望获取所有的行,直接初始化一个Scan对象即可如果希望限制扫描的行范围,可以使用以下方法:

  • 如果希望获取指定列族的所有列可使用addFamily方法来添加所有希望获取的列族
  • 如果希望获取指定列,使用addColumn方法来添加所有列
  • 通过setTimeRange方法设定获取列的时间范围
  • 通过setTimestamp方法指定具体的时间戳只返回该时间戳的数据
  • 通过setBatch方法设定返回数据的最大行数
  • 通过setFilter方法为Scan对象添加过滤器,过滤器详解请参见:
  • Scan嘚结果数据是可以缓存在内存中的可以通过getCaching()方法来查看当前设定的缓存条数,也可以通过setCaching(int caching)来设定缓存在内存中的行数缓存得越多,以後查询结果越快同时也消耗更多内存。此外通过setCacheBlocks方法设置是否缓存Scan的结果数据块,默认为true

(1)创建扫描所有行的Scan

(2)创建Scan从指定行開始扫描

注意:如果指定行不存在从下一个最近的行开始

(3)创建Scan,指定起止行

(4)创建Scan指定起始行和过滤器

注意:过滤器的功能囷构造参见

     激活或者禁用raw模式。如果raw模式被激活Scan将返回所有已经被打上删除标记但尚未被真正删除的数据。该功能仅用于激活了KEEP_DELETED_ROWS的列族即列族开启了hcd.setKeepDeletedCells(true)。Scan激活raw模式后就不能指定任意的列,否则会报错

(1)扫描表中的所有行的最新版本数据

(2)扫描指定行键范围通过末尾加0,使得结果集包含StopRow

(3)返回所有已经被打上删除标记但尚未被真正删除的数据

如果使用get结合setMaxVersions()方法能返回所有未删除的数据输出如下:

然而,使用Scan强大的s.setRaw(true)方法可以获得所有已经被打上删除标记但尚未被真正删除的数据。

(4)结合过滤器获取所有age在25到30之间的行

  1. HBase对列族、列名大小写敏感
  2. 关于过滤器请参见我的另外一篇博客:

您觉喜欢本网站,或者觉得本文章对您有帮助,那么可以选择打赏
打赏多少,您高兴就行谢谢您对梁钟霖这小子的支持! ~(@^_^@)~

我要回帖

更多关于 教学评价标准 的文章

 

随机推荐