![Python+Superset:商业智能数据分析与实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/466/43738466/b_43738466.jpg)
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版本,如果版本不同,那么配置文件的路径和需要修改的代码也是不同的。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-76-1.jpg?sign=1739988092-4jO0MYPVvjgSpADrzZ15sboCUv0x4iom-0-12c5981459f0029e2c05f4e991a282fa)
把signal所在的代码行都注释掉,在下面再加一个pass空语句,修改后的代码如下。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-76-2.jpg?sign=1739988092-YeO3269vfNVGPmSzMNOXKC3ziwSGrKH0-0-ed8ecd6a59ab43581dd1ac5494cbaa1c)
打开Apache Superset界面,依次单击顶部导航菜单中的“SQL Lab”→“SQL Editor”选项,如图5-1所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-77-1.jpg?sign=1739988092-AwP4f3CVZbmBbIj2AuwfuVU0xNPIfY6a-0-ea27201314c652d8ee0a2c1e6eeb0c2c)
图5-1 Apache Superset界面
在页面的左侧可以选择数据库和表,右上方可以编辑SQL语句,右下方可以查看SQL语句执行的结果,也可以导出查询数据,基于维度生成不同类型的图表等,如图5-2所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-78-1.jpg?sign=1739988092-X3liIvPf3LQSHxLJ7PnOrafMav6c2xP0-0-74ba825a4b706e34ca661d70cd19e783)
图5-2 数据查询结果
5.1.2 制作报表与看板
在Apache Superset中,对于数据分析人员来说,SQL语句可被直接编辑,然后通过诸如配置指标(METRIC)、分组条件(GROUP BY)、筛选条件(FILTERS)等选项生成图表,其中指标指某一域的统计结果,如总和、平均数、最值等。
下面将以前文对查询客户表后的数据进行可视化分析为例,介绍如何制作客户受教育状况的饼图,以及对应的客户主题分析看板,详细步骤如下。
◆ 在SQL Lab的查询页面,单击“EXPLORE”按钮,如图5-3所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-79-1.jpg?sign=1739988092-NxadcZllJoa9YVvNB2SPFHw3RGZEBl10-0-6173cf06f833f4766ed48547d2ddabcc)
图5-3 “EXPLORE”按钮
◆ 在保存或覆盖数据集(Save or Overwrite Dataset)页面,可以保存查询结果,供以后使用,如图5-4所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-79-2.jpg?sign=1739988092-fwSKLYfGv0Ywsh5FwNmsiucBabEAIeQ4-0-6db8ae248ff874a4d222aae30d53d699)
图5-4 保存查询结果
◆ 单击“SAVE & EXPLORE”按钮,进入可视化设置页面。默认的视图是表格(Table),这里需要重新设置可视化类型(VISUALIZATION TYPE),如图5-5所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-79-3.jpg?sign=1739988092-qftkue2LPsZOxzRtFJ6ODgrVrwTN3clX-0-493f87eec2eb23c1ba8cb2e6cc4bd846)
图5-5 可视化设置页面
选择图表类型(Select a visualization type),这里选择饼图(Pie Chart),如图5-6所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-80-1.jpg?sign=1739988092-F14yGfhwj0NKEwvqRHf1yqaaV9Hy0Tq3-0-6e2d0e12c9a85a7c00d1679963ee6398)
图5-6 选择图表类型
设置分组(GROUP BY)条件为“education”字段,意思是对查询的数据按照受教育状况来分组。单击图形上方的“RUN”按钮后,就会展示客户受教育水平的饼图,如图5-7所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-80-2.jpg?sign=1739988092-nGMHyj0VsQoy0Yx7QopRS3kuAsj5Lg88-0-54bbb70700ff8c5a7c2b31f8e79247c5)
图5-7 设置分组
单击左上方的“Save”按钮,可以将图表创建或保存到看板(Dashboards)中,例如,设置报表名称为“客户受教育程度饼图”,看板名称为“客户属性细分分析看板”,然后单击“SAVE”按钮,如图5-8所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-81-1.jpg?sign=1739988092-xVe2fIC0U3Hwi2wfB1RD0TvBKxJKdzzV-0-a4c48bf91ebac4a156b4158acf2d01b1)
图5-8 保存报表
查看报表,在“客户属性细分分析”看板主题中创建了一张“客户受教育状况饼图”,如图5-9所示,后续还可以根据需求继续添加更多的报表。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-81-2.jpg?sign=1739988092-l8XPIgfnoErpsiAAiqbJtoYvdMNsukp1-0-c5ac9274724ec689b193c3b572c5b04b)
图5-9 查看报表
上面所讲的是如何用Apache Superset生成报告和看板,每一个看板上显示的图表都对应着一种数据分析主题,其中的图表不仅多层次地显示了数据背后隐藏的业务信息,还大大丰富了视觉效果,使得原本单调乏味的数据变得清晰明了。