![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=1739273435-wdwZwjv0IyWmNxIHDsGsIubIUxj8fyWK-0-78ec81c98e042a736294e442bc8e1abe)
把signal所在的代码行都注释掉,在下面再加一个pass空语句,修改后的代码如下。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-76-2.jpg?sign=1739273435-bAudF124r0VXb6Y1snNC1ay1vIanbCNb-0-dcdfdec98065d5c97ae6cdf16594af43)
打开Apache Superset界面,依次单击顶部导航菜单中的“SQL Lab”→“SQL Editor”选项,如图5-1所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-77-1.jpg?sign=1739273435-rkkebOWB7YdatnUxH6ByNFULwD0LapLc-0-a0ab5482d2cb29270657efe33f4760b6)
图5-1 Apache Superset界面
在页面的左侧可以选择数据库和表,右上方可以编辑SQL语句,右下方可以查看SQL语句执行的结果,也可以导出查询数据,基于维度生成不同类型的图表等,如图5-2所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-78-1.jpg?sign=1739273435-BcBfLPi2IOfBxb8j9LrycwHNPWD5OQyA-0-75a056e31ecee1c2a2c4e17f928e7f1b)
图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=1739273435-k5S61MZwQSrvCE6dIx22NbfFWfXvl25J-0-78d8ccb0d85c62a4c32be7d8ba9b23d7)
图5-3 “EXPLORE”按钮
◆ 在保存或覆盖数据集(Save or Overwrite Dataset)页面,可以保存查询结果,供以后使用,如图5-4所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-79-2.jpg?sign=1739273435-BGUSi60AiHyIg6YSAqgAoJmFuE46r113-0-10f0ca82a625e0052292d2ae272d6267)
图5-4 保存查询结果
◆ 单击“SAVE & EXPLORE”按钮,进入可视化设置页面。默认的视图是表格(Table),这里需要重新设置可视化类型(VISUALIZATION TYPE),如图5-5所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-79-3.jpg?sign=1739273435-vSJCCT95oqNtC777C5daHXachE0IqmLP-0-3f033ffee8bd9614666e34460ed81301)
图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=1739273435-cP346R9LsdhKyNj9gQOebVxi9Wwd1BDZ-0-4c3c4aaa185130604c2034ad2eba1583)
图5-6 选择图表类型
设置分组(GROUP BY)条件为“education”字段,意思是对查询的数据按照受教育状况来分组。单击图形上方的“RUN”按钮后,就会展示客户受教育水平的饼图,如图5-7所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-80-2.jpg?sign=1739273435-qWgexlpEOP2NokWTXdDDVuQY97naPBUO-0-0eba82b7c455721eceb17dda7706b1d2)
图5-7 设置分组
单击左上方的“Save”按钮,可以将图表创建或保存到看板(Dashboards)中,例如,设置报表名称为“客户受教育程度饼图”,看板名称为“客户属性细分分析看板”,然后单击“SAVE”按钮,如图5-8所示。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-81-1.jpg?sign=1739273435-0AnWEZ9GyloiuXJk3rf3KRFZSMGJdaGK-0-9fedb290a761ab6ea3f6b35a354e002b)
图5-8 保存报表
查看报表,在“客户属性细分分析”看板主题中创建了一张“客户受教育状况饼图”,如图5-9所示,后续还可以根据需求继续添加更多的报表。
![](https://epubservercos.yuewen.com/C2A77D/23020656209777506/epubprivate/OEBPS/Images/42865-00-81-2.jpg?sign=1739273435-evoKtxU5MAb9UsMNkrsqwmlQwlmrodio-0-10de0f49a3e5afc1c3aaa696591a86ee)
图5-9 查看报表
上面所讲的是如何用Apache Superset生成报告和看板,每一个看板上显示的图表都对应着一种数据分析主题,其中的图表不仅多层次地显示了数据背后隐藏的业务信息,还大大丰富了视觉效果,使得原本单调乏味的数据变得清晰明了。