简介
Superset是由Airbnb开发的一个数据可视化系统,现开源贡献给了Apache基金会。
支持各种主流数据源,丰富的图表形式,以及基础的用户、角色、权限等功能。
详细的介绍参考:https://superset.incubator.apache.org/index.html
安装
下载源码
Superset有多种安装方式,这里采用源码安装,以便于后边构建自己的版本。
git clone https://github.com/apache/incubator-superset.git
虚拟环境
# cd incubator-superset
# virtualenv venv
# . ./venv/bin/activate
这里使用了Python虚拟环境,也可以不用!
Superset是用Python写的,所以Python环境提前搞好,最好用2.7.x版本,因为Airbnb生产环境用的是这个版本,兼容性最好。
编译
(venv) # cd superset/assets
(venv) # yarn
(venv) # yarn run build
安装
(venv) # cd ../../
(venv) # python setup.py install
墙内pip直接安装太费劲,所以设置一下国内镜像,参考https://www.jianshu.com/p/1e5e12454006
初始化
# 给superset设置超级账户
(venv) # fabmanager create-admin --app superset
# 初始化数据库
(venv) # superset db upgrade
# 加载示例数据
(venv) # superset load_examples
# 初始化角色和权限
(venv) # superset init
# 启动
(venv) # superset runserver -d
访问http://localhost:8088/,看到如下界面
恭喜,安装成功!可以用刚才设置的账号登录了。
汉化
可以看到Superset自身支持国际化,右上角可以切换语言。
But,使用中文时,汉化的不是很完全,需要自己动手做些事情。
修改config.py源码
# Setup default language
BABEL_DEFAULT_LOCALE = 'zh'
# Your application default translation path
BABEL_DEFAULT_FOLDER = 'superset/translations'
# The allowed translation for you app
LANGUAGES = {
'en': {'flag': 'us', 'name': 'English'},
'zh': {'flag': 'cn', 'name': 'Chinese'},
}
这里设置默认语言为中文,保留了英文,其余的全干掉了。
提取messages.pot文件
(venv) # cd $SUPERSET_HOME
(venv) # pybabel extract -F superset/translations/babel.cfg -k _ -k __ -k t -k tn -k tct -o superset/translations/messages.pot .
更新messages.po文件
(venv) # pybabel update -i superset/translations/messages.pot -d superset/translations/ -l zh
翻译messages.po文件
(venv) # cd superset/translations/zh/LC_MESSAGES
(venv) # vim messages.po
修改所有msgstr的值,根据msgid翻译。这是个体力活,慢慢翻吧!
编译messages.po
(venv) # cd $SUPERSET_HOME
(venv) # pybabel compile -d translations
(venv) # po2json -d superset -f jed1.x translations/zh/LC_MESSAGES/messages.po translations/zh/LC_MESSAGES/messages.json
这里用到了po2json,需提前用npm安装好。
重新编译、安装、启动Superset
怎么搞?往上翻!
这次再刷新页面,清空缓存,大部分已经汉化了。
But,But,还是有些没有汉化到的地方。很遗憾,这部分大多是写在代码里了,好硬!只能一个个修改了。
当然,不在意的话,可以先凑活用了。
我的版本
https://github.com/libfox/incubator-superset
这个版本还在不断更新汉化内容。考虑到我们的用户都是国人,所以放弃国际化了,直接也在代码里硬硬的汉化!
大多是谷歌翻译直接搞,有需求的可以直接拿去用,有精力的可以一起帮着翻译下。