笔记 · 2022-03-16 0

开源BI:Superset导出CSV乱码处理及个性化更改

Superset 安装后有部分位置需要进行更改否则影响使用,

也有一些优化项可以更改,纪录一下防止后期遗忘。

安装路径

/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/

一、导出CSV格式的文件乱码

1、文件:superset/config.py
CSV_EXPORT = {
    "encoding": "gbk"
}
//此处次uff-8性为gbk

2、文件:superset/views/core.py
csv_data = csv.df_to_escaped_csv(df, index=False, **config["CSV_EXPORT"])
        quoted_csv_name = parse.quote(query.name)
        response = CsvResponse(
            csv_data, headers=generate_download_headers("csv", quoted_csv_name)
        )
        event_info = 
// 将把原来的Response替换成CsvResponse,本次未更改,可能是新版本原因

二、标题更改

1、文件:config.py
APP_NAME = 'Superset'
//更改为需要的值,例如'Moumou BI'

2、文件:core.py
    return self.render_template(
            "superset/basic.html",
            title=_("%(user)s's profile", user=username).__str__(),
            entry="profile",
            bootstrap_data=json.dumps(
                payload, default=utils.pessimistic_json_iso_dttm_ser
            ),
        )
//更改为需要的值,例"Moumou BI"

三、SQL默认查询时间更改(易超时)

文件:config.py
# Timeout duration for SQL Lab synchronous queries
SQLLAB_TIMEOUT = int(timedelta(seconds=30).total_seconds())
//更改30为自己需要的时间,例如300

四、图片更改

路径:site-packages/superset/static/assets/images
按需替换图片即可

五、相关命令

停止:
ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9
启动:
conda activate superset ; gunicorn --workers 5 --timeout 500 --bind 0.0.0.0:8088 "superset.app:create_app()" --daemon
//常用

查看状态:
ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | wc -l 
//使用不多

六、文件整理

#!/bin/bash

superset_status(){
    result=`ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | wc -l`
    if [[ $result -eq 0 ]]; then
        return 0
    else
        return 1
    fi
}
superset_start(){
    source ~/.bashrc
        superset_status >/dev/null 2>&1
        if [[ $? -eq 0 ]]; then
            conda activate superset ; gunicorn --workers 5 --timeout 500 --bind 0.0.0.0:8088 "superset.app:create_app()" --daemon
        else
            echo "superset正在运行"
        fi

}

superset_stop(){
    superset_status >/dev/null 2>&1
    if [[ $? -eq 0 ]]; then
        echo "superset未在运行"
    else
        ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9
    fi
}


case $1 in
    start )
        echo "启动Superset"
        superset_start
    ;;
    stop )
        echo "停止Superset"
        superset_stop
    ;;
    restart )
        echo "重启Superset"
        superset_stop
        superset_start
    ;;
    status )
        superset_status >/dev/null 2>&1
        if [[ $? -eq 0 ]]; then
            echo "superset未在运行"
        else
            echo "superset正在运行"
        fi
esac