您的当前位置:首页正文

superset 可视化平台搭建

2024-11-20 来源:个人技术集锦

什么是 superset

Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。
Superset 的前端主要用到了 React 和 NVD3/D3,而后端则基于 Python 的 Flask 框架和 Pandas、SQLAlchemy 等依赖库,主要提供了这几方面的功能:

  • 集成数据查询功能,支持多种数据库,包括 MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等,并深度支持 Druid。
  • 通过 NVD3/D3 预定义了多种可视化图表,满足大部分的数据展示功能。如果还有其他需求,也可以自开发更多的图表类型,或者嵌入其他的 JavaScript 图表库(如 HighCharts、ECharts)。
  • 提供细粒度安全模型,可以在功能层面和数据层面进行访问控制。支持多种鉴权方式(如数据库、OpenID、LDAP、OAuth、REMOTE_USER 等)。

搭建

方式一:pip安装

Superset 由 Python 构建,可使用 pip 安装 pip install superset,详细信息请参考官方文档:

方式二:docker安装

git clone https://github.com/apache/incubator-superset/
cd incubator-superset/contrib/docker
# prefix with SUPERSET_LOAD_EXAMPLES=yes to load examples:
docker-compose run --rm superset ./docker-init.sh
# you can run this command everytime you need to start superset now:
docker-compose up

案例

#1.安装
# 通过 PyPi 仓库安装 superset
sudo yum upgrade python-setuptools
sudo yum install mysql-devel gcc gcc-c++ gcc-devel libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
sudo pip install superset mysqlclient

#2.初始化
#创建初始超级用户: admin/123456
fabmanager create-admin --app superset --username admin --password 123456 --firstname admin --lastname admin --email yanjingang@mail.com
#使用默认 sqllite metadata,位于 ~/.superset/superset.db,并根据 migrate 创建表结构
superset db upgrade
#加载 Superset提供的示例数据
superset load_examples
#初始化 role 等
superset init

#3. 启动
superset runserver -d    #-d打开debug 模式;-p指定端口
或
gunicorn -D -w 2 -k gevent --timeout 120 -b  0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app
-D 后台运行
-w 负载进程数量,通常推荐的worker数量是:(2 x $num_cores) + 1
-k 工作进程类型(gevent是一个基于libev的并发库)
*关闭:pkill gunicorn

#4.访问
http://localhost:8088
admin/123456

#5.创建数据源
点击“数据源 —> 数据库 -> 添加新记录”
SQLAlchemy URI格式为:dialect://user:password@host:port/dbname[?key=value..]
示例:mysql://root:XXXXXXXXXX@127.0.0.1:3306/test?charset=utf8

#6.添加表
点击“数据源 —> 数据表 -> 添加新记录”

#7.创建可视化分析报表
点击“Charts-添加新记录”,选择数据源和表类型后编辑sql和表行业选项并调试即可。
*图标配置方法可参考系统内置的示例报表。

#8.合并多个报表到看板
有时多个报表从不同纬度分析同一个事情,可以在建立报表时选择建到一个看板上,就能在一个页面一起看了。
看板上可以增加filter_box类型的报表做筛选条件(条件不支持设置默认值)。

#9.添加用户/角色/权限

Superset 本身提供了一组基本角色和权限控制:

  • Admin:拥有所有可能的权限,包括从其他用户授予或撤消权限以及更改其他人的切片和 dashboard。
  • Alpha:可以访问所有数据源,但不能授予或撤消其他用户的访问权限。它们也仅限于改变它们拥有的对象。可以添加和更改数据源。
  • Gamma:访问受限,只能使用通过另一个互补角色获得访问权限的数据源。他们只能查看由他们有权访问的数据源制作的切片和 dashboard。无法更改或添加数据源,但可以可以创建切片和 dashboard。
  • sql_lab:被授予对 SQL Lab 的访问权限。
  • public:可以通过在 superset\config.py 设置 PUBLIC_ROLE_LIKE_GAMMA = True,授予该角色与 Gamma 角色相同的权限集。

登录:

显示全文