跳到主内容

架构

本页面旨在帮助新管理员了解 Superset 的组件。

组件

Superset 安装由以下组件构成

  1. Superset 应用程序本身
  2. 元数据数据库
  3. 缓存层(可选,但某些功能必需)
  4. 工作器和 Beat(可选,但某些功能必需)

可选组件和相关功能

上述可选组件是启用以下功能所必需的

如果您使用 Kubernetes 或 Docker Compose 安装,所有这些组件都将被创建。

然而,从 PyPI 安装仅创建应用程序本身。从 PyPI 安装的用户如果希望启用上述功能,将需要自行配置缓存层、工作器和 Beat。本文档目前未涵盖 PyPI 安装中这些组件的配置。

以下是每个组件的更多详细信息。

Superset 应用程序

这是核心应用程序。Superset 的运作方式如下

  • 用户访问图表或仪表盘
  • 这将触发对包含底层数据集的数据仓库的 SQL 查询
  • 结果数据以数据可视化形式呈现
  • Superset 应用程序由 Python (Flask) 后端应用程序(服务器)、API 层、通过 Webpack 构建的 React 前端以及应用程序运行所需的静态资源组成

元数据数据库

图表和仪表盘定义、用户信息、日志等都存储在此处。Superset 经测试可与 PostgreSQL 和 MySQL 数据库作为元数据数据库一起工作(请勿与数据仓库等数据源混淆,数据仓库可能包含更多选项,如 Snowflake、Redshift 等)。

一些安装方法,如我们的快速入门和 PyPI,默认配置为使用 SQLite 磁盘数据库。在 Docker Compose 安装中,数据将存储在 PostgreSQL 容器卷中。这两种情况都不推荐用于生产环境的 Superset 实例。

对于生产环境,建议使用配置正确、托管的独立数据库。无论使用何种数据库,都应计划定期备份。

缓存层

缓存层主要有两个功能

  • 存储对数据仓库的查询结果,以便当图表第二次加载时,它将从缓存中提取,从而加快应用程序速度并减少数据仓库的负载。
  • 作为工作器的消息代理,启用警报和报告、异步查询以及缩略图缓存功能。

大多数人使用 Redis 作为缓存,但 Superset 也支持其他选项。更多信息请参阅缓存文档

工作器和 Beat

这是一个或多个工作器,它们执行诸如运行异步查询或截取报告快照并发送电子邮件等任务,以及一个充当调度器并告知工作器何时执行任务的“Beat”。大多数安装使用 Celery 来实现这些组件。

其他组件

其他组件可以集成到 Superset 中。了解更多配置的最佳地点是配置页面。例如,您可以设置负载均衡器或反向代理,以在 Superset 应用程序前实现 HTTPS,或者指定 Mapbox URL 以启用地理空间图表等。

Superset 在未建立某些配置设置的情况下甚至无法启动,因此务必查看该页面。