HBase中使用sql语句查询表中数据记录(绝对原创,转载请注明地址)

本文介绍了如何在HBase中使用SQL语句进行数据查询、统计和分组操作,包括计数、求和等,并提及了在大数据量场景下优化查询速度的建议,还分享了对框架的重构过程,支持在本地进行HBase操作。

前言


       每天进行hbase 的shell操作,极为不便,虽有hive可以进行查询,但是效率之低,时间之慢也非常无奈,于是便想着自己写一些接口可以实现hbase的普通查询、统计、分组等功能,经过近1天的努力,终于完成了一些功能,还在不断完善,希望可以给一些hbase的同行们提供一些方便。

思路


 将开发好的hsql.jar上传到hbase的安装目录下:

[root@hadoop3 hbase-0.90.4-cdh3u3]# ls

bin          docs                           hbase-webapps  logs        src
CHANGES.txt  hbase-0.90.4-cdh3u3.jar        hsql.jar      NOTICE.txt
cloudera     hbase-0.90.4-cdh3u3-tests.jar  lib            pom.xml
conf         hbase-env.sh                   LICENSE.txt    README.txt


然后拷贝文件hsql到hbase的安装目录bin/下:

[root@hadoop3 hbase-0.90.4-cdh3u3]# cd bin
[root@hadoop3 bin]# ls
add_table.rb      hbase-daemon.sh         local-regionservers.sh  rolling-restart.sh
check_meta.rb     hbase-daemons.sh        master-backup.sh        set_meta_block_caching.rb
copy_table.rb     hirb.rb                 region_mover.rb         set_meta_memstore_size.rb
graceful_stop.sh  hsql                   regionservers.sh        start-hbase.sh
hbase             loadtable.rb            rename_table.rb         stop-hbase.sh
hbase-config.sh   local-master-backup.sh  replication             zookeepers.sh


给hsql赋可执行权限:

[root@hadoop3 bin]# chmod 755 hsql
[root@hadoop3 bin]# ll hsql
-rwxr-xr-x 1 root root 0 Jan  8 17:14 hsql


hsql文件内容:

#/bin/sh
sql=$*
echo $sql
hadoop jar ../HbaseSql.jar "$sql"


不好意思,关于hsql.jar暂时不开源,待完善后再考虑。

支持的sql语句类似如下:


1.#号替代*号
select # from item_use_38 where rowkey[20120901,20120901];

2.limit关键字
select # from item_use_38 where rowkey[20120901,20120901] limit 10;

3.多字段

select user,level,amount from item_use_38 where rowkey[20120901,20120901];

4.统计计数


select count(amount) from item_use_38 where rowkey[20120901,20120901];

4.统计求和


select sum(amount) from item_use_38 where rowkey[20120901,20120901];

5.分组计数


select user,level,count(amount) from item_use_38 where rowkey[20120901,20120901] group by user,level;

6.分组求和


select user,level,sum(amount) from item_use_38 where rowkey[20120901,20120901] group by user,level;
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值