介绍: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. 屏幕编程 F4的帮组用法

    PROCESS ON VALUE-REQUEST. * 设置帮助(工作中心)  FIELD wa_zppt026-arbpl MODULE mdl_arbpl_f4. *&---------- ...

  2. Qt调用Delphi编写的COM组件

    这个问题捣鼓了两天,现在终于解决了,做个笔记分享给大家,以免走弯路 起初,我的想法是在DLL中写一个interface并从函数中导出这个interface,像这样的代码 ICom1 = interfa ...

  3. Sql Server中COUNT(字段名)跟COUNT(*)的特殊不同点

    今天有个需求,有2张表: 1.一个“搜索记录”表search,一个“搜索后下载记录”表down 2.映射关系:每一个下载记录对应一条搜索记录,                           第个 ...

  4. Spring MVC 数据验证——validate注解方式

    1.说明 学习注解方式之前,应该先学习一下编码方式的spring注入.这样便于理解验证框架的工作原理.在出错的时候,也能更好的解决这个问题.所以本次博客教程也是基于编码方式.仅仅是在原来的基础加上注解 ...

  5. Android 服务类Service 的具体学习

    上一篇说到了通知栏Notification,提起通知栏,不得让人想到Service以及BroadcastReceive,作为android的4大组建的2个重要成员,我们没少和它们打交道.它们能够在无形 ...

  6. Python的对象和类型

    Python使用对象来存储数据,构造任何类型的值都是一个对象. 任何一个对象都有三个特性:身份,类型和值. 身份是对象的唯一标识,可以通过内建函数id()得到,这个值可以认为是该对象的内存地址. Py ...

  7. [置顶] 初识window.location.search

    window.location.search是从当前URL的?号开始的字符串 如:http://www.domain.com/item?id=0064014 它的search就是?id=0064014

  8. 【css基础】垂直外边距的合并

    近期在重温<CSS权威指南>,还是想把基础再打坚固点,如今对垂直外边距的合并问题进行简单总结. 1. 两个块级元素的外边距都大于0时,取那个最大值作为两个块级元素的垂直边距 请看以下一个小 ...

  9. 模块化手机project ara之我见

    组装电脑,已被大部分人所熟知,只是像玩具一样组装手机,应该还仅仅是停留在想象.谷歌Project Ara将这一想象一步一步拉进现实,她希望提供一块框架,使用者能够自由地替换摄像头.显示屏.处理器.电池 ...

  10. 算法起步之Dijkstra算法

    原文:算法起步之Dijkstra算法 友情提示:转载请注明出处[作者 idlear    博客:http://blog.csdn.net/idlear/article/details/19687579 ...