Apache Superset config.py 开启

问题描述 投票:0回答:6

我正在尝试自定义我的 Apache Superset。我对终端不太熟悉。

文档上写道: “要配置您的应用程序,您需要创建一个文件(模块)superset_config.py并确保它位于您的 PYTHONPATH 中。以下是您可以在该配置模块中复制/粘贴的一些参数:”

假设我想将 ROW_LIMIT 减少到 5000,并且我的 Superset 安装在名为“ExperimentSuperset”的 Anaconda 环境上。

有人可以向我解释一下我必须做什么才能达到这个结果吗?

macos terminal anaconda apache-superset pythonpath
6个回答
11
投票

pythonpath主要定义为:

  1. 执行目录
  2. pythonpath环境变量
  3. 模块的默认安装目录

(也可以使用 sys.path 和 pth 文件进行增强 - 它定义目录并且其本身需要位于 python 中)。

根据我的经验,pythonpath 变量由大多数超集应用程序设置,并且可以通过在控制台中调用

set
echo $pythonpath
来评估最简单的方法。您还可以使用 python 从终端打印出 pythonpath:
python -c "import sys; print('\n'.join(sys.path))"

Superset 在路径中查找名为

superset_config.py
的文件。设置环境变量时即使不在路径中也可以直接指向该文件
SUPERSET_CONFIG_PATH=/your/path/to/superset_config.py

在源代码中有一个名为

config.py
的文件,其中包含所有设置。所有设置都将被从
superset_config.py
加载的设置覆盖。因此,您只需要定义超集应用程序的细节即可。

所以你的具体步骤是:

  1. 创建一个新的空的
    superset_config.py
  2. ROW_LIMIT = 5000
    添加到文件
  3. 确保它在Python路径中或设置环境变量
    SUPERSET_CONFIG_PATH

Superset 然后将使用配置文件并读取您的设置。注意,配置是一个功能齐全的 python 文件,因此您可以添加方法等。在超集示例中,有一个有用的方法从环境变量中提取参数。这在使用例如码头工人。


5
投票

config.py
结束时,您会看到它尝试从
superset_config.py
环境变量加载
SUPERSET_CONFIG_PATH
,因此您需要做的就是:

  1. 创建文件
  2. 在那里设置您想要的值(ROW_LIMIT = 5000)
  3. 运行此命令:
export SUPERSET_CONFIG_PATH=/path/to/your/superset_config.py

  1. 重新启动您的超级组以进行更改

来源:https://github.com/apache/superset/issues/2117#issuecomment-277666183


1
投票

配置您的 superset_config.py 以覆盖在 config.py 文件中声明的 superset 的默认参数 -

superset_config.py:

ROW_LIMIT=5000

如果您使用 docker run 命令运行 docker 镜像,那么它可能无法工作。因为 superset_config.py 仅当 os.environ 中有 SUPERSET_CONFIG_PATH 时才执行。您需要在 Dockerfile 中添加 SUPERSET_CONFIG_PATH,以便从 os.environ 中获取它。

要实现此目的,您需要像这样配置 Dockerfile,添加 SUPERSET_CONFIG_PATH 和 ENV:

Dockerfile:

ENV LANG=C.UTF-8 \
    LC_ALL=C.UTF-8 \
    FLASK_ENV=production \
    SUPERSET_ENV=production \
    SUPERSET_LOAD_EXAMPLES=yes \
    CYPRESS_CONFIG=false \
    MAPBOX_API_KEY='XXXXXX' \
    FLASK_APP="superset.app:create_app()" \
    PYTHONPATH="/app/pythonpath:/app/docker/pythonpath_prod" \
    SUPERSET_HOME="/app/superset_home" \
    SUPERSET_CONFIG_PATH="/path/to/your/superset_config.py" \
    SUPERSET_PORT=8088 

例如,我的文件位于 /app/docker/superset_config.py 那么这将是我的 SUPERSET_CONFIG_PATH

现在使用 Dockerfile 构建新映像。

您可以通过此命令检查您的图像Env配置。

docker inspect <image-name:tag>

如有任何疑问请评论。谢谢。


0
投票

一个简单的方法是:

当前目录下有自定义的

superset_config.py
文件。

示例

superset_config.py

ROW_LIMIT = 5000
SUPERSET_WEBSERVER_PORT = 9777
SQLALCHEMY_DATABASE_URI = 'sqlite:///superset.sqlite3'

我们不需要导出环境变量

SUPERSET_CONFIG_PATH
。相反,我们可以使用修改后的
PYTHONPATH

来调用我们的预期操作

例如:

PYTHONPATH=.:$PYTHONPATH superset db upgrade

# or
PYTHONPATH=.:$PYTHONPATH python main.py
 

0
投票

这个问题是前一段时间提出的,但我最近发现自己也遇到了同样的情况,如果可以帮助别人,我想提供我的意见。截至当前日期,为了能够编辑配置,您必须创建一个名为“superset_config.py”的文件并将其放置在 pythonpath 中。 apache/superset 的默认 python 路径之一是“/app/pythonpath”。

在 docker run 命令中,使用 -v 选项指定本地主机上链接到容器的卷,例如

docker run --network <your_network_name> --detach --name <name_of_your_container> -v /<path_to_local_volume>:/app/pythonpath/ -e  "SUPERSET_SECRET_KEY=<YOUR_SECRET_KEY> --restart=unless-stopped -p 8088:8088 apache/superset:<version_tag>
。运行中声明的其他选项不是强制性的,仅取决于您是否要声明这些值。附言。您可以通过设置环境变量选项 -e
-e PYTHONPATH=</path/to/your/python/modules>
来指定其他 PYTHONPATH。


-2
投票

如果按照“从头开始安装”中的说明完成安装,则

config.py
将位于类似于以下内容的位置:
/root/venv/lib/python3.6/site-packages/superset/config.py

© www.soinside.com 2019 - 2024. All rights reserved.