Kylin 操作方式(web UI ,JDBC,shell脚本,Zeppelin)
程序员文章站
2022-04-11 08:02:21
...
Web UI
查看属性
查询
注意:查询语句中事实表必须位于join的左边
Zeppelin
打开web端界面hadoop:8080,点击右上角的interpreter
然后再创建note
之后就可以输入查询语句进行查询操作
JDBC
依赖
<dependencies>
<dependency>
<groupId>org.apache.kylin</groupId>
<artifactId>kylin-jdbc</artifactId>
<version>2.5.1</version>
</dependency>
</dependencies>
代码示例
public class KylinMainTest {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
//注册驱动
Class.forName("org.apache.kylin.jdbc.Driver");
//编写sql
String sql="select PROVINCE_NAME,sum(FINAL_TOTAL_AMOUNT) sum_TOTAL_AMOUNT\n" +
"from DWD_FACT_ORDER_INFO join DWD_DIM_BASE_PROVINCE\n" +
"on DWD_FACT_ORDER_INFO.PROVINCE_ID =DWD_DIM_BASE_PROVINCE.ID \n" +
"group by DWD_DIM_BASE_PROVINCE.PROVINCE_NAME";
//创建连接
Connection connection = DriverManager.getConnection("jdbc:kylin://hadoop103:7070/gmall", "ADMIN", "KYLIN");
//预编译sql
PreparedStatement ps = connection.prepareStatement(sql);
//执行sql
ResultSet rs = ps.executeQuery();
System.out.println("PROVINCE_NAME,sum_TOTAL_AMOUNT");
//遍历结果
while (rs.next()){
System.out.println(rs.getString("PROVINCE_NAME")+","+rs.getDouble("sum_TOTAL_AMOUNT"));
}
}
效果如图
Shell 脚本
#!/bin/bash
#操作的cube名称
cube_name=order_cube
do_date=`date -d '-1 day' +%F`
#获取00:00时间戳
# +%s 代表将日期格式转化为时间戳
#Kylin使用的是UTC时间,+8个小时转化为gmt+8(东八区时区时间)
start_date_unix=`date -d "$do_date 08:00:00" +%s`
# *1000转化为毫秒
start_date=$(($start_date_unix*1000))
#获取24:00的时间戳
stop_date=$(($start_date+86400000))
#-X :请求类型 新增——POST 更新——PUT 查询——GET 删除——DELEATE
#-H :请求头
#Authorization 授权,后面跟用户名密码
#Basic 说明用户名和密码用了Basic
#Content-Type——声明请求为json类型
#url为固定格式
curl -X PUT -H "Authorization: Basic QURNSU46S1lMSU4=" -H 'Content-Type: application/json' -d '{"startTime":'$start_date', "endTime":'$stop_date', "buildType":"BUILD"}' http://hadoop102:7070/kylin/api/cubes/$cube_name/build
上一篇: Spark-Core(二)- 实战篇