Apache Kylin高级部分之JDBC访问方式

来源:互联网 发布:linux创建c文件 编辑:程序博客网 时间:2024/05/22 15:44

转:http://blog.csdn.net/jiangshouzhuang/article/details/53823234

Kylin提供了标准的ODBC和JDBC接口,能够和传统BI工具进行很好的集成。分析师们可以用他们最熟悉的工具来享受Kylin带来的快速。

本章节介绍通过Java程序调用Kylin的JDBC接口访问Kylin的Cube数据。


首先我们来看一下连接Kylin的URL格式为:

jdbc:kylin://<hostname>:<port>/<kylin_project_name>

注:

如果“ssl”为true话,那么上面的端口号应该为Kylin服务的HTTPS端口号。

kylin_project_name必须指定,并且在Kylin服务中存在。


下面介绍几种方式访问Kylin数据:

第一种方法:使用Statement方式查询


示例完整代码如下:

[java] view plain copy
  1. package com.my.kylin;  
  2.    
  3. import java.sql.Connection;  
  4. import java.sql.Driver;  
  5. import java.sql.ResultSet;  
  6. import java.sql.Statement;  
  7. import java.util.Properties;  
  8.    
  9. public class QueryKylinST {  
  10.     public static void main(String[] args) throws Exception {  
  11.          // 加载Kylin的JDBC驱动程序  
  12.         Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();  
  13.    
  14.          // 配置登录Kylin的用户名和密码  
  15.          Properties info= new Properties();  
  16.          info.put("user","ADMIN");  
  17.          info.put("password","KYLIN");  
  18.    
  19.          // 连接Kylin服务  
  20.          Connection conn= driver.connect("jdbc:kylin://192.168.1.128:7070/learn_kylin",info);  
  21.          Statement state= conn.createStatement();  
  22.          ResultSet resultSet =state.executeQuery("select part_dt, sum(price) as total_selled,count(distinct seller_id) as sellers " +  
  23.                                      "from kylin_sales group by part_dt order by part_dt limit 5");  
  24.    
  25.          System.out.println("part_dt\t""\t" + "total_selled" + "\t" +"sellers");  
  26.                     
  27.          while(resultSet.next()) {  
  28.                    String col1 = resultSet.getString(1);  
  29.                    String col2 = resultSet.getString(2);  
  30.                    String col3 = resultSet.getString(3);  
  31.                    System.out.println(col1+ "\t" + col2 + "\t" + col3);  
  32.          }  
  33.     }  
  34. }  

在eclipse中执行之前先引入Kylin的Jar包,如图所示:

运行结果为:

 

第二种方法:使用PreparedStatement方式查询

这种方式支持在SQL语句中传入参数,支持如下的方法设置参数:

l  setString

l  setInt

l  setShort

l  setLong

l  setFloat

l  setDouble

l  setBoolean

l  setByte

l  setDate

l  setTime

l  setTimestamp

 

示例完整代码如下:

 

[java] view plain copy
  1. package com.my.kylin;  
  2.    
  3. import java.sql.Connection;  
  4. import java.sql.Driver;  
  5. import java.sql.PreparedStatement;  
  6. import java.sql.ResultSet;  
  7. import java.util.Properties;  
  8.    
  9. public class AnylistWithPS {  
  10.     public static void main(String[] args) throws Exception {  
  11.          anylist();  
  12.     }  
  13.    
  14.     public static void anylist() throws Exception {  
  15.          Driver driver =(Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();  
  16.          Properties info= new Properties();  
  17.          info.put("user","ADMIN");  
  18.          info.put("password","KYLIN");  
  19.          Connection conn= driver.connect("jdbc:kylin://192.168.1.128:7070/learn_kylin",info);  
  20.    
  21.          PreparedStatement state = conn.prepareStatement("select * from KYLIN_CATEGORY_GROUPINGS where LEAF_CATEG_ID = ?");  
  22.          state.setLong(1,10058);  
  23.                     
  24.          ResultSet resultSet = state.executeQuery();  
  25.          while (resultSet.next()) {  
  26.                    String col1 = resultSet.getString(1);  
  27.                    String col2 = resultSet.getString(2);  
  28.                    String col3 = resultSet.getString(3);  
  29.                    System.out.println(col1+ "\t" + col2 + "\t" + col3);  
  30.              }  
  31.       }  
  32. }  


 

运行结果如下图所示:

 

 


原创粉丝点击