在之前的博客中已经谈到,Kylin提供了各种Rest API、JDBC/ODBC接口。如果我们要将数据以可视化的方式展现出来,需要使用Kylin的JDBC方式连接执行SQL,获取kylin的执行结果。本篇博客,为大家带来的就是​如何使用JDBC操作连接Kylin​的步骤流程!

如何使用JDBC连接操作Kylin?_Hive


文章目录



需求开发步骤
  • 总结


需求

        按照日期统计订单总额/总数量

开发步骤

  • 导入maven驱动依赖
<dependencies>
<!-- Kylin -->
<dependency>
<groupId>org.apache.kylin</groupId>
<artifactId>kylin-jdbc</artifactId>
<version>2.6.3</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.1-jre</version>
</dependency>
</dependencies>
  • 编写Java代码

        ■ 加载驱动

        ■ 创建Connection连接对象

        ■ 构建SQL语句

        ■ 创建Statement对象,并执行executeQuery

        ■ 打印结果


参考代码:

public class Test01 {

public static void main(String[] args) throws SQLException, ClassNotFoundException {
// 1. 加载驱动
Class.forName("org.apache.kylin.jdbc.Driver");
// 2. 创建Connection连接对象
// 连接字符串:jdbc:kylin://ip地址:7070/项目名称(project)
Connection connection = DriverManager.getConnection("jdbc:kylin://node01:7070/0514Work", "ADMIN", "KYLIN");

// 3. 创建Statement对象,并执行executeQuery,获取ResultSet
Statement statement = connection.createStatement();

// 构建SQL和语句
String sql = "select date1, sum(price) as total_money, sum(amount) as total_amount from dw_sales group by date1,channelid";
ResultSet resultSet = statement.executeQuery(sql);

// 4. 打印ResultSet
while (resultSet.next()) {
// 4.1 获取时间
String date1 = resultSet.getString("date1");
// 4.2 获取总金额
String total_money = resultSet.getString("total_money");
// 4.3 获取总次数
String total_amount = resultSet.getString("total_amount");


// 输出结果
System.out.println(date1 + " " + total_money + " " + total_amount);

}
connection.close();
}

}

在运行之前,我们现去Kylin的Web页面上,先进行在线查询,查看结果

如何使用JDBC连接操作Kylin?_云计算/大数据_02

确认结果之后,我们返回到IDEA,运行任务,观察控制台打印的结果

如何使用JDBC连接操作Kylin?_Hive_03

可以发现与在页面上进行查询返回的结果是一样的,说明我们使用JDBC连接操作Kylin就成功了。


总结

        本篇博客为大家演示了如何使用Java通过连接JDBC访问操作Kylin的一个简单demo。后续会为大家介绍关于Kylin的Cube优化,与我们之前所做的离线数仓项目做一个有效结合…敬请期待!!!

        ​如果以上过程中出现了任何的纰漏错误,烦请大佬们指正????

        ​受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波????

如何使用JDBC连接操作Kylin?_HBase_04