Apache Superset下载-Superset数据可视化平台下载地址-Superset下载方法
1. Apache Superset简介与版本说明
Apache
Superset是一款开源的现代化数据探索和可视化平台,由Airbnb开源并贡献给Apache基金会。更多学习教程www.fgedu.net.cn。Superset提供丰富的可视化图表类型、交互式仪表盘、SQL编辑器等功能,帮助企业快速构建数据分析和BI应用。
Superset支持多种数据源,包括MySQL、PostgreSQL、Oracle、Hive、Presto、ClickHouse等。学习交流加群风哥微信:
itpux-com。它具有直观的Web界面,无需编写代码即可创建精美的数据可视化图表。
Apache Superset核心特性:
– 交互式仪表盘:支持拖拽式仪表盘创建
– SQL编辑器:强大的SQL查询和编辑功能
– 多数据源:支持30+数据库和大数据引擎
– 安全认证:支持多种认证方式和权限控制
– 缓存机制:支持Redis、Memcached缓存
– 告警报告:支持定时报告和告警通知
– 嵌入式分析:支持将图表嵌入第三方应用
– 扩展插件:支持自定义可视化插件
– 多租户:支持多租户和团队协作
Superset架构组件:
Web Server Web服务器,提供HTTP服务
Database 元数据库,存储仪表盘和图表配置
Cache 缓存服务,加速查询响应
Celery 异步任务队列,处理后台任务
SQL Lab SQL编辑器,交互式查询
Charts 图表组件,数据可视化
Dashboards 仪表盘,图表集合
2. Superset版本选择与下载地址
Apache Superset采用快速迭代发布模式,当前最新稳定版本为6.0.0系列。
Superset版本状态:
6.0.0 2025-XX-XX 最新稳定版
5.0.0 2025-06-23 稳定版
4.1.x 2024-XX-XX 旧版支持
3.1.x 2023-XX-XX 旧版支持
Superset 6.0.0主要更新:
– 全新的UI设计
– 性能优化
– 新增图表类型
– 安全性增强
– 告警报告功能增强
– 嵌入式分析改进
官方下载地址:
下载页面:https://pypi.org/project/apache-superset/
源码仓库:https://github.com/apache/superset
文档中心:https://superset.apache.org/docs/
Docker镜像:https://hub.docker.com/r/apache/superset
3. Superset下载方式详解
方式一:pip安装(推荐)
$ python3 -m venv /fgeudb/superset/venv
$ source /fgeudb/superset/venv/bin/activate
安装Superset:
(venv) $ pip install apache-superset==6.0.0
输出示例如下:
Collecting apache-superset==6.0.0
Downloading apache_superset-6.0.0-py3-none-any.whl (45.6 MB)
Collecting flask>=2.2.0
Downloading flask-3.0.0-py3-none-any.whl (101 kB)
Collecting sqlalchemy>=2.0.0
Downloading sqlalchemy-2.0.23-py3-none-any.whl (2.0 MB)
…
Successfully installed apache-superset-6.0.0 flask-3.0.0 sqlalchemy-2.0.23 …
初始化数据库:
(venv) $ superset db upgrade
输出示例如下:
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> 1a1d627ebd8e, empty message
…
INFO [alembic.runtime.migration] Running upgrade 1e2841a4354c -> 2f1d15d7e8a3, empty message
创建管理员用户:
(venv) $ superset fab create-admin
输出示例如下:
Username [admin]: admin
User first name [admin]: Admin
User last name [user]: User
Email [admin@fab.org]: admin@fgedu.net.cn
Password:
Repeat for confirmation:
Recognized Database Authentications.
Admin User admin created.
加载示例数据:
(venv) $ superset load_examples
初始化角色和权限:
(venv) $ superset init
输出示例如下:
Loading your Local configuration
Syncing role definition
Syncing Admin perms
Syncing Alpha perms
Syncing Gamma perms
Syncing granter perms
Syncing sql_lab perms
Syncing Public perms
Finished syncing role definitions
方式二:Docker容器部署
$ docker pull apache/superset:6.0.0
输出示例如下:
6.0.0: Pulling from apache/superset
Digest: sha256:abc123def456…
Status: Downloaded newer image for apache/superset:6.0.0
启动Superset容器:
$ docker run –name superset \
-p 8088:8088 \
-v /fgeudb/superset/superset_home:/app/superset_home \
-e “SUPERSET_SECRET_KEY=your_secret_key_here” \
-d apache/superset:6.0.0
输出示例如下:
abc123def456789…
初始化Superset:
$ docker exec -it superset superset db upgrade
$ docker exec -it superset superset fab create-admin \
–username admin \
–firstname Admin \
–lastname User \
–email admin@fgedu.net.cn \
–password admin123
$ docker exec -it superset superset init
查看容器状态:
$ docker ps | grep superset
输出示例如下:
abc123def456 apache/superset:6.0.0 “/usr/bin/dumb-init …” 10 seconds ago Up 9 seconds 0.0.0.0:8088->8088/tcp
superset
方式三:Docker Compose部署
$ vi /fgeudb/superset/docker-compose.yml
version: ‘3.8’
services:
superset:
image: apache/superset:6.0.0
container_name: superset
ports:
– “8088:8088”
environment:
– SUPERSET_SECRET_KEY=your_secret_key_here
– DATABASE_URI=mysql://superset:superset123@mysql:3306/superset
– REDIS_URL=redis://redis:6379/0
volumes:
– ./superset_home:/app/superset_home
depends_on:
– mysql
– redis
restart: always
mysql:
image: mysql:8.0
container_name: superset-mysql
environment:
– MYSQL_ROOT_PASSWORD=root123
– MYSQL_DATABASE=superset
– MYSQL_USER=superset
– MYSQL_PASSWORD=superset123
volumes:
– ./mysql_data:/var/lib/mysql
restart: always
redis:
image: redis:7.0
container_name: superset-redis
volumes:
– ./redis_data:/data
restart: always
启动服务:
$ cd /fgeudb/superset
$ docker-compose up -d
输出示例如下:
Creating superset-mysql … done
Creating superset-redis … done
Creating superset … done
4. Superset安装部署实战
步骤1:安装依赖环境
# yum install -y python39 python39-pip python39-devel
或Ubuntu/Debian:
# apt install -y python3.10 python3.10-venv python3.10-dev
验证Python版本:
$ python3 –version
输出示例如下:
Python 3.10.12
安装系统依赖:
# yum install -y gcc gcc-c++ libffi-devel openssl-devel cyrus-sasl-devel openldap-devel
创建目录结构:
# mkdir -p /fgeudb/superset/{venv,superset_home,logs}
步骤2:配置元数据库
# yum install -y mysql-server
# systemctl start mysqld
# systemctl enable mysqld
创建Superset数据库:
# mysql -u root -p
mysql> CREATE DATABASE superset DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> CREATE USER ‘superset’@’%’ IDENTIFIED BY ‘superset123’;
mysql> GRANT ALL PRIVILEGES ON superset.* TO ‘superset’@’%’;
mysql> FLUSH PRIVILEGES;
安装MySQL驱动:
(venv) $ pip install mysqlclient
步骤3:配置Redis缓存
# yum install -y redis
# systemctl start redis
# systemctl enable redis
验证Redis:
$ redis-cli ping
输出示例如下:
PONG
安装Redis驱动:
(venv) $ pip install redis
步骤4:配置Superset
(venv) $ vi /fgeudb/superset/superset_config.py
import os
SECRET_KEY = ‘your_secret_key_here_change_in_production’
SQLALCHEMY_DATABASE_URI = ‘mysql://superset:superset123@192.168.1.51:3306/superset’
REDIS_URL = ‘redis://192.168.1.51:6379/0’
CACHE_CONFIG = {
‘CACHE_TYPE’: ‘RedisCache’,
‘CACHE_DEFAULT_TIMEOUT’: 300,
‘CACHE_KEY_PREFIX’: ‘superset_’,
‘CACHE_REDIS_URL’: REDIS_URL,
}
DATA_CACHE_CONFIG = {
‘CACHE_TYPE’: ‘RedisCache’,
‘CACHE_DEFAULT_TIMEOUT’: 86400,
‘CACHE_KEY_PREFIX’: ‘superset_data_’,
‘CACHE_REDIS_URL’: REDIS_URL,
}
FILTER_STATE_CACHE_CONFIG = {
‘CACHE_TYPE’: ‘RedisCache’,
‘CACHE_DEFAULT_TIMEOUT’: 86400,
‘CACHE_KEY_PREFIX’: ‘superset_filter_’,
‘CACHE_REDIS_URL’: REDIS_URL,
}
EXPLORE_FORM_DATA_CACHE_CONFIG = {
‘CACHE_TYPE’: ‘RedisCache’,
‘CACHE_DEFAULT_TIMEOUT’: 86400,
‘CACHE_KEY_PREFIX’: ‘superset_explore_’,
‘CACHE_REDIS_URL’: REDIS_URL,
}
CELERY_CONFIG = {
‘broker_url’: REDIS_URL,
‘imports’: (‘superset.sql_lab’,),
‘result_backend’: REDIS_URL,
‘worker_prefetch_multiplier’: 1,
‘task_acks_late’: True,
}
SQLLAB_CTAS_NO_LIMIT = True
SQLLAB_ASYNC_TIME_LIMIT_SEC = 60 * 60 * 6
SQLLAB_TIMEOUT = 60 * 30
SUPERSET_WEBSERVER_PROTOCOL = ‘http’
SUPERSET_WEBSERVER_ADDRESS = ‘192.168.1.51’
SUPERSET_WEBSERVER_PORT = 8088
ENABLE_PROXY_FIX = True
PREFERRED_URL_SCHEME = ‘http’
设置环境变量:
(venv) $ export SUPERSET_CONFIG_PATH=/fgeudb/superset/superset_config.py
步骤5:启动Superset服务
(venv) $ superset run -p 8088 –with-threads –reload
输出示例如下:
[2026-04-04 10:05:00 +0800] [12345] [INFO] Starting gunicorn 21.2.0
[2026-04-04 10:05:00 +0800] [12345] [INFO] Listening at: http://0.0.0.0:8088 (12345)
[2026-04-04 10:05:00 +0800] [12345] [INFO] Using worker: gthread
[2026-04-04 10:05:00 +0800] [12346] [INFO] Booting worker with pid: 12346
启动Celery Worker(后台任务):
(venv) $ celery –app=superset.tasks.celery_app:app worker –loglevel=info &
启动Celery Beat(定时任务):
(venv) $ celery –app=superset.tasks.celery_app:app beat –loglevel=info &
访问Web界面:
打开浏览器访问:http://192.168.1.51:8088
默认用户名:admin
默认密码:admin123
步骤6:配置systemd服务
# vi /etc/systemd/system/superset.service
[Unit]
Description=Apache Superset
After=network.target mysql.service redis.service
[Service]
Type=simple
User=superset
Group=superset
Environment=”SUPERSET_CONFIG_PATH=/fgeudb/superset/superset_config.py”
Environment=”PATH=/fgeudb/superset/venv/bin”
ExecStart=/fgeudb/superset/venv/bin/gunicorn -w 4 -k gevent –timeout 120 -b 0.0.0.0:8088
“superset.app:create_app()”
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
创建Celery Worker服务:
# vi /etc/systemd/system/superset-worker.service
[Unit]
Description=Superset Celery Worker
After=network.target redis.service
[Service]
Type=simple
User=superset
Group=superset
Environment=”SUPERSET_CONFIG_PATH=/fgeudb/superset/superset_config.py”
Environment=”PATH=/fgeudb/superset/venv/bin”
ExecStart=/fgeudb/superset/venv/bin/celery –app=superset.tasks.celery_app:app worker –loglevel=info
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
重载并启动服务:
# systemctl daemon-reload
# systemctl start superset
# systemctl start superset-worker
# systemctl enable superset
# systemctl enable superset-worker
5. Superset配置文件详解
核心配置参数
SECRET_KEY = ‘your_secret_key_here’ 密钥,必须修改
WTF_CSRF_ENABLED = True 启用CSRF保护
WTF_CSRF_TIME_LIMIT = None CSRF令牌有效期
SESSION_COOKIE_SECURE = False Cookie安全标志
SESSION_COOKIE_SAMESITE = ‘Lax’ Cookie SameSite属性
数据库配置:
SQLALCHEMY_DATABASE_URI = ‘mysql://…’ 元数据库连接
SQLALCHEMY_TRACK_MODIFICATIONS = False 禁用修改追踪
SQLALCHEMY_POOL_SIZE = 10 连接池大小
SQLALCHEMY_POOL_RECYCLE = 3600 连接回收时间
缓存配置:
CACHE_CONFIG = {…} 应用缓存配置
DATA_CACHE_CONFIG = {…} 数据缓存配置
FILTER_STATE_CACHE_CONFIG = {…} 过滤状态缓存
Celery配置:
CELERY_CONFIG = {…} Celery任务队列配置
Web服务器配置:
SUPERSET_WEBSERVER_PROTOCOL = ‘http’ 协议
SUPERSET_WEBSERVER_ADDRESS = ‘0.0.0.0’ 地址
SUPERSET_WEBSERVER_PORT = 8088 端口
ENABLE_PROXY_FIX = True 代理支持
认证配置
from flask_appbuilder.security.manager import AUTH_LDAP
AUTH_TYPE = AUTH_LDAP
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = “Gamma”
LDAP配置:
LDAP_SERVER = “ldap://ldap.fgedu.net.cn”
LDAP_PORT = 389
LDAP_USE_SSL = False
LDAP_SEARCH = “ou=users,dc=fgedu,dc=net,dc=cn”
LDAP_UID_FIELD = “uid”
LDAP_BIND_USER = “cn=admin,dc=fgedu,dc=net,dc=cn”
LDAP_BIND_PASSWORD = “admin_password”
OAuth认证配置:
from flask_appbuilder.security.manager import AUTH_OAUTH
AUTH_TYPE = AUTH_OAUTH
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = “Gamma”
OAUTH_PROVIDERS = [
{
‘name’: ‘github’,
‘icon’: ‘fa-github’,
‘remote_app’: {
‘client_id’: ‘your_client_id’,
‘client_secret’: ‘your_client_secret’,
‘api_base_url’: ‘https://api.github.com/’,
‘request_token_url’: None,
‘access_token_url’: ‘https://github.com/login/oauth/access_token’,
‘authorize_url’: ‘https://github.com/login/oauth/authorize’,
}
}
]
6. Superset仪表盘创建实战
步骤1:添加数据源
2. 点击”Settings” -> “Database Connections”
3. 点击”+ DATABASE”
4. 选择数据库类型:MySQL
5. 输入连接信息:
– Host: 192.168.1.51
– Port: 3306
– Database: fgedu_db
– Username: superset
– Password: superset123
6. 点击”Test Connection”测试连接
7. 点击”Connect”保存
SQLAlchemy URI格式:
mysql://superset:superset123@192.168.1.51:3306/fgedu_db
postgresql://user:pass@host:5432/db
oracle://user:pass@host:1521/sid
hive://hive@host:10000/default
presto://user@host:8080/catalog/schema
clickhouse://user:pass@host:8123/db
步骤2:创建数据集
2. 点击”+ DATASET”
3. 选择数据库:MySQL – fgedu_db
4. 选择表:sales_data
5. 点击”Add”创建数据集
配置数据集:
1. 点击数据集名称进入编辑
2. 配置列类型和语义
3. 设置时间列
4. 添加计算列
5. 配置指标
6. 点击”Save”保存
步骤3:创建图表
1. 点击”Charts” -> “+ CHART”
2. 选择数据集:sales_data
3. 选择可视化类型:Bar Chart
4. 配置图表:
– X轴:sales_date
– Y轴:SUM(sales_amount)
– 分组:product_category
5. 点击”Create Chart”创建
创建折线图:
1. 选择可视化类型:Line Chart
2. 配置图表:
– X轴:sales_date
– Y轴:SUM(sales_amount)
– 分组:region
3. 添加移动平均线
4. 点击”Create Chart”创建
创建饼图:
1. 选择可视化类型:Pie Chart
2. 配置图表:
– 维度:product_category
– 度量:SUM(sales_amount)
3. 点击”Create Chart”创建
创建地图:
1. 选择可视化类型:Map
2. 配置图表:
– 经度:longitude
– 纬度:latitude
– 大小:sales_amount
3. 点击”Create Chart”创建
步骤4:创建仪表盘
2. 输入仪表盘名称:销售数据分析
3. 从左侧拖拽图表到仪表盘
4. 调整图表大小和位置
5. 添加筛选器:
– 时间筛选器
– 地区筛选器
– 产品筛选器
6. 添加Markdown文本说明
7. 点击”Save”保存仪表盘
仪表盘配置:
– 设置自动刷新间隔
– 配置交叉筛选
– 设置默认筛选值
– 配置权限
7. 安装验证与测试
查看Superset状态
$ ps -ef | grep superset
输出示例如下:
superset 12345 1 5 10:10 ? 00:00:30 /fgeudb/superset/venv/bin/python …
superset 12346 1 2 10:10 ? 00:00:10 /fgeudb/superset/venv/bin/celery …
查看端口监听:
$ netstat -tlnp | grep 8088
输出示例如下:
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 12345/python
访问Web界面:
打开浏览器访问:http://192.168.1.51:8088
检查API:
$ curl http://192.168.1.51:8088/health
输出示例如下:
{“status”: “healthy”}
检查版本:
(venv) $ superset version
输出示例如下:
Superset 6.0.0
Python 3.10.12
Flask 3.0.0
功能测试
1. 登录Superset
2. 进入SQL Lab
3. 选择数据库
4. 执行测试查询:
SELECT 1 as test;
测试图表创建:
1. 创建测试数据集
2. 创建测试图表
3. 验证图表显示正确
测试仪表盘:
1. 创建测试仪表盘
2. 添加多个图表
3. 测试筛选功能
4. 验证数据刷新
测试缓存:
$ redis-cli
127.0.0.1:6379> keys superset_*
8. 常见问题与解决方案
问题1:数据库连接失败
解决方案:
1. 检查数据库服务状态:
# systemctl status mysql
2. 检查网络连通性:
$ telnet 192.168.1.51 3306
3. 检查用户权限:
mysql> SHOW GRANTS FOR ‘superset’@’%’;
4. 检查防火墙:
# firewall-cmd –add-port=3306/tcp –permanent
# firewall-cmd –reload
5. 安装数据库驱动:
(venv) $ pip install mysqlclient
问题2:图表加载缓慢
解决方案:
1. 启用数据缓存:
DATA_CACHE_CONFIG = {
‘CACHE_TYPE’: ‘RedisCache’,
‘CACHE_DEFAULT_TIMEOUT’: 86400,
}
2. 优化查询:
– 添加数据库索引
– 使用分区表
– 减少数据量
3. 增加Worker数量:
gunicorn -w 8 …
4. 启用异步查询:
配置Celery Worker
问题3:登录失败
解决方案:
1. 重置管理员密码:
(venv) $ superset fab reset-password
2. 检查认证配置:
确认AUTH_TYPE配置正确
3. 检查LDAP连接:
确认LDAP服务器可达
4. 查看日志:
$ tail -f /fgeudb/superset/logs/superset.log
Superset管理命令
(venv) $ superset db upgrade
创建管理员:
(venv) $ superset fab create-admin
重置密码:
(venv) $ superset fab reset-password
加载示例:
(venv) $ superset load_examples
初始化权限:
(venv) $ superset init
查看版本:
(venv) $ superset version
导出仪表盘:
(venv) $ superset export-dashboards
导入仪表盘:
(venv) $ superset import-dashboards -p dashboard.json
启动服务:
(venv) $ superset run -p 8088
启动Worker:
(venv) $ celery –app=superset.tasks.celery_app:app worker
1. 使用Superset 6.0.0最新稳定版本;2. 使用MySQL作为元数据库;3. 配置Redis缓存加速查询;4. 启用Celery处理异步任务;5. 配置HTTPS安全访问;6.
使用LDAP/OAuth统一认证;7. 定期备份元数据库;8. 配置资源限制防止过载;9. 监控服务运行状态;10. 定期更新版本修复漏洞。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
