1、 Superset的功能介绍 1、我们可以通过连接数据库,去对数据库中的单个表进行配置,展示出柱状图,折线图,饼图,气泡图,词汇云,数字,环状层次图,有向图,蛇形图,地图,平行坐标,热力图,箱线图,树状图,热力图,水平图等图,官网上是不可以操作多个表的,不过我们可以操作视图,也就是说在数据库建好视图,也可以在superset中给表新增一列进行展示。 2、配置好了我们想要的图表之后我们可以把它添加到仪盘表进行展示,还可以去配置缓存,来加速仪盘表的查询,不必要没次都去查询数据库。 3、我们可以查看进行查询表的sql,也可以把查询导出为json,csv文件。它有自己的sql编辑器,我们可以
2、在里面来编写sql。 一、系统基本使用 在使用本系统前,应该先进行账户的建立操作。 1.1登陆 输入开通的账号、密码点击登录即可。 1.2新建账号 在登陆时可以使用admin进行用户的创建。 先登陆admin用户,点击界面栏目"安全"→"用户列表"→,点击按钮 在填写完信息后点击保存(注:红色*的选项未必填项)即可使用新建账号登陆。 在创建账号时,根据使用账号功能需求选择不同的角色属性,每个账号的用户名不能相同。 二、创建数据源 2.1.1 superset连接MySQL 登录到部署superset主机 1. 进入superset的Web界面,点击
3、sources下拉选项的Databases,如下图: 2. 进入数据库界面,点击“+”按钮进入数据库连接界面,填写正确字段后保存,操作如下: 3. 查看已经连接好的数据库 2.1.2 添加数据表 Sources -> Tables 点击加号(+)新增数据表 Database选择之前创建好的数据源,Table Name必须是数据源中对应真实的表名,表中必须包含一个Date或者Timestamp类型的字段 2.1.3 数据表查看、编辑 Sources -> Tables可看到所有已连接的数据表 可对表结构、数据类型、是否可进行group、filter、coun
4、t、sum、min、max操作等进行编辑 2.2 数据探索分析与可视化展示 Table定义好维度字段和指标之后,即可针对该表进行数据探索分析与可视化展示,在List Table页面,点击一个表名,即可进入。 在分析页面中,可以针对某一个表事先定义的时间字段、维度及指标字段进行数据探索分析,并可以选择相应的图表进行可视化展示。 2.2.1 可视化图表类型选择 选择可视化图表类型。Superset自带的图表类型如上,包括柱状图、饼图、时间序列线图、堆积图、图表、热词图等。 2.2.2 数据时间范围选择 选择: 时间所在数据列。时间粒度,时间跨度
5、 2.2.3 维度展示选择、图表可视化选择 Group by:x轴统计维度 Metrics:y轴展示的数据指标(包括指标的sum、avg等) Sort By:排序依据 可视化选择 配色 图例 是否堆积/分布 …… 2.2.4 坐标轴编辑 选择X、Y轴数据格式 编辑X、Y轴标签 编辑Y轴边界 2.2.5 自定义查询/过滤 自定义SQL语句 where、having语句、内置in/not in过滤器 2.2.6 查询可视化保存 将查询结果保存为slice 将slice增加到已有的dashboard/新增dashboard中 2.2.
6、7 Dashboard编辑 编辑每个Slice对应的模块,可以自由拖拽位置和大小,并保存整个Dashboard的布局。 2.2.8 多表关联查询 在数据表编辑界面,可通过Database Expression,运用SQL语句实现多表关联查询。 3.Superset操作数据库 经过上边的步骤就连接上了数据库,下边就可以进行数据的可视化操作了。首先点击SQL测试下拉菜单下的SQL编辑器按钮。如下图所示: SQL语句的执行结果如下: 点击Visualize按钮进入数据可视化编辑窗口: 4.superset部分图形使用案例 4.1 Distribution – B
7、ar Chart(分布-条形图) 案例需求:统计每个state的总人数,总女生人数,总男生人数。 SELECT state AS state, sum(num) AS sum__num, sum(sum_girls) AS sum__sum_girls, sum(sum_boys) AS sum__sum_boys FROM (select * from birth_names) AS expr_qry WHERE ds >= '1917-07-05 18:21:31'
8、 AND ds <= '2017-07-05 18:21:31' GROUP BY state ORDER BY sum__num DESC LIMIT 50000 进入可视化界面,可按需求显示图形: 在图形的右上方有对图形的保存等一些操作: 图表的保存: 查看保存的图表: 3.2 Table View – 表视图 需求1:根据name,gender分组,统计总人数。 SQL: SELECT name AS name, gender AS gender, sum(num) AS sum__num FROM
9、select * from birth_names) AS expr_qry WHERE ds >= '1917-07-05 18:24:31' AND ds <= '2017-07-05 18:24:31' GROUP BY name, gender ORDER BY sum__num DESC LIMIT 50000 3.3 Pivot Table – 数据透视表 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。 案例需求:按照name,gende
10、r分组,对每个state人数进行统计。 SQL: SELECT gender AS gender, state AS state, name AS name, sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry WHERE ds >= '1917-07-05 18:25:21' AND ds <= '2017-07-05 18:25:21' GROUP BY gender, stat
11、e, name ORDER BY sum__num DESC LIMIT 50000 3.4 Time Series – Line Chart – 时序线图 案例需求:查看每个state人数总数随时间的变化。 SQL: SELECT state AS state, ds AS __timestamp, sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry INNER JOIN (SEL
12、ECT state AS state__, sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry WHERE ds >= '1917-07-05 18:26:35' AND ds <= '2017-07-05 18:26:35' GROUP BY state ORDER BY sum__num DESC LIMIT 50) AS anon_1 ON state = state__ WHERE ds >= '
13、1917-07-05 18:26:35' AND ds <= '2017-07-05 18:26:35' GROUP BY state, ds ORDER BY sum__num DESC LIMIT 50000 3.5 Time Series – Stacked – 时序面积图 面积图强调数量随时间而变化的程度,也可用于引起人们对总值趋势的注意。例如,表示随时间而变化的产生的数据可以绘制在面积图中以强调总数据量。 案例需求:根据每个state每年的总人数的时序图-叠图。 SQL: SELECT state AS state,
14、 ds AS __timestamp, sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry INNER JOIN (SELECT state AS state__, sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry WHERE ds >= '1917-07-05 18:27:06
15、' AND ds <= '2017-07-05 18:27:06' GROUP BY state ORDER BY sum__num DESC LIMIT 50) AS anon_1 ON state = state__ WHERE ds >= '1917-07-05 18:27:06' AND ds <= '2017-07-05 18:27:06' GROUP BY state,ds ORDER BY sum__num DESC LIMIT 50000 3.6 Time Series – Bar Chart – 时序柱形图 案例需求:比较不
16、同的年份每个state的人数差异的时序柱形图。 SQL: SELECT state AS state, ds AS __timestamp, sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry INNER JOIN (SELECT state AS state__, sum(num) AS sum__num FROM (select * from
17、birth_names) AS expr_qry WHERE state NOT IN ('other') AND ds >= '1917-07-05 18:28:57' AND ds <= '2017-07-05 18:28:57' GROUP BY state ORDER BY sum__num DESC LIMIT 50) AS anon_1 ON state = state__ WHERE ds >= '1917-07-05 18:28:57' AND ds <= '2017-07-05 18:28:57' AND stat
18、e NOT IN ('other') GROUP BY state, ds ORDER BY sum__num DESC LIMIT 50000 3.7 Distribution – NVD3 - Pie Chart –饼图 案例:比较每个state的人数占总人数的比例。 SQL: SELECT state AS state, sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry WHERE ds >= '1917-07-
19、05 18:29:51' AND ds <= '2017-07-05 18:29:51' AND state NOT IN ('other') GROUP BY state ORDER BY sum__num DESC LIMIT 50000 3.8 Bubble Chart – 气泡图 SQL语句: SELECT country_name AS country_name, region AS region, SUM(`SP_POP_TOTL`) AS `sum__SP_POP_TOTL`, SUM(`SP_RUR_
20、TOTL_ZS`) AS `sum__SP_RUR_TOTL_ZS`, SUM(`SP_DYN_LE00_IN`) AS `sum__SP_DYN_LE00_IN` FROM wb_health_population WHERE year >= STR_TO_DATE('2011-01-01 00:00:00', '%%Y-%%m-%%d %%H:%%i:%%s') AND year <= STR_TO_DATE('2011-01-02 00:00:00', '%%Y-%%m-%%d %%H:%%i:%%s') AND country_code NOT IN (
21、'TCA', 'MNP', 'DMA', 'MHL', 'MCO', 'SXM', 'CYM', 'TUV', 'IMY', 'KNA', 'ASM', 'ADO', 'AMA', 'PLW') GROUP BY country_name, region ORDER BY `sum__SP_POP_TOTL` DESC LIMIT 50000 3.9 MarKup – 标记图 4.10 Word Clould – 文字云 案例需求:显示所有的name,且看到使用这个名字的人数比重。 SQL语句: SELECT name AS name,
22、 sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry WHERE ds >= '1917-07-05 17:39:23' AND ds <= '2017-07-05 17:39:23' GROUP BY name ORDER BY sum__num DESC LIMIT 50000 3.10 Sunburst – 旭日图 案例需求:第一层gender,第二层name,统计人数。 SQL: SELECT gender AS gender, name
23、AS name, sum(num) AS sum__num, sum(num) AS sum__num FROM (select * from birth_names) AS expr_qry WHERE ds >= '1917-07-05 17:56:35' AND ds <= '2017-07-05 17:56:35' GROUP BY gender, name ORDER BY sum__num DESC LIMIT 50000 3.11 Parallel Coordinates –平行坐标图 平行坐
24、标图为一种数据可视化的方式。以多个垂直平行的坐标轴表示多个维度,以维度上的刻度表示在该属性上对应值,以颜色区分类别。每个样本在各个维度上对应一个值,相连而得的一个折线表示该样本。 SQL: SELECT country_name AS country_name, SUM(`SP_POP_TOTL`) AS `sum__SP_POP_TOTL`, SUM(`SP_RUR_TOTL_ZS`) AS `sum__SP_RUR_TOTL_ZS`, SUM(`SH_DYN_AIDS`) AS `sum__SH_DYN_AIDS`, AV
25、G(`NY_GNP_PCAP_CD`) AS `avg__NY_GNP_PCAP_CD` FROM wb_health_population WHERE year >= STR_TO_DATE('2011-01-01 00:00:00', '%%Y-%%m-%%d %%H:%%i:%%s') AND year <= STR_TO_DATE('2011-01-01 00:00:00', '%%Y-%%m-%%d %%H:%%i:%%s') GROUP BY country_name ORDER BY `sum__SP_POP_TOTL` DESC LIMIT 50000
26、 3.12 Box plot – 盒图 盒图(boxplot):摆弄数据离散度的一种图形。它对于显示数据的离散的分布情况效果不错。在软件工程中,Nassi和Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图,也被称为N-S图。 SQL: SELECT region AS region, year AS __timestamp, SUM(`SP_POP_TOTL`) AS `sum__SP_POP_TOTL` FROM wb_health_population INNER JOIN (SELECT r
27、egion AS region__, SUM(`SP_POP_TOTL`) AS `sum__SP_POP_TOTL` FROM wb_health_population WHERE year >= STR_TO_DATE('1960-01-01 00:00:00', '%%Y-%%m-%%d %%H:%%i:%%s') AND year <= STR_TO_DATE('2017-07-11 09:46:33', '%%Y-%%m-%%d %%H:%%i:%%s') GROUP BY region ORDER BY `sum__
28、SP_POP_TOTL` DESC LIMIT 25) AS anon_1 ON region = region__ WHERE year >= STR_TO_DATE('1960-01-01 00:00:00', '%%Y-%%m-%%d %%H:%%i:%%s') AND year <= STR_TO_DATE('2017-07-11 09:46:33', '%%Y-%%m-%%d %%H:%%i:%%s') GROUP BY region, year ORDER BY `sum__SP_POP_TOTL` DESC LIMIT 50000 精选范本






