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
# 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();
}
}
輸出結果:
往期推薦:
資料中台到底是不是大資料的下一站?
Phoenix表映射
Phoenix視圖映射
Kafka消息送達語義說明
Kafka基礎知識總結
Hadoop YARN:ApplicationMaster向ResourceManager注冊AM源碼調試
Apache Hadoop YARN:Client<-->ResourceManager源碼解析
Apache Hadoop YARN:Client<-->ResourceManager源碼DEBUG
Hadoop YARN:ApplicationMaster與ResourceManager互動源碼解析
Hive企業級調優
HiveQL查詢連續三天有銷售記錄的店鋪
HiveQL實戰螞蟻森林低碳使用者排名分析:解法一
HiveQL實戰螞蟻森林低碳使用者排名分析:解法二
HiveQL實戰螞蟻森林植物申領統計分析
Hive-函數
Hive-查詢
Hive-DML(Data Manipulation Language)資料操作語言
Hive-DDL(Data Definition Language)資料定義
Hive優化(整理版)
Spark Core之Shuffle解析
資料倉庫開發規範