Phoenix定位为OLTP和操作型分析(operational analytics),大多用于在线业务,稳定性要求第一位。Phoenix的功能很强大,也很灵活,Phoenix SQL基于SQL-92标准,但是还是有很多方言,使用时需要特别注意。
# ZK方式
0. 需要把hbase-site.xml放到resource下面
1. 可以配置到Spring项目中,比如下面数据源配置
<bean id="phoenixDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.apache.phoenix.jdbc.PhoenixDriver"/>
<property name="url" value="jdbc:phoenix:192.168.1.200,192.168.1.201,192.168.1.202:12181"/>
<property name="username" value="" />
<property name="password" value="" />
</bean>
2. 也可以简单main方法进行jdbc测试
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class TestPhoenix {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection("jdbc:phoenix:192.168.1.200,192.168.1.201,192.168.1.202:12181");
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery("select * from zlxx.wt_trade_refund limit 5");
while (rs.next()) {
System.out.println("id=" + rs.getString("id") + ";amount=" + rs.getString("amount") + ";status=" + rs.getString("status"));
}
stat.close();
conn.close();
}
}
输出结果:
id=1005528;amount=100;status=01
id=1005529;amount=10;status=03
id=1005530;amount=10;status=01
id=1005531;amount=10;status=01
id=1005532;amount=100;status=03
3. pom.xml依赖phoenix-core
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-core</artifactId>
<version>4.14.3-HBase-1.4</version>
</dependency>
# Query Server方式
不需要hbase-site.xml,也不需要phoenix-core
0. 不需要hbase-site.xml
1. 配置到Spring项目中,如下数据源
<bean id="phoenixDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.apache.phoenix.queryserver.client.Driver"/>
<property name="url" value="jdbc:phoenix:thin:url=http://172.168.1.22:8765;serialization=PROTOBUF"/>
<property name="username" value="" />
<property name="password" value="" />
</bean>
2. maven依赖phoenix-queryserver-client
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-queryserver-client</artifactId>
<version>4.14.3-HBase-1.4</version>
</dependency>
3. 简单的java#main方法测试
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class TestPhoenix2 {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection("jdbc:phoenix:thin:url=http://192.168.1.22:8765;serialization=PROTOBUF");
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery("select * from zlxx.wt_trade_refund limit 5");
while (rs.next()) {
System.out.println("id=" + rs.getString("id") + ";amount=" + rs.getString("amount") + ";status=" + rs.getString("status"));
}
stat.close();
conn.close();
}
}
输出结果:
id=1005528;amount=100;status=01
id=1005529;amount=10;status=03
id=1005530;amount=10;status=01
id=1005531;amount=10;status=01
id=1005532;amount=100;status=03
往期推荐:
Kafka消息送达语义说明
Hadoop YARN:ApplicationMaster向ResourceManager注册AM源码调试
Apache Hadoop YARN:Client<-->ResourceManager源码解析
Apache Hadoop YARN:Client<-->ResourceManager源码DEBUG
Hadoop YARN:ApplicationMaster与ResourceManager交互源码解析
Hive-DML(Data Manipulation Language)数据操作语言