本文章主要介绍下superset连接kylin,最后再介绍下使用案例,superset官方文档没有任何介绍连接到kylin的文档,但GitHub中有多个kylin与superset的结合的开源插件,最终找到一款一直有人在维护更新的工具--kylinpy,另外一款是pykylin,坑太多没人维护,不推荐。。
1. 安装kylinpy插件,连接kylin
进入linux python虚拟环境:在什么环境下装的superset,则在什么环境下装kylinpy
[root@xxx-8 bin]#
source ~/venv/bin/activate
离线安装kylinpy
(venv) [root@xxx-8 bin]#
git clone https://github.com/Kyligence/kylinpy.git
(venv)
[root@xxx-8 bin]#
pip install -e kylinpy
测试下:
(venv) [root@xxx-8 tmp]# kylinpy
Usage: kylinpy [OPTIONS] COMMAND [ARGS]...
Options:
-h, --host TEXT kylin/kap host name [required]
-P, --port INTEGER kylin/kap port, default: 7070
-u, --username TEXT kylin/kap username [required]
-p, --password TEXT kylin/kap password [required]
--project TEXT kylin/kap project [required]
--prefix TEXT kylin/kap RESTful prefix of url, default: /kylin/api
--debug / --no-debug show debug infomation
--api2 / --api1 API version; default is api1; --api1 used by KYLIN;
--api2 used by KAP
--help Show this message and exit.
Commands:
auth get user auth info
cube_columns list cube columns
cube_desc show cube description
cube_measures list cube metrics
cube_names list cube names
cube_sql get sample sql of cube, KAP only
cubes show cubes
model_desc show model description
projects list all projects
query sql query
table_columns list table columns
table_names list all table names
users list all users, need admin role, KAP only
安装成功,
详细使用,请参见
https://github.com/Kyligence/kylinpy.git
2. 创建superset kylin数据源
登录kylin查看project名称
http://192.168.xxx.xxx:7070/kylin页面可以登录kylin控制台 用户为:ADMIN 密码:KYLIN
project名称为:learn_kylin (
创建kylin cube的文章请参见另外的博客)
登录到superset,加载数据库信息
添加数据库,将kylin地址输入URI栏:
测试连接成功后,会出现该project下面对应的表,点击保存即可
3. 添加kylin表
数据源 -> 数据表 -> 添加新记录
KYLIN_ACCOUNT KYLIN_CAL_DT KYLIN_CATEGORY_GROUPINGS KYLIN_COUNTRY KYLIN_SALES 依次添加进去
4. 操作单表
点击进入一张表
点击查询,结果如下:
点击view query可查看SQL查询语句
点击左边的Visualization,可对查询结果进行可视化,这里可视化选择pie chart种类
5. 多表操作
使用SQL Lab查询Apache Kylin多表
熟悉Kylin的读者都知道,Kylin Cube通常都是以多表关联建模为基础生成的,因此分析Kylin Cube的数据时,使用多表进行查询对于Kylin来说是非常常见的场景。在使用Superset分析Kylin数据时,我们可以使用Superset中的SQL Lab功能来查询多表,并对其进行可视化分析。
在这里我们以一个可以击中Kylin中的sample cube ‘kylin_sales_cube’的查询为例。
对于新加入的数据源,在下拉框中找不到,需要用命令更新下数据源:
Refresh sqllab datasources cache
(venv) [root@xbn-cdh-8 bin]#
superset update_datasources_cache
首次查询,数据源下的表可能不存在,重启下superset即可
ctrl + c 或者kill -9 杀掉superset 然后执行superset runserver
查询语句如下:
select YEAR_BEG_DT,
MONTH_BEG_DT,
WEEK_BEG_DT,
META_CATEG_NAME,
CATEG_LVL2_NAME,
CATEG_LVL3_NAME,
OPS_REGION,
NAME as BUYER_COUNTRY_NAME,
sum(PRICE) as GMV,
sum(ACCOUNT_BUYER_LEVEL) ACCOUNT_BUYER_LEVEL,
count(*) as CNT
from KYLIN_SALES
join KYLIN_CAL_DT
on CAL_DT=PART_DT
join KYLIN_CATEGORY_GROUPINGS
on SITE_ID=LSTG_SITE_ID
and KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID=KYLIN_SALES.LEAF_CATEG_ID
join KYLIN_ACCOUNT
on ACCOUNT_ID=BUYER_ID
join KYLIN_COUNTRY
on ACCOUNT_COUNTRY=COUNTRY
group by YEAR_BEG_DT,
MONTH_BEG_DT,
WEEK_BEG_DT,
META_CATEG_NAME,
CATEG_LVL2_NAME,
CATEG_LVL3_NAME,
OPS_REGION,
NAME
MONTH_BEG_DT,
WEEK_BEG_DT,
META_CATEG_NAME,
CATEG_LVL2_NAME,
CATEG_LVL3_NAME,
OPS_REGION,
NAME as BUYER_COUNTRY_NAME,
sum(PRICE) as GMV,
sum(ACCOUNT_BUYER_LEVEL) ACCOUNT_BUYER_LEVEL,
count(*) as CNT
from KYLIN_SALES
join KYLIN_CAL_DT
on CAL_DT=PART_DT
join KYLIN_CATEGORY_GROUPINGS
on SITE_ID=LSTG_SITE_ID
and KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID=KYLIN_SALES.LEAF_CATEG_ID
join KYLIN_ACCOUNT
on ACCOUNT_ID=BUYER_ID
join KYLIN_COUNTRY
on ACCOUNT_COUNTRY=COUNTRY
group by YEAR_BEG_DT,
MONTH_BEG_DT,
WEEK_BEG_DT,
META_CATEG_NAME,
CATEG_LVL2_NAME,
CATEG_LVL3_NAME,
OPS_REGION,
NAME
可视化显示:
6. 保存
将查询结果保存为切片和看板,方便下次打开直接运行或直接查看图片
保存该查询
一个保存的查询结果就是一个切片(slice),可以将多个切片放到一个看板里,也可以放到新建的看板里
设置看板的横纵标题
更多操作详情,请参见博客:该博客中有些坑没描述清楚