寫在前面: 博主是一名軟件工程系大數據應用開發專業大二的學生,暱稱來源於《愛麗絲夢遊仙境》中的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
■ 打印結果
參考代碼:
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優化,與我們之前所做的離線數倉項目做一個有效結合…敬請期待!!!
如果以上過程中出現了任何的紕漏錯誤,煩請大佬們指正😅
受益的朋友或對大數據技術感興趣的夥伴記得點贊關注支持一波🙏