什么是Apache Superset 

Apache Superset是一个现代化的企业级商业智能Web应用程序。Apache Superset 支持用户的各种数据类型可视化和数据分析,支持简单图饼图到复杂的地理空间图表。Apache Superset 是一个轻量级、简单化、直观化、可配置的BI 框架。

Docker 安装Apache  Superset

Docker 检索 superse

[root@localhost ~]# docker search superset
NAME                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
amancevice/superset                    Superset on Debian+Python3                      278                                     [OK]
apache/superset                        Apache Superset                                 238
******

Docker 下载并查看superset镜像

[root@localhost ~]# docker pull apache/superset
Using default tag: latest
latest: Pulling from apache/superset
0e29546d541c: Pull complete
9b829c73b52b: Pull complete
cb5b7ae36172: Pull complete
6494e4811622: Pull complete
******
[root@localhost ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
nginx                latest              0e901e68141f        18 months ago       142MB
mysql                5.7                 2a0961b7de03        18 months ago       462MB
apache/superset      latest              3e8fac582908        23 months ago       1.69GB
******

创建superset 挂载目录:/opt/superset

[root@localhost opt]# mkdir /opt/superset

运行superset 容器

[root@localhost opt]# docker run --name my_superset -d -p 8088:8088 -v /opt/superset:/home/superset apache/superset
8797809b77f275d4655d9bc80a1e7f227330a0973bf6ab7d1031be7a0e70b54d

查看正在运行容器

[root@localhost opt]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS                                                  NAMES
8797809b77f2        apache/superset     "/bin/sh -c /usr/bin…"   43 seconds ago      Up 42 seconds (healthy)   0.0.0.0:8088->8088/tcp                                 my_superset
******

进入superset镜像

[root@localhost opt]# docker exec -it my_superset /bin/bash

superset 数据库初始化

superset@8797809b77f2:/app$ superset db upgrade
logging was configured successfully
2023-12-07 15:25:41,240:INFO:superset.utils.logging_configurator:logging was configured successfully
2023-12-07 15:25:41,259:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
/usr/local/lib/python3.8/site-packages/flask_caching/__init__.py:201: UserWarning: Flask-Caching: CACHE_TYPE is set to null, caching is effectively disabled.
  warnings.warn(
WARNI [alembic.env] SQLite Database support for metadata databases will         be removed in a future version of Superset.
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
******

superset 应用初始化

superset@8797809b77f2:/app$ superset init
logging was configured successfully
2023-12-07 15:26:15,395:INFO:superset.utils.logging_configurator:logging was configured successfully
2023-12-07 15:26:15,411:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
/usr/local/lib/python3.8/site-packages/flask_caching/__init__.py:201: UserWarning: Flask-Caching: CACHE_TYPE is set to null, caching is effectively disabled.
  warnings.warn(
Syncing role definition
2023-12-07 15:26:32,491:INFO:superset.security.manager:Syncing role definition
Syncing Admin perms
******

superset 设置管理员账户

superset@8797809b77f2:/app$ export FLASK_APP=superset
superset@8797809b77f2:/app$ flask fab create-admin
Username [admin]: admin
User first name [admin]: first
User last name [user]: last
Email [admin@fab.org]: admin@test.com
Password:
Repeat for confirmation:
logging was configured successfully
2023-12-07 15:28:24,832:INFO:superset.utils.logging_configurator:logging was configured successfully
******

温馨提示:设置superset 管理员账户为:admin  密码:123456
加载superset 示例Demo 

superset@8797809b77f2:/app$ superset load_examples
logging was configured successfully
2023-12-07 15:29:03,488:INFO:superset.utils.logging_configurator:logging was configured successfully
2023-12-07 15:29:03,501:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
/usr/local/lib/python3.8/site-packages/flask_caching/__init__.py:201: UserWarning: Flask-Caching: CACHE_TYPE is set to null, caching is effectively disabled.
  warnings.warn(
Creating database reference for examples
2023-12-07 15:29:07,167:INFO:superset.utils.core:Creating database reference for examples
Loading examples metadata and related data into examples
Creating default CSS templates
Loading [World Bank's Health Nutrition and Population Stats]
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/urllib/request.py", line 1354, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/usr/local/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)
******

温馨提示:由于Paython 版本对语法支持差异,示例Demo会报错,但不会影响我们的使用。 

superset 管理平台访问

Apache Superset 汉化

核心命令:

# 进入superset 镜像
docker exec -it -u root my_superset /bin/bash
# 替换/app/superset/config.py 配置文件
sed -i "s/BABEL_DEFAULT_LOCALE = \"en/BABEL_DEFAULT_LOCALE = \"zh/g" superset/config.py
#  替换/app/superset/config.py 配置文件
sed -i "s/LANGUAGES = {}/# LANGUAGES = {}/g" superset/config.py

#重新启动superset 镜像
docker restart my_superset

superset 汉化界面

Apache Superset 快速入门

第一步:添加Databases(数据库)

 提示:本次演示添加数据库为MySQL 8

填充 MYSQL 8 数据库连接信息

最后数据库查询列表展示我新增的MYSQL 8 数据库。

第二步:添加Datasets(数据级) 

 填充 Dataset/数据级信息

最后数据级查询列表展示我新增的base_building数据级。

 第三步:点击Datasets(数据级) ,创建Chart(图表)

默认初始化Chart (图表)编辑页面

我基于base_building/数据集创建查询building_no\building_name\building_address的图表.

 第四步:查询Chart(图表),并在DashBoard(仪表盘)中显示。

查询自己创建的Chart图表 

新增看板 ,选择创建的图表

最终效果展示:

参考资料:

 Apache Superset 官网:https://superset.apache.org/docs/intro

Apache Superset GitHub 地址 : https://github.com/apache/superset

SuperSet 最新 Docker 部署文档(含元数据库切换、汉化、镜像导出)

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐