superset安装及简单使用

Superset

BI VS 报表工具

  • 报表工具是数据展示工具,而BI(商业智能)是数据分析工具。报表工具可以制作各类数据报表、图形报表的工具,甚至还可以制作电子发票联、流程单、收据等。

  • BI可以将数据进行模型构建,制作成Dashboard,相比于报表,侧重点在于分析,操作简单、数据处理量大。常常基于企业搭建的数据平台,连接数据仓库进行分析。

简介

Superset是一款开源的现代化企业级BI。它是目前开源的数据分析和可视化工具中比较好用的,功能简单但可以满足我们对数据的基本需求,支持多种数据源,图表类型多,易维护,易进行二次开发。

功能
  • 丰富的数据可视化集
  • 易于使用的界面,用于浏览和可视化数据
  • 创建和共享仪表板
  • 与主要身份验证提供程序(数据库,OpenID,LDAP,OAuth和REMOTE_USER通过Flask AppBuilder集成)集成的企业就绪身份验证
  • 可扩展的高粒度安全性/权限模型,允许有关谁可以访问单个要素和数据集的复杂规则
  • 一个简单的语义层,允许用户通过定义哪些字段应显示在哪些下拉列表中以及哪些聚合和功能度量可供用户使用来控制如何在UI中显示数据源
  • 通过SQLAlchemy与大多数说SQL的RDBMS集成
  • 与Druid.io的深度集成
支持的数据库

superset现在支持的所有数据库或分析引擎:
在这里插入图片描述

界面

在这里插入图片描述

安装

安装python3

首先升级python版本,我们使用Anaconda来安装Python3版本的python。

1、首先去Anaconda官网下载安装脚本

资料\superset\Anaconda3-2019.07-Linux-x86_64.sh

2、上传Anaconda3-2019.07-Linux-x86_64.sh

使用 FileZilla 上传到node3 /export/softwares

3、运行Anaconda3-2019.07-Linux-x86_64.sh脚本

sh Anaconda3-2019.07-Linux-x86_64.sh

安装过程输入:回车、yes、

Anaconda安装目录设置为:/export/servers/anaconda

4、配置环境变量

vim /etc/profile
#Anaconda 
export PATH=$PATH:/root/anaconda3/bin
source /etc/profile

5、验证是否安装python3成功

python3

提示出现python3.x版本即安装成功!!

退出使用quit();

注意:对于重新打开的终端连接会出现base字样,消除方法:

若在终端中输入conda deactivate,也可消除base字样,但是一次性的,再次打开终端依然存在base字样。在.bashrc文件(home目录下)添加命令:conda deactivate可以永久消除base字样。

至此python3已经安装成功。

安装superset

1、安装依赖

yum upgrade python-setuptools
yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel

1、pip安装superset

cd /export/servers/anaconda3/
pip install superset

需要联网下载文件等待一段时间
在这里插入图片描述

2、创建管理员用户名和密码

fabmanager create-admin --app superset

在这里插入图片描述

记住以下信息,登录使用:

Username [admin]: admin
User first name [admin]: admin
User last name [user]: admin
Email [admin@fab.org]: 
Password: 123456
Repeat for confirmation: 123456
Recognized Database Authentications.
Admin User admin created.

3、初始化superset

superset db upgrade

4、装载初始化数据

superset load_examples

5、创建默认角色和权限

superset init

6、启动superset

superset run -h node3 -p 8080 --with-threads --reload --debugger

在这里插入图片描述

7、登录superset

http://node3:8080/superset/welcome

用户名: admin

密码:123456

切换到中文
在这里插入图片描述

8、Superset 初体验
在这里插入图片描述

superset入门案例

需求:

  • 使用Superset展示不同性别的用户人数

  • 效果图

在这里插入图片描述

准备环境

yum install python-devel -y
yum install mysql-devel -y
yum install gcc -y
pip install mysqlclient

实现步骤:

1、导入MySQL数据源

导入资料中的 superset\数据源\superset_demo.sql

2、添加新的数据库

mysql的url地址

mysql://root:123456@node1/superset_demo?charset=utf8

在这里插入图片描述

在这里插入图片描述

3、点击 SQLLab > SQL Editor编写以下SQL语句

选择 数据库

选择表,查看表的列
在这里插入图片描述

参考SQL语句:

select
	case when gender = 0 then '男'
		when gender = 1 then '女'
		else '保密'
    end as gender,
	count(id) as total_cnt
from 
	t_user
group by gender

4、保存查询

5、点击 saved queries
在这里插入图片描述

  • 运行查询,点击 Explore 浏览数据
    在这里插入图片描述

6、配置图表类型为 Bar Chart 条形图
在这里插入图片描述

7、指定统计指标 sum(total_cnt)

8、指定序列为 gender(性别)
在这里插入图片描述

Superset功能介绍

  • 用户权限
  • Sources
  • Manage
  • Charts
  • Dashboards
  • SQL Lab

Superset实战 - MySQL订单分析案例

Superset Charts图表展示实战

1、根据日期统计,每日订单总额(趋势图)
在这里插入图片描述

select 
	str_to_date(date1,'%Y-%m-%d') date1,
	sum(price) total_price
from
	dm_sales
group by date1;

2、根据日期、渠道统计订单总额(Sunburst Chart)

-- 根据日期、渠道统计订单总额
select
	date1,
	channelname,
	sum(price) total_price
from
	dm_sales
group by 
	date1,
	channelname

在这里插入图片描述

3、根据日期、区域统计订单总额(数据透视表)

-- 根据日期、区域统计订单总额
select
	str_to_date(date1,'%Y-%m-%d') date1,
	regionname,
	sum(amount) as total_amount,
	sum(price) as total_price
from
	dm_sales
group by
	date1,
	regionname

在这里插入图片描述

4、根据日期、区域、渠道、产品统计订单数、订单总额(层级环图)

-- 根据日期、区域、渠道、产品统计订单数、订单总额
select
	date1,
	regionname,
	channelname,
	productname,
	sum(price) as total_price
from
	dm_sales
group by
	date1,
	regionname,
	channelname,
	productname

在这里插入图片描述

Superset Dashboards看板展示实战

将之前设计好的图标整合到看板中

操作步骤:

1、点击 Dashboards > 添加看板

2、拖动之前开发好的 Charts 到看板中

在这里插入图片描述

Superset权限控制

Superset初始化权限之后,创建5个角色,分别为Admin,Alpha,Gamma,sql_lab以及Public。Admin,Alpha和Gamma角色,分配了很多的菜单/视图权限,如果手工去修改,改错的可能性很大,加之Superset并没有说明每一项权限的完整文档,所以不建议去修改这些角色的定义。灵活使用预置的角色,可以快速满足业务上安全控制需求。

角色权限介绍
  • Admin:拥有所有权限

  • Alpha:能访问所有数据源,增加或者更改数据源,但不能给更改其他用户权限。

  • Gamma:必须结合其他能访问数据源的角色才能访问数据。这个角色所能访问的切片和看板,也是基于能访问数据源所创建的切片和看板。

  • sql_lab:能访问SQL Lab菜单。

  • Public:默认没有任何权限

匿名访问

所有用户都能访问某一个看板,需要进行如下设置 :

1、更改config.py文件,设置如下部分,PUBLIC_ROLE_LIKE_GAMMA = True

vim /export/servers/anaconda3/lib/python3.7/site-packages/superset/config.py

2、需要运行superset init命令,这个命令会给“Public”角色设置与“Gamma”一样的权限

superset init

3、将匿名用户所需要访问的数据库和数据源分配给“Public”角色。例如,基于superset_demo数据库的grade_test创建了看板,如果匿名用户需要查看这个看板,那将如下权限分配给“Public”。

  • all database access on all_database_access
  • all datasource access on all_datasource_access

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VYUKoiKw-1606107403481)(assets/1571565112200.png)]

  • 删除一些菜单权限:

在这里插入图片描述

分享页面或者嵌入html

在这里插入图片描述

html页面:

<html>
<head>
<title>dashboard</title>
</head>
<body>
    <div class="dashboard">
       <!-- <iframe src="http://node3:8080/superset/dashboard/7/"  style="height=100%; width=100%" ></iframe > -->
		
		<iframe name="myframe" src="http://node3:8080/r/10" frameborder="0" scrolling="auto" width="100%" height="100%" onload="document.all['myframe'].style.height=myframe.document.body.scrollHeight" ></iframe>
    </div>
	</body>
</html>
角色介绍

实际业务中,不同的职能部门访问的数据不一样,例如财务部需要访问成本,应收,应付等数据,供应链需要访问库存数量,发货数据等,怎样简洁的设置,快速满足这种业务需求?

如前文所述,“Gamma”拥有大部分基础的权限,但是必须结合其他能访问数据源的角色才能访问数据。所以,可以给用户分配“Gamma”角色和针对部门分别创建的数据源角色来进行控制。

例如,针对财务用户,创建角色“Finance”,将成本,应收,应付的数据表权限赋予这个角色,财务用户就分配“Gamma”和“Finance”。

针对供应链用户,创建角色“SCM”,将库存和发货数据表权限赋予这个角色,供应链用户就配“Gamma”和“SCM”。

如果是公司的霸道总裁,需要看所有的看板,就可以给霸道总裁赋予“Gamma”和“Finance”,“SCM”角色。

在这里插入图片描述

我们创建2个角色,分别是main角色可以查看访问main的数据,

examples角色可以查看和访问 examples 数据源。

1、创建 main 角色

  • database access on [main] 拥有访问 main 数据库的权限
  • datasource access on [main] 拥有访问main 数据源的权限
  • can dashboard on Superset 拥有访问 main 数据源创建的 dashboard的权限

在这里插入图片描述

2、创建examples角色

  • database access on [examples] 拥有访问 examples数据库的权限
  • datasource access on [examples] 拥有访问examples数据源的权限
  • can dashboard on Superset 拥有访问 examples数据源创建的 dashboard的权限

在这里插入图片描述

3、创建用户

  • main_user: 关联gamma、sqllab与main角色;
    在这里插入图片描述

  • examples_user: 关联gamma、sqllab与examples角色;

在这里插入图片描述

  • 用不同的用户登录查看每个用户具有的table,以及能查看到的dashboard!!

使用Supset进行业务开发

Superset对接MySQL展示离线指标数据

准备:

  • 导入 资料\superset\数据源\ads_dim_table.sql

1、添加之前离线阶段开发好的 itcast_ads_shop 数据库数据源

  • jdbc连接:mysql://root:123456@node1/itcast_ads_shop?charset=utf8

2、统计指定日期 按照大区获取订单总额

select
	t2.orgname as regionname,
	allprice
from
	ads_trade_order t1
	left join itcast_org t2
	on t1.regionid = t2.orgid
where dt = '20190905' and regionid != '9999'

在这里插入图片描述

2、统计指定日期 按照大区、商品一级分类ID、订单总额

select
	t4.orgname,
	t2.catname,
	allprice
from
	ads_trade_order t1
    left join itcast_goods_cats t2 
	on t1.firstcatid  = t2.catId 
	left join itcast_goods_cats  t3
	on t1.secondcatid  = t3.catId 
	left join itcast_org t4
	on t1.regionid  = t4.orgId 
	left join itcast_org t5
	on t1.cityid  = t5.orgId 
where dt = '20190905' and regionid != '9999' and firstcatid != '9999'

在这里插入图片描述

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光带不走丶年少轻狂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值