Apache Superset(incubating)
(以下简称Superset)起源于2015年年初黑客马拉松项目,曾经使用“Caravel”和“Panoramix”作为项目名称。
作为Apache软件基金会孵化项目,Superset的目标是要做成数据可视化平台,现在经过3年多的发展,Superset已经成为一个集合了数据可视化、数据自助分析、数据探索的企业级应用。
Superset 提供了两种分析方式:
● 数据探索提供单表直连方式查询多种数据源,包括Presto、Hive、Impala、SparkSQL、MySQL、Postgres、Oracle、Redshift、SQL Server、Druid等。后续内容会详细介绍Superset如何链接Kylin数据源。
● 一个SQL IDE(SQLLab)允许高级分析师通过手写SQL完成数据源建模,而后该模型还可以实例化成一个Superset数据源,进而在自助分析中再次做交互式分析。
Superset服务器端基于Python开发,使用Flask、Pandas、SqlAlchemy等成熟的基础库提供完善的权限管理、丰富的认证登录方式。
Superset客户端基于React与D3技术栈开发可视化组件,可以使用近50款可视化工具做自助分析,并且不同的分析报表可以放入同一个Dashboard中做深入的交互式分析。
Apache Kylin 支持标准的 ANSI-SQL,可以通过实现SQLAlchemy Dialect与Superset无缝集成。
下载 Kylinpy
Superset 的依赖包较多,在安装前需要先安装相关的依赖,主要针对Apache Kylin的连接,所以将使用kylinpy完成相关依赖的安装。使用python库管理工具pip可以直接下载kylinpy。
kylinpy无其他第三方库依赖,支持Python v2.7、Pythonv3.6。安装完kylinpy后,SQLAlchemy会自动调用kylinpy定义的Dialect,向Kylin服务器发送查询请求
安装Superset
通过pip仓库来安装superset stable版本。
初始化superset元数据库。
创建一个超级管理员用户,用户名、密码分别为“admin”“admin”。
如果一切顺利,现在已经可以运行Superset,superset默认绑定5000端口,可使用以下代码启动superset。
在启动superset后,我们可以通过使用“http://localhost:5000”来访问web界面(如图所示)
图5-22 Superset Web界面[插图]
注意 2018年12月以后的Superset只支持Pythonv3.6及以上的版本,所以您要留意您的Python和pip版本,确保是Python v3.6及以上版本。
在Superset中添加Kylin Database
我们登录Superset(使用用户名“admin”密码“admin”登录),现在尝试添加一个Kylin Project作为Superset的database,点击“Source”→“Datasource”命令,进行以下配置(如图所示):添加Kylin Database
1)SQLAlchemy URI格式为:kylin://:@:/。
2)确保“Expose in SQL Lab”复选框已勾选,勾选该复选框后该Kylin project可以在SQL Lab中查询到。
3)点击“Test Connection”按钮可以测试链接是否已成功。
在Superset中添加Kylin Table
现在我们已经添加了Kylin中的一个project作为“数据库”,接下来我们要手动将这个project中的表填到Superset的数据源中,操作步骤如下:
1)点击“Sources”→“Tables”命令(如图所示)
2)在打开的面板中,填入对应的Schema,名为“learn_kylin”的Database的默认“Schema”值为“DEFAULT”,注意,这里是要区分大小写的。
3)填入对应的Table Name,同样要注意区分大小写(如图所示)
4)点击“Save”按钮,系统会自动把“KYLIN_SALES”这个表添加到“Table”列表中。如图所示“KYLIN_SALES”已经出现在“Table”列表中了
接下来,我们可以点击列表前端的编辑图标,编辑Table详情(如图所示)。
编辑页面中会展示Table详情,如维度和度量等(如图所示)。
由Table自动同步来的维度(列)列表,系统会自动为其在“List Metrics”项目中创建一个count聚合度量,同时这里还可以自己创建相应的聚合函数(如图所示)。
在Superset中创建图表
添加完表格后,我们就可以直接进行可视化分析了,在“Table”列表页,点击table名称,可以直接进入自助分析页面(如图所示)
,系统会自动跳转到相应的图表编辑页面(如图所示)
注意 首次进入自助分析页面,时间范围默认设置为最近一周,如果最近一周没有数据,那么结果集中是没有数据的
在Superset中通过SQL Lab探索Kylin
自助分析功能可以通过点选维度、度量、过滤器快速做出可视化图表,但是灵活性不如直接手写SQL,Superset同时提供一个具有高度灵活性的SQL IDE功能,操作步骤如下:
1)点击菜单上的“SQL Lab”→“SQL Editor”命令(如图所示)打开SQL编辑器。
2)在跳转后的页面左侧的下拉列表中选择相应的Database,在Schema下拉列表中选择相应的Schema,即可在页面右侧的SQL编写区域开始手写SQL(如图所示)探索Kylin。