开发者学堂课程【HBase 入门教程:HBase 代码_4】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/397/detail/5076
HBase 代码_4
一、创建查询通话详单项目示例
查询手机号,是根据时间降序查询。默认 hbase 数据全是按照字典,有序排序
/**
*随机生成手机号码
*@param prefix 手机号码前缀 eq: 186.170
* @return
* /
public string getPhoneNurn ( string prefix){
return prefix + string.format ("%08d",r.nextInt (99999999)) ;
}
/**
*随机生成时间
* @param year
年份
* @return
public string getDate (string year) {
return year + String.format("%02d802d%02d802d%02d" ,
new object []{r.nextInt(12)+1,r.nextInt (30)+1,
r.nextInt (60), r.nextInt (60), r.nextInt (60) });
}
*插入十个手机号100条通话记录
*满足查询时间降序排序
*/
public void insertDB(){
List puts = new ArrayList();
for (int i =0; i < 10; i++){
String rowkey;
string phoneNum = getPhoneNum ( "186");
for (int j = 0; j<100;j++){
string phoneDate = getDate ("2016");
simpleDateFormat sdf = new simpleDateFormat ( "yyyyMMddHHmmss”)
try {
long dataLong = sdf.parse (phoneDate).getTime ( ) ;
rowkey = phoneNum + (Long. MAx_VALUE-dataLong);
System.out.println(rowkey);
Put put = new Put (rowkey.getBytes() ) ;
put.add ("cf1".getBytes(), “type”.getBytes(),(r.nextInt(2)+””).getBytes());
put.add ("cf1".getBytes(), “time”.getBytes(),(phoneDate).getBytes());
put.add ("cf1".getBytes(), “pnum”.getBytes(),(getPhoneNum(“170”)).getBytes());
puts.add(put);
}catch (ParseException e){
e.printstackTrace ( ) ;
}
}
}
}
}
执行结果:
在后端输入 sacn ‘phone’查询手机信息