介绍:Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排运行以生成标准的JDBC结果集。

直接使用HBase API、协同处理器与自己定义过滤器。对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。很多其它參考官网:http://phoenix.apache.org/



Phoenix实现了JDBC的驱动,使用Phoenix JDBC和普通的数据库(Mysql)JDBC一样,也能够通过Spring JDBCTemplate的方式,将数据库的操作模块化,以及进行数据源。事物方面的管理。

实现过程例如以下:

(1)关于Phoenix与Hbase的整合请參考:

编写pom.xml

  <dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-core</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>

(2)假设是windows的开发环境,配置C:\Windows\System32\drivers\etc\hosts文件,加入develop5的配置
192.168.199.242   develop5

(3)配置Spring配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd <bean id="phoenixJdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="phoenixDataSource"/>
<qualifier value="phoenixJdbcTemplate"></qualifier>
</bean> <bean id="baseInterfacePonenixImpl" class="com.eric.monitor.dao.impl.HBaseBaseDAOImpl">
<property name="jdbcTemplate" ref="phoenixJdbcTemplate"/>
</bean> <context:component-scan base-package="com.eric.monitor.dao.impl"/>
<context:component-scan base-package="com.eric.monitor.service.impl"/> <bean id="phoenixDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="org.apache.phoenix.jdbc.PhoenixDriver"/>
<property name="url" value="jdbc:phoenix:develop5"/>
<property name="username" value=""/>
<property name="password" value=""/>
<property name="initialSize" value="20"/>
<property name="maxActive" value="0"/>
<!--由于Phoenix进行数据更改时不会自己主动的commit,必需要加入defaultAutoCommit属性,否则会导致数据无法提交的情况-->
<property name="defaultAutoCommit" value="true"/>
</bean>
</beans>

(3)编写Java程序

import com.eric.common.framework.dao.HBaseDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository; import java.util.List; /**
* 类描写叙述
*
* @author aihua.sun
* @date 2015/3/9
* @since V1.0
*/ @Repository
public class HBaseBaseDAOImpl implements HBaseDao { private JdbcTemplate jdbcTemplate;
public HBaseBaseDAOImpl(JdbcTemplate template) {
this.jdbcTemplate = template;
}
public HBaseBaseDAOImpl() {
super(); }
public List query(String querySql) {
return jdbcTemplate.query(querySql);
} @Override
public void update(String querySql) {
System.out.println(querySql);
jdbcTemplate.update(querySql);
} @Override
public void batchUpdate(String updateSQL) {
System.out.println("##########BATCH UPDATE:"+updateSQL);
jdbcTemplate.batchUpdate(updateSQL);
} public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
} @Autowired
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

Apache Phoenix JDBC 驱动和Spring JDBCTemplate的集成的更多相关文章

  1. SHDP--Working With HBase (二)之HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成

    Phoenix:Phoenix将SQL查询语句转换成多个scan操作,并编排执行最终生成标准的JDBC结果集.   Spring将数据库访问的样式代码提取到JDBC模板类中,JDBC模板还承担了资源管 ...

  2. HBase单机安装及Phoenix JDBC连接

    HBase是建立在Hadoop文件系统之上的分布式面向列的数据库,它是横向扩展的.它利用了Hadoop的文件系统(HDFS)提供的容错能力. HBase提供对数据的随机实时读/写访问,可以直接HBas ...

  3. [saiku] 使用 Apache Phoenix and HBase 结合 saiku 做大数据查询分析

    saiku不仅可以对传统的RDBMS里面的数据做OLAP分析,还可以对Nosql数据库如Hbase做统计分析. 本文简单介绍下一个使用saiku去查询分析hbase数据的例子. 1.phoenix和h ...

  4. Mapreduce atop Apache Phoenix (ScanPlan 初探)

    利用Mapreduce/hive查询Phoenix数据时如何划分partition? PhoenixInputFormat的源码一看便知: public List<InputSplit> ...

  5. org.apache.phoenix.exception.PhoenixIOException: SYSTEM:CATALOG

    Error: SYSTEM:CATALOG (state=08000,code=101)org.apache.phoenix.exception.PhoenixIOException: SYSTEM: ...

  6. phoenix连接hbase数据库,创建二级索引报错:Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeou

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  7. Unable to connect to HBase using Phoenix JDBC Driver

    Feb 01, 2017; 5:21pm Unable to connect to HBase using Phoenix JDBC Driver 9 posts Hi All,   I am try ...

  8. 【异常】org.apache.phoenix.exception.PhoenixIOException: SYSTEM:CATALOG

    1 详细异常信息 rror: SYSTEM:CATALOG (state=,code=) org.apache.phoenix.exception.PhoenixIOException: SYSTEM ...

  9. phoenix启动报错:org.apache.phoenix.exception.PhoenixIOException: SYSTEM.CATALOG

    错误: org.apache.phoenix.exception.PhoenixIOException: SYSTEM.CATALOG at org.apache.phoenix.util.Serve ...

随机推荐

  1. HDU 4344 随机法判素数(费马小定理

    #include <cstdio> #include <ctime> #include <cmath> #include <algorithm> usi ...

  2. Mahout-Pearson correlation的实现

    计算公式: 并通过以下代码对Mahout in Action的结果进行了验证: 代码例如以下: ` package com.example.mahout; public class TestColl ...

  3. Swift - 使用UIDatePicker实现倒计时功能

    如果使用UIDatePicker时将模式设置为CountDownTimer,即可让该控件作为倒计时器来使用.效果图如下:    下面是代码示例: 1 2 3 4 5 6 7 8 9 10 11 12 ...

  4. TCP三次握手和Time-Wait状态

    第一次握手:建立连接时.client发送syn包和一个随机序列号seq=x到server,并进入SYN_SEND状态,等待server进行确认. (syn,同 步序列编号). 第二次握手,server ...

  5. 显示形状回归算法(ESR)代码介绍

    源地址:http://www.thinkface.cn/thread-3704-1-6.html 人脸对齐包括两个部分,分别为训练部分和测试部分.所有的代码基于opencv2.0.(一)训练阶段Ste ...

  6. kiss框架学习

    #parse("$!jc.skinpath/exam/cart.ascx") var CategoryId = "$!this.loadCategory_combo(). ...

  7. 关于java中的事件类型

    java中的Date是为了证明:天才的程序员也会犯错: java中的Calendar是为了证明:普通的程序员也会犯错. ———————————————————— stackoverflow上大部分都推 ...

  8. ZOJ 3529 A Game Between Alice and Bob(博弈论-sg函数)

    ZOJ 3529 - A Game Between Alice and Bob Time Limit:5000MS     Memory Limit:262144KB     64bit IO For ...

  9. hdu 5090 Game with Pearls

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090 题意:n个数,k,给n个数加上k的正倍数或者不加,问最后能不能凑成1 到 n的序列 题目分类:暴 ...

  10. 让自己的软件实现拖拽打开文件(使用WM_DROPFILES消息和DragQueryFile函数)

    //声明 protected procedure WMDROPFILES(var Msg : TMessage); message WM_DROPFILES; //实现 procedure TForm ...