Superset配置

superset_config.py

通过config.py模块,Superset对外暴露上百个配置参数。在这个模块中,可以找到这些参数,和这些参数的默认值。以注释的方式,这个模块也可以作为一个丰富的文档。

为了配置自己的应用,需要创建自己的配置模块,用来重载改写这些参数的默认值。为了不改变核心模块,一般需要创建自己的配置模块(通常是一个名称为superset_config.py的文件)。添加这个文件到PYTHONPATH或创建环境变量SUPERSET_CONFIG_PATH并指定superset_config.py的完整路径。

例如,在Linux系统下部署Superset,superset_config.py文件在/app目录下,环境变量如下:

1
export SUPERSET_CONFIG_PATH=/app/superset_config.py

通常只拷贝核心模块superset/config.py中需要修改的参数及注释到自己的superset_config.py文件中。

superset/config.py中定义的所有参数和默认值都可以在自己的superset_config.py中修改。

因为superset_config.py作为一个Flask的配置模块,它也可以用来修改Flask本身的设置,包括Superset绑定的Flask扩展,如flask-wtf、flask-caching、flask-migrate、和flask-appbuilder。每个扩展都提供了复杂的配置项。Flask App Builder是Superset使用的Web框架,也提供了很多配置。可以查阅Flask App Builder文档获取如何配置的信息。

指定SECRET_KEY

初始化SECRET_KEY

Superset需要一个用户设置的SECRET_KEY值才可以启动。这个必要条件是在 2.1.0 版本的强制安全配置中添加的。在superset_config.py中添加一个强SECRET_KEY,如:

1
SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'

用以下命令生成一个强安全key值:

1
openssl rand -base64 42

使用强安全key值
这个key值被用来为会话的cookies签名,以及把存储在Superset应用元数据库中的敏感信息加密。自己的部署必须使用一个复杂、唯一的key值。

更换SECRET_KEY

如果想修改SECRET_KEY的值,添加已经已经存在的SECRET_KEY值到superset_config.py文件中的PREVIOUS_SECRET_KEY=中,并且赋新值给SECRET_KEY=。可以用下面的命令查看SECRET_KEY的当前值:

1
2
superset shell
from flask import current_app; print(current_app.config["SECRET_KEY"])

设置完后保存superset_config.py文件,并执行命令superset re-encrypt-secrets。

配置元数据库

Superset需要数据库来存储它管理的信息,如图表、面板及其他很多东西的定义。

默认的,Superset使用SQLite。SQLite是一个独立的、单个文件的数据库,提供简单且快速开始使用Superset的方式(不需要任何额外安装)。但是,由于安全、扩展性及数据完整性的原因,SQLite不推荐用作生产环境。在生产环境中使用支持的数据库非常重要。

Superset支持以下数据库引擎/版本:

数据库引擎 支持的版本
PostgreSQL 10.X, 11.X, 12.X, 13.X, 14.X, 15.X
MySQL 5.7, 8.X

使用下面的数据库驱动和连接设置:

数据库 PyPI包 连接串
PostgreSQL pip install psycopg2 postgresql://:@/
MySQL pip install mysqlclient mysql://:@/

要设置Superset的元数据库,在superset_config.py配置文件中设置SQLALCHEMY_DATABASE_URI配置项。