架构
本页面旨在为新管理员提供对 Superset 组件的理解。
组件
Superset 安装由以下组件组成:
- Superset 应用程序本身
- 元数据数据库
- 缓存层(可选,但某些功能必需)
- 工作进程与定时器(可选,但某些功能必需)
可选组件及其相关功能
上述可选组件是启用以下功能所必 需的:
如果通过 Kubernetes 或 Docker Compose 安装,所有这些组件都将被创建。
然而,通过 PyPI 安装仅创建应用程序本身。从 PyPI 安装的用户如果希望启用上述功能,需要自行配置缓存层、工作进程和定时器。目前,本文档未涵盖这些组件的 PyPI 安装配置。
以下是每个组件的进一步详细信息。
Superset 应用程序
这是核心应用程序。Superset 的工作原理如下:
- 用户访问图表或仪表板
- 这会触发对存储基础数据集的数据仓库的 SQL 查询
- 结果数据以数据可视化的形式呈现
- Superset 应用程序由 Python(Flask)后端应用程序(服务器)、API 层、通过 Webpack 构建的 React 前端以及应用程序正常运行所需的静态资源组成
元数据数据库
这是存储图表和仪表板定义、用户信息、日志等的地方。Superset 经过测试,可与 PostgreSQL 和 MySQL 数据库一起作为元数据数据库使用(不要与数据源(如数据仓库)混淆,数据源可以是 Snowflake、Redshift 等更多选项)。
某些安装方法,如我们的快速入门和 PyPI,默认配置为使用 SQLite 磁盘数据库。而在 Docker Compose 安装中,数据将存储在 PostgresQL 容器卷中。这两种情况都不推荐用于 Superset 的生产实例。
对于生产环境,建议使用正确配置、托管的独立数据库。无论使用哪种数据库,都应计划定期备份。
缓存层
缓存层主要有两个功能:
- 存储对数据仓库查询的结果,以便当图表被加载两次时,第二次从缓存中提取,从而加快应用程序速度并减少数据仓库的负载。
- 作为工作进程的消息代理,启用警报和报告、异步查询以及缩略图缓存功能。
大多数人使用 Redis 作为缓存,但 Superset 也支持其他选项。更多信息请参阅缓存文档。
工作进程和定时器
这是一个或多个执行任务(如运行异步查询或拍摄报告快照并发送电子邮件)的工作进程,以及一个作为调度器的“定时器”,告诉工作进程何时执行其任务。大多数安装使用 Celery 作为这些组件。
其他组件
其他组件可以集成到 Superset 中。了解额外配置的最佳位置是配置页面。例如,您可以设置负载均衡器或反向代理,在 Superset 应用程序前实现 HTTPS,或指定 Mapbox URL 以启用地理空间图表等。
Superset 在没有某些配置设置的情况下甚至无法启动,因此必须查看该页面。