Python+Superset:商业智能数据分析与实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.1 Apache Superset可视化分析

Apache Superset是Python基于Web的开源BI工具,具有十分强大的可视化功能,通过直观的界面,提供多种可视化方法进行数据分析,并且制作了互动看板,让使用者可以深入地分析这些数据。本节将详细介绍SQL Lab提取数据的步骤及Superset如何制作报表与看板等内容。

5.1.1 SQL Lab提取数据

Apache Superset中的SQL Lab是一个强大的SQL IDE,可以与SQLALCHEMY兼容的数据库一起使用。

如果Apache Superset 1.2的安装环境是Windows操作系统,而Python中的signal包只能用于Linux或Mac操作系统,就会报错:AttributeError: module 'signal' has no attribute 'SIGALRM',该问题的解决方法是修改core.py配置文件,其位于F:\Uninstall\Anaconda3\envs\superset\Lib\site-packages\superset\utils路径下。

在配置文件中,找到如下的代码块,注意这里使用的是Apache Superset 1.2版本,如果版本不同,那么配置文件的路径和需要修改的代码也是不同的。

把signal所在的代码行都注释掉,在下面再加一个pass空语句,修改后的代码如下。

打开Apache Superset界面,依次单击顶部导航菜单中的“SQL Lab”→“SQL Editor”选项,如图5-1所示。

图5-1 Apache Superset界面

在页面的左侧可以选择数据库和表,右上方可以编辑SQL语句,右下方可以查看SQL语句执行的结果,也可以导出查询数据,基于维度生成不同类型的图表等,如图5-2所示。

图5-2 数据查询结果

5.1.2 制作报表与看板

在Apache Superset中,对于数据分析人员来说,SQL语句可被直接编辑,然后通过诸如配置指标(METRIC)、分组条件(GROUP BY)、筛选条件(FILTERS)等选项生成图表,其中指标指某一域的统计结果,如总和、平均数、最值等。

下面将以前文对查询客户表后的数据进行可视化分析为例,介绍如何制作客户受教育状况的饼图,以及对应的客户主题分析看板,详细步骤如下。

◆ 在SQL Lab的查询页面,单击“EXPLORE”按钮,如图5-3所示。

图5-3 “EXPLORE”按钮

◆ 在保存或覆盖数据集(Save or Overwrite Dataset)页面,可以保存查询结果,供以后使用,如图5-4所示。

图5-4 保存查询结果

◆ 单击“SAVE & EXPLORE”按钮,进入可视化设置页面。默认的视图是表格(Table),这里需要重新设置可视化类型(VISUALIZATION TYPE),如图5-5所示。

图5-5 可视化设置页面

选择图表类型(Select a visualization type),这里选择饼图(Pie Chart),如图5-6所示。

图5-6 选择图表类型

设置分组(GROUP BY)条件为“education”字段,意思是对查询的数据按照受教育状况来分组。单击图形上方的“RUN”按钮后,就会展示客户受教育水平的饼图,如图5-7所示。

图5-7 设置分组

单击左上方的“Save”按钮,可以将图表创建或保存到看板(Dashboards)中,例如,设置报表名称为“客户受教育程度饼图”,看板名称为“客户属性细分分析看板”,然后单击“SAVE”按钮,如图5-8所示。

图5-8 保存报表

查看报表,在“客户属性细分分析”看板主题中创建了一张“客户受教育状况饼图”,如图5-9所示,后续还可以根据需求继续添加更多的报表。

图5-9 查看报表

上面所讲的是如何用Apache Superset生成报告和看板,每一个看板上显示的图表都对应着一种数据分析主题,其中的图表不仅多层次地显示了数据背后隐藏的业务信息,还大大丰富了视觉效果,使得原本单调乏味的数据变得清晰明了。