HBase是一个分布式的、面向列的开源数据库,不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
项目中用到了hbase数据库,因为查询方式和以前用过的数据库很不同所以,想将摸索过程记录下来以便之后查看。
hbase查询最大的不同在于它使用了rowkey,通过扫描rowkey可以最快速的对数据进行查询,所以在建表初期rowkey的设计工作就尤为重要,因为会影响之后查找的使用工作。hbase的扫描查找分为get\scan两种,get为获取单行数据,而scan为获取多行数据,此处主要讲解scan查询。而查询方式也分为两种,一种就是针对rowkey的查询,一种就是针对列簇family和字段qualifier的使用过滤器查询。
在项目中使用的基本流程为先创建config(hbase数据库基本配置信息)
Configuration conf = HBaseConfiguration.create();
在set好配置信息之后创建hbase表对象
HTable ht = new HTable(conf, "tableName");
创建好之后就开始构造scan扫描器了,scan不进行具体配置的话为全表扫描,使用ResultScanner对象接收查询结果。
Scan scan = new Scan();
ResultScanner rs = ht.getScanner(scan);