[Superset]修改FilterBox源码,实现下拉框别名name
一、背景
superset提高的filterbox 下拉框选择,不支持别名的形式;即value和name都是一个值,在配置filterbox的时候选择; 并没有提高别名的功能;要实现别名,只能自己二次开发了;
二、开发测试环境
conda 安装环境,因为之前已经有装好的环境;此处直接导出环境配置文件,然后安装;开发
# 环境源机器
conda activate superset
conda env export > environment_superset.yml
# 环境目标机器
# 如果需要修改安装目录和env name, 直接在配置文件里面修改
conda env create -f environment_superset.yml -u
conda activate superset
# 因为要改前端源码,需要编译,所以1. python使用源码安装; 2. 前端直接在源码修改,然后npm run dev
# 后端安装
# uninstall通过pip安装的superset
pip uninstall apache-superset
# github 下载源码,源码安装superset的python
conda activate superset
python3 setup.py install -f
# 前端安装
apt-get install npm
cd ~/superset_source_code/incubator-superset-0.36/superset-frontend
npm cache clean -f
npm install -g n
n stable
package.json中devDependencies对象添加 "@babel/compat-data": "7.9.0"
npm install
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
# 运行
npm run dev
superset run -h 0.0.0.0 -p 8089 --with-threads --reload --debugger
三、filterbox的整体流程
页面配置
- 页面配置filterbox的相关选项, 可是页面并不支持
- chart list =>编辑对应的filterbox chart => 修改 Parameters; 此处要对app设置别名name,在对应的配置中增加
"alias": "app_alias"
{
"adhoc_filters": [],
"datasource": "26__table",
"date_filter": true,
"filter_configs": [
{
"alias": "app_alias",
"asc": true,
"clearable": false,
"column": "app",
"defaultValue": "",
"key": "14WbEp8Y9",
"label": "app",
"multiple": true
},
{
"asc": true,
"clearable": true,
"column": "country",
"key": "qAxf5Xo1z",
"label": "country",
"multiple": true
},
{
"asc": true,
"clearable": true,
"column": "ad_manager",
"key": "6Gh4SY19_",
"label": "ad_manager"