首页 > 其他分享 >Docker 部署数据可视化 Superset 3.0.0 深度汉化并配置元数据存储为 Postgres

Docker 部署数据可视化 Superset 3.0.0 深度汉化并配置元数据存储为 Postgres

时间:2023-12-16 20:00:43浏览次数:48  
标签:Postgres 数据库 flag 3.0 Docker superset config name

Superset 官方提供的 Docker 镜像在 3.0.0 版本下不能做到开箱即用,需要一些设置

拉取原始镜像
docker pull apache/superset:3.0.0
配置 superset_config.py
superset_config.py 会覆盖掉 config.py 里的变量,无需配置 config.py

创建一个 superset_config.py 文件添加以下内容

SECRET_KEY = 'superset'
SQLALCHEMY_DATABASE_URI = 'postgresql://superset:superset@postgres/superset'
WTF_CSRF_ENABLED = False
TALISMAN_ENABLED = False
BABEL_DEFAULT_LOCALE = "zh"
LANGUAGES = {
"zh": {"flag": "cn", "name": "简体中文"},
"en": {"flag": "us", "name": "English"},
}
SECRET_KEY:官方说明从2.1.0版本开始必须配置才能启动superset
SQLALCHEMY_DATABASE_URI:superset 的元数据库,默认使用sqlite,并存储在~/.superset/superset.db,也可以指定位置存储 'sqlite:////path/to/superset.db'

postgres格式:postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>

mysql格式:mysql://<UserName>:<DBPassword>@<Database Host>/<Database Name>

元数据库支持 sqlite,mysql,postgres 三种数据库

测试 postgres16 版本也支持
数据库密码不要包含@,测试过各种办法无效,官方文档里的方法虽能连接上数据库,但是后续python脚本引用变量时报错,获取不到,期待python大佬解答,config文件两个月前更新,3.0.0版本发布于两周前,文件还未更新

建议数据库使用 UTF-8 编码,避免乱码

WTF_CSRF_ENABLED = False:关于安全的选项,关闭
TALISMAN_ENABLED = False:关于安全的选项,关闭
不关闭安全选项会导致URL地址不匹配无法登陆superset,测试目前只有3.0.0版本需要
BABEL_DEFAULT_LOCALE:默认的superset语言,会影响标题栏
LANGUAGES:开启语言选择菜单,不会影响标题栏和部分选项,汉化不全,开启英文方便理解,也支持其他很多语言,name后的字符可以修改,是浏览器上菜单的显示项

LANGUAGES = {
"en": {"flag": "us", "name": "English"},
"es": {"flag": "es", "name": "Spanish"},
"it": {"flag": "it", "name": "Italian"},
"fr": {"flag": "fr", "name": "French"},
"zh": {"flag": "cn", "name": "Chinese"},
"ja": {"flag": "jp", "name": "Japanese"},
"de": {"flag": "de", "name": "German"},
"pt": {"flag": "pt", "name": "Portuguese"},
"pt_BR": {"flag": "br", "name": "Brazilian Portuguese"},
"ru": {"flag": "ru", "name": "Russian"},
"ko": {"flag": "kr", "name": "Korean"},
"sk": {"flag": "sk", "name": "Slovak"},
"sl": {"flag": "si", "name": "Slovenian"},
"nl": {"flag": "nl", "name": "Dutch"},
}
配置 Dockerfile
superset 官方 Docker 镜像不带除 sqlite 以外任何数据库驱动,以最小化镜像体积,配置postgres 为元数据库或者连接其他数据库需要为容器安装相应驱动

FROM apache/superset:3.0.0
COPY superset_config.py /app/pythonpath
USER root
RUN pip install psycopg2 pyhive &&\
pybabel compile -d /app/superset/translations; exit 0
USER superset
psycopg2:postgres数据库的python驱动
pyhive:hive的python驱动
pybabel:superset下已经有翻译的文件,只是没有编译,编译目录下的所有语言的.po文件对应的.mo文件,深度汉化
; exit 0:翻译文件有很多不对的地方导致报错,让 docker 无视报错继续构建

Superset 本身支持非常多的数据库连接,具体可以查看官方文档安装

https://superset.apache.org/docs/databases/installing-database-drivers/

构建镜像
docker build --no-cache -t superset-pg:3.0.0 .
--no-cache:不使用缓存。不指定的话dockerfile中命令无变化的地方将使用缓存,COPY里文件修改的部分不会应用到实际构建中

最后的 “.” 不能省略

配置 docker-compose.yml 启动 Superset
services:
superset:
image: superset-pg:3.0.0
container_name: superset
hostname: superset
restart: always
ports:
- 8080:8088
environment:
- TZ=Asia/Shanghai
# sqlite 存储元数据的数据持久化
#volumes:
# - ./superset:~/.superset
创建超级管理员
docker exec -it superset superset fab create-admin \
--username admin \
--firstname Superset \
--lastname Admin \
--email [email protected] \
--password admin
升级数据库(包含一部分初始化)
docker exec -it superset superset db upgrade
初始化 Superset
docker exec -it superset superset init
访问地址:http://ip:8080

一些汉化效果截图

标签:Postgres,数据库,flag,3.0,Docker,superset,config,name
From: https://www.cnblogs.com/exmyth/p/17907250.html

相关文章

  • Docker Compose: depends_on
    depends_ondepends_on expressesstartupandshutdowndependenciesbetweenservices.ShortsyntaxTheshortsyntaxvariantonlyspecifiesservicenamesofthedependencies.Servicedependenciescausethefollowingbehaviors:Composecreatesservicesind......
  • Linux服务器快速安装PostgreSQL15以及pgvector向量插件
    最近开始体验FastGPT或Dify等开源知识库问答系统,用他们试着开发调试一些小助手。这中间需要使用到PostgreSQL,就在自己服务器上进行了安装,特此记录下。环境说明:阿里云ECS,2核8G,X86架构,CentOS7.9操作系统。选择版本1.打开PostgreSQL官网下载页面,选择操作系统和数据库版本。我本......
  • Linux服务器快速安装PostgreSQL15以及pgvector向量插件
    最近开始体验FastGPT或Dify等开源知识库问答系统,用他们试着开发调试一些小助手。这中间需要使用到PostgreSQL,就在自己服务器上进行了安装,特此记录下。环境说明:阿里云ECS,2核8G,X86架构,CentOS7.9操作系统。选择版本1.打开PostgreSQL官网下载页面,选择操作系统和数据库版本。我本机......
  • Docker部署Redis
    1、拉取redis镜像dockerpullredis2、创建redis配置文件mkdir-p/mydata/redis/conftouch/mydata/redis/conf/redis.conf3、启动redis镜像dockerrun-p6379:6379--nameredis\-v/mydata/redis/data:/data\-v/mydata/redis/conf/redis.conf:/etc/redis/redis.......
  • Docker 安装
    1、在线安装1.1、卸载系统之前的dockersudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine1.2、安装Docker-ce安装必须的依赖sudoyuminstall-yyum-uti......
  • 性能测试复习准备——linux环境下安装nacos-server-2.3.0.tar.gz
    参考:https://blog.csdn.net/henrin/article/details/130898186 参考:https://blog.csdn.net/weixin_59663288/article/details/125958594?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-125958594-blog-130898186.235^v39^p......
  • Docker部署mysql5.7数据库
    1、拉取镜像dockerpullmysql:5.72、启动mysql5.7镜像dockerrun-p3306:3306--namemysql\-v/mydata/mysql/log:/var/log/mysql\-v/mydata/mysql/data:/var/lib/mysql\-v/mydata/mysql/conf:/etc/mysql\-eMYSQL_ROOT_PASSWORD=root\-dmysql:5.7参数说明......
  • 常用docker 配置2023
    https://docs.docker.com/engine/install/ubuntu/安装Docker引擎编辑配置文件/mysql/conf/my.cnf[mysql]#设置mysql客户端默认字符集default-character-set=UTF8MB4[mysqld]#设置3306端口port=3306#允许最大连接数max_connections=200#允许连接失败的次数max_connect_errors=10#......
  • 快速打印docker容器日志
    有的时候需要在服务器上查看日志信息。往往敲命令又太多,觉得麻烦,所以写了一个这个脚本。赋权之后,这个脚本里面丢到/usr/local/bin/下面。就可以在任何地方使用lgs,然后输入容器部分的名字。如果有多个输入序号就可以打印日志啦。#/bin/bashread-p"entername:"contain......
  • 基于Lighthouse安装docker
    1.前言 在此之前小编通过各种方式介绍过自己通过服务器搭建的一些玩法,也写过一些教程,但是那些教程,现在回头来看,都是有些杂乱了,统一性不强。我就准备重新整理一下之前写的文章,并且准备重新开一个专题来写自己折腾的内容,专题的名字就叫-原来服务器这么有用。也希望大家多多提意......