HBase---Phoenix(SQL on HBase)

      前面说过,HBase的是一个Key-Value的数据库,很多简单的SQL都没有,想做些查询都不方便,这里来介绍下Apache的Phoenix。

       Phoenix,由saleforce.com开源的一个项目,后又捐给了Apache。它相当于一个Java中间件,像使用jdbc访问关系型数据库一些,访问NoSql数据库HBase。Phoenix可以看作是一个JDBC的驱动封装,实现了很多常见的SQL操作,数据实际存储在Hbase上。虽然可以用java可以用jdbc来连接phoenix,然后操作HBase,但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAT中,再将结果返回存储下来。

     安装步骤:

    download and expand our installation tar
    copy the phoenix server jar that is compatible with your HBase installation into the lib directory of every region server
    restart the region servers
    add the phoenix client jar to the classpath of your HBase client
    download and setup SQuirrel as your SQL client so you can issue adhoc SQL against your HBase cluster

    安装之后,重新启动下HBase,很容易就可以来访问了。

   可以通过多种方式来访问:

   一,SHELL命令来操作Phoenix

    ./sqlline.py master:2181

    进入shell后,输入help   可以看到很多命令,前面都带了一个叹号。熟悉SQL的对这些都不陌生,很容易上手的,不多说了。


   二,用Phoenix Java API访问

    前面说了Phoenix类似JDBC,这个过程就想是JDBC一样使用就可以了。
   ①先将phoenix的 core.jar包 和 phoenix的client.jar 包放到lib里。
   ②创建连接,过程和mysql类似
public Connection GetConnection(){
Connection cc = null;
String driver = "org.apache.phoenix.jdbc.PhoenixDriver";
//String url = "jdbc:phoenix:192.168.2.21:2181";
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

if (cc == null) {
try {
cc = DriverManager.getConnection(url);
} catch (SQLException e) {
e.printStackTrace();
}
}
return cc;
}

   剩下的就是我们耳熟能详的JDBC操作了。

   三,通过其他支持JDBC的客户端工具,例如Squirrel,网上很多相关的,这里不一一说明了。

   


 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值