自建Superset数据可视化平台并创建疫情地图网站(上)
因为文章内容太长了,防止大家看的疲惫,所以这篇文章分为上下集。上半部分,会讲一下如何安装superset mac docker版,以及基本介绍superset的功能。 下半集教大家如何用superset制作一个疫情地图。
在前言之前,我们先看一下效果吧。
Image 4
前言 & Superset介绍
数据可视化话可以说是非常实用的一个技能,无论是Excel图标,Python可视化,都可以让大量的数据变得不是那么枯燥,让人一眼就能看出数据所反应的问题。如果你擅长vba,即使用Excel也能做出非常有用的动态可视化图表,相比来说Python的确更适合用来数据可视化。
基于我的浅薄理解,数据可视化就是Business Intelligence, 常见的商业BI工具包括Tableau,Power BI等等。 而有些公司则自己开发BI工具,比如我们要讲的Superset,就是Airbnb的工具。
BI工具的Dashboard功能可以方便我们动态的查看想要的细节,比如说今年疫情新闻的丁香医生疫情地图,从地图上,我们可以看出每个省份的疫情状况,点击省份,则又可以查看市级情况,只要Dashboard做好了设定,可以一层一层的深入了解。
商用BI dashboard就是这么一个设置好了层级,可以逐步分析发现问题的平台。企业一般根据需求预设及格Dashboard,连接数据库,实时更新数据,寻找问题。
数据可视化也好,数据分析也好,在商业环境下,其实更多是配合需求讲出一个故事来。根据需求,可以回避不好的数据,或者编造一个自圆其说不易戳穿且有数据为证的谎言。此处推荐我正在看的一本书《简单统计学:如何识别一本正经的胡说八道》,你可在学习如何识别伪数据分析的同时掌握一下如何一本正经胡说八道的技能,并反应到ppt当中,我相信对于职业生涯还是很有帮助的。
那么我为什么不用Python呢,额,是因为我自学的水平有点烂,所以挑了这个自带了很多可视化效果的Superset,你也可以选择其他的开源数据平台,或是试用Tableau
Superset自带了近二三十种可视化模板,可以根据需求自由调配。通过模板组合称dashboard即可实时使用。
Superset的层级结构如下:
第一个单位是table(导入database并不能直接实用,你只能每次使用一张表,当然还有一个骚操作,你可以在SQL Lab功能中筛选出多张表之间的数据生成你需要的表)
第二个单位是charts(以前叫slices) (Charts就是你根据单个table生成的视图模板,每次只能生成一个,你可以用同一张表生成不同的charts)
第三个单位就是dashboard了 (由Charts汇聚而成,你可以添加筛选工具,细化你需要了解的内容)
希望这些内容能让你了解到数据可视化,BI以及superset的一些基本知识,我的理解如果有出错的地方,也欢迎各位大佬指正。
那接下来,就从目录开始,安装并开始基本使用。
目录
macOS docker
Superset安装
创建admin账号
基本使用(功能介绍)
基本使用-csv上传
基本使用-数据库连接
案例-新冠肺炎可视化分析设置
基本使用-数据清理及格式
基本使用-可视化
基本使用-Dashboard
macOS Docker
关于如何使用macOS作为服务器,请参考我之前的系列贴mac 篇一:macOS server + Docker,我的家庭服务解决方案
大部分功能都能在mac docker上很好的运行,但是纯host模式的网络模式镜像不适用于mac docker。如果你已经有了基本的docker使用经验,可以直接开始了,当然,没有相关经验,也可以从下载一个dmg开始,Mac Docker下载。因为我会提供最直接的代码供大家复制黏贴。
Superset安装
首先交代一下,我使用的是Dockerhub上的现成镜像amancevice/superset,点击链接可以查看原文。
以下内容全部在termianl中操作
拉取镜像:
docker pull amancevice/superset
需要注意下面的命令,『 -v /你的/数据库储/路径 』,这句请修改为你本机数据库存储路径,或者你可以直接将容器完全连通本机全盘;另外如果需要换端口,请修改『 -p 8021 』,创建容器:
docker run -d --name superset -p 8021:8088 -v /你的/数据库储/路径:/home/superset amancevice/superset
至此,Superset已完成安装,需要注意,此时你虽然可以访问192.xx.xx.xx:8021了,但你并没有用户名和密码。
创建admin账号
以下内容全部在termianl种操作
创建admin,请直接输入一下命令:
docker exec -it 容器id fabmanager create-admin --app superset
系统会提示你创建密码,两次确认即可。
我在windows上配置完密码之后,还初始化了superset自带的世界人口数据库案例,鉴于我之后会以一个实例来讲,我就不多次一举了,当然,如果你想看看,请执行以下命令:
docker exec -it 容器id superset db upgrade
至此,你可以打开并登陆Superset了
Superset
基本使用(功能介绍)
Security:
Superset毕竟是Airbnb这么一个商业公司使用的平台。所以在权限这块还是考虑的算是挺全的,虽然没有SSO等复杂对接。 但他的权限组成方式是类似于SAP的角色代码(由302个基本权限 组成角色权限 再分配给用户),还包括一些简单的日志审计功能。 个人使用无所谓了,对于团队或公司使用,不同职能查看不同的数据,不同的dashboard,团队使用是够了,大型公司大量Dashboard及数据接入是否能够正常运行,我就不确定了。
Manage:
包含了dashboar样式的导入,css样式的自定义等,这方面我也不是很懂了,主要是界面查看的自定义。我就不做解释了。
Sources:
这个比较重要,是所有数据连接的关键点, 你有两个选择,连接数据库,或者是上传CSV,这两个内容会在后面讲。 table选项则是我们进去自定义数据分析方式的入口,主要就是这个。至于Druid,是海量数据下进行交互式实时数据展现的 BI/OLAP 工具(我也不懂,懵逼,我还没用到这个地步)。
Charts:
Charts存储着我们对原始数据生成的一些展示方式,就像这样。我们可以选择不同的展示方式,比如下图种的时间折线图。再通俗点,就是先筛选excel的数据,再做了个折线图。使用Superset,你可以拥有很多看起来更高大上的,比如蛇形图,比如城市热点图等等。
Charts
Dashboard:
BI,或者说是数据分析的精华,由不同的Charts组成,根据不同的数据类型设计不同的Charts,然后合并到一起,更方便的从多个纬度查看数据情况。这里就放一张superset的官宣图吧。
bank_dash
SQL Lab:
Superset一直被诟病的一点是只能使用单张表格的数据,excel都能多表vlookup呢,你一个大数据平台居然没这功能。无意啰嗦两句,superset本身就是作为一个公司内部某部门的需求开发出来的,人家当时的需求分析的数据可能就只是在某个数据库的某一张表里。现在开源以后有了SQL Lab,干嘛呢?需要跨表跨数据库?可以曲线救国,从多张表中用sql select出你需要的数据,生成一张新的表,用excel的话来说,就是vlookup出多张表的数据,然后创建一个新的表,用这张新表去做分析。
Superset的基本功能介绍先到这里,接下来,开始数据导入。
基本使用-csv上传
我会讲到如何去关联数据库,但对于初学者,或者不擅长数据库的人来说(妄加断言,大部分真正有BI需求的人,几乎都不懂数据库)
所以,我们从简单的CSV上传开始说吧。也没那么简单,一般中文系统中文excel下导出的csv往往编码不对,所以,你无法成功的向Superset中导入csv。
数据清理,这个非常重要,擅长使用sql语句清理数据库的,相信大部分人都做不到,所以,在学习过程中,可以选择excel整理完成后到处 utf-8格式的csv
macOS 导出 utf-8 csv,非常简单,另存为 - 格式 - csv(utf-8)
Screen Shot 2020-03-05 at 10.24.04 PM
接下来,我们就可以上传这个csv了,在superset种选择 Sources - Upload a CSV - table name(随便填)- choose file(选择你的csv)- Database(main就行,反正是练习),其他选项基本都不用改,但是,如果你希望有准确的时间的话,因为superset docker的时间会处于 0 时区,和我们差了8个小时。请修改 offset,填一个8就完事了。
时区
好了,点击upload,完成我们的上传。接下来就可以去Sources - Tables当中折腾我们的数据了。
基本使用-数据库连接
数据库连接,在Sources - Databases当中,选择添加,以SQLAlchemy URI关联数据库。作为使用Superset自学数据可视话的我来说。我也就用了一个sqlite尝试了,更多的数据库连接方式,请查看SQLAlchemy指引
sqlite:////home/superset/home-assistant_v2.db
在数据库连接过程中,我建议你勾选allow csv upload,其余不用设置(应该说是按需设置)。如下图:
关联数据库
那在下一期的文章,我将教大家利用现有数据制作疫情地图网站。

校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案