全表扫描|学习笔记

简介: 快速学习 全表扫描

开发者学堂课程【分布式数据库 HBase 快速入门:全表扫描】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/101/detail/1752


全表扫描


内容简介:

1.获取 table 对象

2.构建扫描器

3.遍历数据并打印

 

1.获取 table 对象

Scan 扫描全表可以指定 startrow 和 stoprow,扫描表里面只需添加一个表名作为参数(例如:scanTable(String tableName)),在 getScanner 括号里面传入一个 new Scan。

 

2.构建扫描器

在全表扫描里,scan 不用格外添加列,在使用 startrow 和 stoprow 时,需要从外界传入。

因为表里有多条数据,所以得出 ResultScanner 是一个集合,如果想打印每条数据的话,要对整个集合进行一个 for 循环。

一个 result 与一个 rowkey 一一对应,但是一个 rowkey 里面可以有多个单元格。具体打印某一条数列是打印单元格里面的数列。

 

1)RowKey

与 nosq1 数据库们一样,RowKey 是用来检索记录的主键。访间 HBASE table 中的行,只有三种方式:

(1)通过单个 RowKey 访问

(2)通过 RowKey 的 range(正则)

(3)全表扫描

RowKey 行键 (RowKey) 可以是任意字符串(最大长度是 64KB,实际应用中长度一般为10-100bytes),在 HBASE 内部,RowKey 保存为字节数组。

存储时,数据按照 RowKey 的典序( byte order)排序存储。

设计 RowKey 时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)。

2)Cell

由 {rowkey,column Family:columu,version} 唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存贮。

关键字:无类型、字节码,

每个 cell 有自己的 r owkey,有 qualifier 列名,family 列族,输入 value 会发现所有的都是过时的。

要调用工具类,用 cellutil 去调用克隆的 value,将 value 取出。

3.遍历数据并打印

接下来打印 出rowkey,列名,列族,值,用 cellutil 的工具类克隆出 row,将 cell传入,用 bytes 数组 bytes toString 转成 string。

用“RK” 加上其值,列族 “CF”,列名 “CN”, 值“VALUE”同理,注意,在CF,CN,VALUE 前加入“,”,防止和前面粘连。最后,在 for 循环结束之后关闭 table。

打印两条数据,得到结果。

需要注意的是 for 循环里面嵌套了 for 循环,先是 rowkey 的一个封装,再是 cell 的一个封装。

整个结构为一个 rowkey 下对应于多个列,一个列里有多个版本,cell是到了版本的位置。

相关文章
|
7月前
|
关系型数据库 MySQL 数据库
MySQL索引和查询优化
MySQL索引和查询优化
65 1
|
1月前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
77 3
|
1月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
53 3
|
2月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
|
SQL 存储 缓存
Mysql优化之explain你真的会吗?
Mysql优化之explain你真的会吗?
81 0
|
存储 关系型数据库 MySQL
索引及查询优化
索引及查询优化
68 0
|
存储 关系型数据库 MySQL
|
存储 SQL 关系型数据库
Mysql优化之索引(二)
Mysql优化之索引(二)
Mysql优化之索引(二)
|
存储 SQL 缓存
MySQL索引与查询优化
MySQL由于其性能高、成本低、可靠性好,已经成为最流行的开源数据库之一。提升查询速度的技术有很多,其中最重要的就是索引。当你发现自己的查询速度慢的时候,最快解决问题的方法就是使用索引。索引的使用是影响查询速度的重要因素。在使用索引之前其他的优化查询的动作纯粹是浪费时间,只有合理地使用索引之后,才有必要考虑其他优化方式。
98 0
MySQL索引与查询优化
|
SQL 存储 关系型数据库
你不得不知的MYSQL优化——索引下推
你不得不知的MYSQL优化——索引下推
245 0
你不得不知的MYSQL优化——索引下推