hbase+phoenix开发预演小例子

************************建表**************************

HBASE中创建表,为了防止数据倾斜,建表时要建立预分区

create_namespace 'CPLC'
create 'CPLC:B_STUDENTS','F1','F2',SPLITS => ['001','002','003']
查看所有表list
查看表内容scan 'CPLC:B_STUDENTS'
HIVE中创建外部表
create database CPLC;
CREATE EXTERNAL TABLE CPLC.B_STUDENTS(
ROWKEY STRING,
ID   STRING,
NAME STRING,
CITY STRING
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,F1:ID,F1:NAME,F2:CITY")
TBLPROPERTIES("hbase.table.name" = "CPLC:B_STUDENTS"); 
phoenix中创建视图
CREATE VIEW "CPLC:B_STUDENTS"(
"ROWKEY" VARCHAR PRIMARY KEY,
"F1"."ID" VARCHAR,
"F1"."NAME" VARCHAR,
"F2"."CITY"  VARCHAR
);
查看视图 select * from "CPLC:B_STUDENTS"

加载数据过程省略,,,,


****************JDBC******************************

package phoenix;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class Phoenix_Test {
/**
* 使用phoenix提供的api操作hbase读取数据
*/
public static void main(String[] args) throws Throwable {
try {
// 下面的驱动为Phoenix老版本使用2.11使用,对应hbase0.94+
// Class.forName("com.salesforce.phoenix.jdbc.PhoenixDriver");


// phoenix4.3用下面的驱动对应hbase0.98+
Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
} catch (Exception e) {
e.printStackTrace();
}
// 这里配置zookeeper的地址,可单个,也可多个。可以是域名或者ip
String url = "jdbc:phoenix:s101,s102,s103:2181";
Connection conn = DriverManager.getConnection(url);
System.out.println(conn);
Statement statement = conn.createStatement();
System.out.println(statement);
//String tn="CPLC:B_STUDENTS";
String sql = "select * from \"CPLC:B_STUDENTS\"";
// long time = System.currentTimeMillis();
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
String rowkey=rs.getString("rowkey");
String id= rs.getString("id");
String name=rs.getString("name");
String city=rs.getString("city");
System.out.println("rowkey  is "+rowkey +"    value is"+ id+"---"+name+"---"+city);
}
// long timeUsed = System.currentTimeMillis() - time;
// System.out.println("time " + timeUsed + "mm");
// 关闭连接
rs.close();
statement.close();
conn.close();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值