onaio.superset
Superset
使用此角色来安装、配置和管理 Apache Superset。
默认情况下,此角色安装 Superset 版本 0.28.1。如果要安装其他版本,请设置 superset_version
变量。
角色变量
superset_python_executable
: 指定用于安装 Superset 的 Python 二进制文件。当前支持 python2.7
和 python3.6
。
superset_recreate_virtualenv
: 如果希望角色重新创建安装 Superset 的 Python 虚拟环境,请将其设置为 True
。
此角色会创建一个 superset 用户和数据库。要连接到数据库主机,请设置:
superset_postgres_db_host
: 数据库主机superset_postgres_login_user
: 用于创建 superset 数据库和用户的 postgres 用户superset_postgres_login_password
: 用于创建 superset 数据库和用户的 postgres 用户密码superset_postgres_db_name
: 要创建的 superset 数据库名称。这是 Superset 将使用的数据库。superset_postgres_db_user
: Superset postgres 用户名称(待创建)superset_postgres_db_pass
: Superset postgres 用户密码superset_pgpass_credentials
: 用于无密码连接的数据库凭据列表,格式为hostname:port:database:username:password
。
其他默认变量如下所示
# 在更改后是否重新启动 Superset;默认是 True,对于集群可能希望禁用
superset_perform_restart: True
可用语言
这让您可以控制可用的语言以及它们的标签。
supeset_languages:
- key: en
flag: us
name: 英语
- key: ja
flag: jp
name: 日语
默认情况下是所有可用语言的子集,请查看当前 Superset 版本的 /translations
文件夹,以查看其他可用语言。
认证后端
这让您可以配置 Superset 用户的认证后端。默认情况下
superset_auth_type: AUTH_DB
使用 Superset 的数据库来管理用户。目前,配置选项仅支持 AUTH_OAUTH
类型。
如果您选择了该认证类型,可以通过以下设置提供其他配置细节:
superset_oauth_providers:
- name:
icon:
token_key:
consumer_key:
consumer_secret:
base_url:
request_token_params:
request_token_url:
access_token_url:
authorize_url:
access_token_method:
access_token_params:
access_token_headers:
custom_redirect_url:
其中 request_token_params
(如果提供)是一个 JSON 对象。除 request_token_params
、consumer_key
和 consumer_secret
外,所有值都用引号包围。您通常会将 consumer_key
和 consumer_secret
设置为获取环境变量,例如 os.environ.get('OAUTH2_CLIENT_SECRET')
。
您可以通过以下设置环境变量:
superset_service_env_vars:
OAUTH2_CLIENT_SECRET: THE_SECRET
请注意,某些 OAuth 提供者,例如
onadata
,要求request_token_url
、access_token_url
和authorize_url
都以/
字符结尾。
白标签
此角色允许您对 Superset 进行白标签处理,您可以更改 Superset 应用名称和“品牌图片”,包括:
- 网站图标:
favicon.png
- 徽标:
superset.png
- 2倍大小徽标:
[email protected]
这些图片的文件大小和尺寸应尽量接近我们要替换的图片,该图片可以在 Superset 的 static/images
目录中找到。
通过将以下变量设置为 True 来开启白标签:
superset_white_label: True
更改应用名称
superset_app_name: '我的应用'
使用文件来更改品牌
通过设置以下变量可以使用文件。
superset_white_label_use_filepaths: True
superset_favicon_path: "/path-to-/favicon.png"
superset_logo_path: "/path-to-/superset.png"
superset_2x_logo_path: "/path-to-/[email protected]"
使用 base64 编码的图像来更改品牌
为了避免处理文件的麻烦,您可以通过设置以下变量来使用 base64 编码的图像。
superset_white_label_use_base64: True
superset_favicon_base64: "base64 编码的网站图标"
superset_logo_base64: "base64 编码的徽标"
superset_2x_logo_base64: "base64 编码的 2x 徽标"
资产上传
默认情况下,Superset 将启用以下扩展用于数据上传:
superset_allowed_extensions:
- csv
查看 Superset 的 config.py 中的 ALLOWED_EXTENSIONS
配置以获取支持的扩展文件列表。
用于图像和数据文件的上传目录(供数据导入扩展使用)设置为:
superset_img_upload_dir: "{{ superset_home }}/images/"
superset_upload_dir: "{{ superset_home }}/uploads/"
更改 JSON 限制
修改此值以增加 Superset 仪表板位置 JSON 数据限制。默认值设置为 2^16,在以下示例中,我们将其增加到 2^24。
superset_dashboard_position_data_limit: 16777216
Superset-patchup(酱油)
您可以选择通过执行以下操作来包含 Superset-patchup:
superset_use_ketchup: True
superset_ketchup_version: "v0.1.0"
Superset-patchup 通过添加更多功能来增强 Superset。您可以在这里阅读有关该项目的更多信息:Superset-patchup 文档
请注意,包含此警告的 ansible-superset 绑定版本仅与 superset-patchup v0.1.6 及以上版本兼容(由于初始化逻辑的更改)。
Superset 缓存
要在 Superset 中启用 缓存,提供符合 Flask-Cache 规范的 CACHE_CONFIG
和决定缓存预热周期的 CACHE_DEFAULT_TIMEOUT
。
superset_enable_cache: True
superset_cache_config: |
{
'CACHE_TYPE': 'redis',
'CACHE_KEY_PREFIX': 'superset_results',
'CACHE_REDIS_URL': 'redis://localhost:6379/0'
}
superset_cache_default_timeout: 60 * 60 * 24, # 1 天
要允许定期预热缓存,请配置 Superset 的 Celery 任务并设置首选的预热策略。启用 celerybeat 并按如下进行配置:
superset_enable_celerybeat: True
superset_celerybeat_schedule: |
{
'cache-warmup-hourly': {
'task': 'cache-warmup',
'schedule': crontab(minute=0, hour='*'), # 每小时
'kwargs': {
'strategy_name': 'top_n_dashboards',
'top_n': 5,
'since': '7天前',
},
},
}
测试
该项目附带一个 Vagrantfile,这是一个快速简便的方式来测试对角色的更改,使用 vagrant up
启动它。
请查看 vagrant 文档 以获取有关如何设置 Vagrant 的信息。
许可证
Apache 2