| 1 引言
数据可视化是关于数据视觉表现形式的科学技术研究,是指将大型数据集中的数据以图形图像形式表示,并利用数据分析和开发工具发现其中未知信息的处理过程。利用商业性可视化工具有如:Tableau、DataV、FineReport、FineBI等可以简捷灵活地进行数据可视化工作,但是需要收费购买;利用前端可视化组件如:ECharts、D3、Three.js等也可以做出丰富的图表页面,但是要求一定的技术基础。开源可视化分析工具如:Bokeh、Matplotlib、Metabase、Superset等首先是无软件成本的,其次是要考虑它们的便捷性。本文将简要介绍一款轻量级开源可视化BI工具:Superset,其成熟度不如商业可视化工具,但是胜在无软件成本且有一定的灵活性。
| 2 Superset简介
Superset是一款由Airbnb开源的、目前由Apache孵化的,基于Flask-appbuilder搭建的“现代化的企业级BI(商业智能)Web应用程序”,它通过创建和分享dashboard,为数据分析提供了轻量级的数据查询和可视化方案。
Superset的可取之处有很多如:它自带SQLite数据库并支持连接Hive、Impala、MySql、Oracle等几乎所有主流的数据源;支持和弦图、事件流图、热力图、视图表等及其它常规的可视化展示图表;支持可控的数据展示,能自定义展示字段、数据源等;支持权限控制,以满足不同使用人员对数据和数据库的权限要求;同时内含SQL查询面板模块、具有较美观友好的操作界面等。另外,查阅资料可知Superset可以基于Python的虚拟环境安装或Docker容器安装,经实践建议基于Docker安装,避免因python依赖包的安装遗漏或版本不符等问题造成失败。
| 3 几种使用场景
Superset是一款自助式的BI工具,可利用于探索式的日常数据分析中,它能够对接常用的大数据分析工具、能够连接主流数据库或直接上传CSV数据文件,内含多类型展示图表样式,使用者通过自定义图表或dashboard可以直观地发现、分析、预警数据中所隐藏的问题,及时应对业务中的风险或发现增长点。
Superset也可利用于数据可视化成果共享,实现团队协同,使用者可将制作好的图表或发布的dashboard可见于团队成员,并通过权限配置控制团队成员对它们的可编辑性,各成员可发挥各自的想法,实现迭代化更新。
另外,Superset具有“SQL Lab”模块,可作为一个数据库管理工具,SQL查询面板可以对已连接的数据源进行数据查询,对数据源进行配置选择后也可实现数据库表的创建、修改和删除,通过该设置可避免对重要数据源的误改、误删。
| 4 Superset实战入门
在该部分将通过疫情dashboard、企业客户dashboard这两个dashboard实例制作来了解Superset的功能,dashboard的制作可分为四步:连接数据源、添加及设置table、制作charts、制作dashboard;同时可在“SQL Lab”对数据库表的数据进行查询及结果可视化。首先基于Docker在内网环境成功安装了Superset应用,并通过浏览器访问登陆,登陆界面如下:
| 4.1 连接数据源
按照示例新建数据库、连接数据源,
选择“Sources_Databases”点击“+”按钮添加数据源
填写好Database的基础信息后,点击“Test Connection”,若弹出框显示“Seems OK!”则表示成功连接数据源。其中,Oracle数据源的“SQL Alchemy URL”编辑形式为:“oracle://用户名:密码@ip地址:端口/实例名”,其它数据源URI形式可参考:https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls。
| 4.2 table添加及设置
成功连接数据源后按以下步骤添加可视化数据tables,
选择“Sources_Tables”点击“+”按钮添加可视化数据表
选择需要的数据库及数据表,点击“Save”按钮进行保存
对添加的table进行基础设置,包括三部分:Details(设置表基础信息);List Columns(设置数据属性,groupable/filterable/istemporal);List mertics(预设数据过滤,sum/count等)
| 4.3 制作charts
制作疫情情况dashboard的基础是制作一个个的charts图表,
在tables列表中双击要制作chart的表名,进入绘图区域
点击visualization type,在弹出框选择需要可视化的图表类型
对要进行可视化的图表进行参数设置,Time/Metric/filter等,设置好后点击“Save”进行保存,同时页面跳转至charts列表页
点击“View Query”可在弹出框查看可视化数据SQL
做好的chart将依次罗列于charts列表页,在该页双击图表名可跳转至绘图区域,并对已编辑的chart进行修改
| 4.4 制作dashboard
当制作dashboard的charts准备就绪后,就可以开始制作dashboard,
选择“dashboard”点击“+”按钮添加可视化面板,双击dashboard名进入编辑区域
点击“Edit dashboard → Action”下拉列表选择“Add Slices”即可为面板添加charts素材,各charts组件的大小及位置可以拖动调整,也可对已添加的chart进行更名、强制更新、编辑、重绘图、移除等。Dashboard中的charts添加调整好后点击“Save”进行保存
| 4.5 SQL查询面板
在Superset的SQL Lab中可以实现对已连接连数据源进行数据查询,同时也可对查询到的结果进行图表展示,
选择“Sources_Databases”进入数据库列表页,选中需要展示在SQL Lab中的数据库,点击编辑图标进入Edit Databases页,将“Expose in SQL Lab、Allow Run Sync”勾选上即可在SQL查询面板对数据库表进行查询,若想对库表进行创建、修改、删除等操作则需选择性的勾选“Allow CREATE TABLES或Allow DML”
选择“SQL Lab_SQL Editor”就可以进入SQL查询页面,在编辑区写好查询sql后点击“Run Query”即显示查询结果
针对查询到的sql结果,点击“Visualize”按钮,在弹出框设置好相应信息后点击弹出框中的“Visualize”按钮即可跳转至绘图页面,随后可基于查询出的数据进行可视化图表制作
| 4.6 dashboard实例介绍
* 4.6.1 疫情dashboard
2019年12月底在中国武汉发现了首例新冠肺炎,2020年2月中旬全球其它国家相继发现了新冠病例并且其数量呈爆发式增长,疫情dashboard是基于全球新冠疫情数据制作的(19年12月20日-20年7月31日),数据来源于github的一个爬虫项目,它会定期去抓丁香医生的疫情数据信息,包括各国各区域的新冠肺炎的确诊人数、治愈人数和死亡人数。疫情数据文件准备就绪后,按照“四步走步骤”即可制作疫情dashboard。
疫情dashboard包括以下7类图表:
词云图Word Cloud,直观展示各国确诊人数的多少情况数值趋势图Big Number with Trendline,数值直接展示某个时间点的全球确诊、治愈及死亡总人数;同时附带趋势图,可查看各时间的疫情数值情况分布柱形图Distribution-Bar Chart,详细展示某个时间点的各国确诊、治愈及死亡人数,可作横向国家疫情对比时间线性趋势图Time Series-Line Chart,一图展示各时间点的各国确诊人数趋势情况,可做横向国家对比、纵向时间线对比;一图展示各时间点的中国确诊、治愈及死亡人数趋势情况国家地图Country Map,展示某个时间点的中国各省的确诊人数情况强度拉力图Directed Force Layout,展示某个时间点的中国各省各市的确诊人数情况,圆点代表省或市,圆点大小代表该省或市确诊人数的多少太阳图Sunburst,该图包括两个层级维度,直观展示某个时间点的中国各省各市的确诊人数占比及数值情况下图为制作好的疫情dashboard:
* 4.6.2 企业客户dashboard
企业客户dashboard,主要展示各子公司的客户情况,包括:企业客户数、单一企业共同客户数、两家企业共同客户数和客户迁徙数,其分析数据为某企业的5个子企业的半年客户数据(20年6月-20年12月)。同样,数据准备就绪后,按照“四步走步骤”制作企业客户dashboard。
企业客户dashboard包括以下8类图表:
数值趋势图Big Number with Trendline,数值直接展示某个时间点的企业客户总数、单一企业共同客户总数及两家企业共同客户总数;同时附带趋势图,可查看各时间点的客户总数情况双轴线图Dual Axis Line Chart,展示各时间点的企业客户总数及客户总数增量情况饼图Pie Chart,展示某个时间点的各企业客户数及占比情况气泡图Bubble Chart,展示某个时间点的各企业的客户数及其环比增量、环比增幅三者的关系,气泡大小表示各企业的客户数,X轴Y轴分别标识其环比增量和增幅视图表Table View,直接罗列某时间点的各企业客户数情况,另外单元格内的进度条将数值情况更加直观化时间线性趋势图Time Series-Line Chart,一图展示各时间点的各企业客户数趋势情况;一图展示各时间点的单一企业共同客户数趋势情况透视表Pivot Table,一图展示某时间点的两家企业共同客户数情况;一图展示某时间点的企业间客户迁徙(迁入和迁出)情况和弦图Chord Diagram,一图展示企业间的迁入客户情况;一图展示企业间的迁出客户情况下图为制作好的企业客户dashboard:
| 5 小结
Superset的优点有很多,当然Superset也有不足如:不支持图表的下钻功能、不支持多图表间的复杂联动、处理大数据集效率较低等等。针对其不足,一方面看Airbnb后续是否会优化,另一方面也可以对它进行二次开发。但是Superset只是一款轻量级的BI应用,复杂的数据关联可以在ETL过程中完成,而Superset读取最终的结果表,另外它完全可以支撑起TB级的数据源读取。总而言之,对于个人开发者和中小型团队来说,若要选择一个无软件成本且方便高效的自助式数据分析工具,Superset是个不错的选择。
举报/反馈

金融科技实战

30获赞 92粉丝
专注金融科技研究与实践,欢迎交流!
关注
0
0
收藏
分享