写在前面: 博主是一名软件工程系大数据应用开发专业大二的学生,昵称来源于《爱丽丝梦游仙境》中的Alice和自己的昵称。作为一名互联网小白,
写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于起步阶段的萌新
。由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!个人小站:http://alices.ibilibili.xyz/ , 博客主页:https://alice.blog.csdn.net/ 尽管当前水平可能不及各位大佬,但我还是希望自己能够做得更好,因为一天的生活就是一生的缩影
。我希望在最美的年华,做最好的自己
!
在之前的博客中已经谈到,Kylin提供了各种Rest API、JDBC/ODBC接口。如果我们要将数据以可视化的方式展现出来,需要使用Kylin的JDBC方式连接执行SQL,获取kylin的执行结果。本篇博客,为大家带来的就是如何使用JDBC操作连接Kylin的步骤流程!
需求
按照日期统计订单总额/总数量
开发步骤
- 导入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
■ 打印结果
参考代码:
代码语言:javascript复制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页面上,先进行在线查询,查看结果
确认结果之后,我们返回到IDEA,运行任务,观察控制台打印的结果
可以发现与在页面上进行查询返回的结果是一样的,说明我们使用JDBC连接操作Kylin就成功了。
总结
本篇博客为大家演示了如何使用Java通过连接JDBC访问操作Kylin的一个简单demo。后续会为大家介绍关于Kylin的Cube优化,与我们之前所做的离线数仓项目做一个有效结合…敬请期待!!!
如果以上过程中出现了任何的纰漏错误,烦请大佬们指正?
受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波?