前几天有一个top100的案例分享,全程听了各个公司架构组的一些案例技术分享,发现大家都在大数据方面投入很大,相比当当,58,阿里巴巴,Facebook,Google这些公司。新浪的分享者比较保守,很多不算牵扯到细节都系都说不方便说,其实技术都是那些技术,只是业务不同产生很多不同的架构,感觉没必要。
闲话不多说,最近完成了在MyEclipes完成了hive操作Hbase数据库数据,直接上代码
定义枚举。
public enum SqlType
{
ALLORDERNUMBER,
DAYORDERUNMBER,
}
具体方法
public int getAllOrderNumber() {
java.util.Calendar c=java.util.Calendar.getInstance();
java.text.SimpleDateFormat f=new java.text.SimpleDateFormat(“yyyy-MM-dd-hh-mm”);
return getAllOrderNumber(“0″, f.toString());
}
public int getAllOrderNumber(String startData, String endData) {
try {
return (Integer) selectTable(SqlType.ALLORDERNUMBER,startData,endData);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return 0;
}
public static Object selectTable(SqlType type,String startData,String endData) throws SQLException, ClassNotFoundException {
Class.forName(“org.apache.hadoop.hive.jdbc.HiveDriver”);
String querySQL = null;
switch(type)
{
case ALLORDERNUMBER:
querySQL = “SELECT count(DISTINCT Content['UserID']) FROM LoanOrder Where Content['CreateTime']>’@’ AND Content['CreateTime']<‘!'” ;
querySQL = querySQL.replaceAll(“@”,startData);
querySQL = querySQL.replaceAll(“!”,endData);
System.out.println(querySQL);
break;
case DAYORDERUNMBER:
System.out.println(“1″);
querySQL = “SELECT *, count( DISTINCT Content['UserID']) FROM LoanOrder GROUP BY Content['UserID']” ;
break;
default :System.out.println(“没有对应的枚举类型”);
}
Connection con = DriverManager.getConnection(
“jdbc:hive://192.168.3.232:10000/default”, “”, “”);
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery(querySQL); // 执行查询语句
while (res.next()) {
System.out.println(“Result: key: ” + res.getString(1)+”——-“+ res.getString(2));
// System.out.println(“Result: key: ” + res.getString(1));
}
return 0;
}