轻量级BI工具Superset的搭建

参考来源1:https://www.jianshu.com/p/b02fcea7eb5b

参考来源2:https://www.cnblogs.com/luweilehei/p/10

系统环境:Windows 10
Python:3.7.4

 

 

0 Superset 简介

  Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。
  Superset 的前端主要用到了 React 和 NVD3/D3,而后端则基于 Python 的 Flask 框架和 PandasSQLAlchemy 等依赖库,主要提供了这几方面的功能:

  • 集成数据查询功能,支持多种数据库,包括 MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等,并深度支持 Druid
  • 通过 NVD3/D3 预定义了多种可视化图表,满足大部分的数据展示功能。如果还有其他需求,也可以自开发更多的图表类型,或者嵌入其他的 JavaScript 图表库(如 HighCharts、ECharts)。
  • 提供细粒度安全模型,可以在功能层面和数据层面进行访问控制。支持多种鉴权方式(如数据库、OpenID、LDAP、OAuth、REMOTE_USER 等)。

  Superset 的搭建与使用非常简单,只需要一些 Python 基础,下面先从创建虚拟环境开始。

1 创建虚拟环境

  Superset 的依赖包较多,为了避免冲突,需要先搭建虚拟环境,再进行安装,这里推荐使用 Anaconda 自带的 conda 工具创建虚拟环境:

conda create -n superset python=3.6

  创建虚拟环境成功后,启动虚拟环境:

activate superset

2 安装Superset

  使用豆瓣源安装 Superset:

pip install superset -i https://pypi.douban.com/simple 

   安装的时候可能会遇到下面的情况:

解决办法:到https://www.lfd.uci.edu/~gohlke/pythonlibs里搜索红色框的whl文件(如果是别的,就搜索对应的),下载后直接通过 pip install安装即可,如下图:

安装完成后,再继续安装执行安装:pip install superset -i https://pypi.douban.com/simple

如果出现下面这个错误,可以先忽略(我后面使用暂时没发现有异常)

3 安装waitress

  为了后面可以正常启动服务,建议要安装一下 waitress:

pip install waitress

接着找到 superset(参考路径C:\Users\zhaosai\.virtualenvs\supersetup-i-tusfW0\Lib\site-packages\superset)下的cil.py 的 debug_run() 函数:

def debug_run(app, port, use_reloader):

    app.run(
        host='0.0.0.0',
        port=int(port),
        threaded=True,
        debug=True,
        use_reloader=use_reloader)

  将其改写成并保存:

def debug_run(app, port):
    from waitress import serve #使用 waitress 解决 gunicorn 不支持 windows 问题

    return serve(
        app,
        host='0.0.0.0',
        port=int(port))

  

 

4 初始化

  在虚拟环境里执行命令

(1)初始化数据

  创建命令

#1.创建管理员账号(执行后按提示输入账号密码邮箱等,输入完后,可能会报错,详见代码末尾说明)
fabmanager create-admin --app superset

#2.cd到superset 根目录,参考路径 C:\Users\zhaosai\.virtualenvs\supersetup-i-tusfW0\Lib\site-packages\superset\bin

#初始化数据库
python superset db upgrade

#初始化角色权限
python superset init

#加载示例数据,加载superset自带数据库文件数据,不需要也可不操作
python superset load_examples

#启动superset服务 默认端口8088, -p 端口号,可指定运行在某端口
python superset runserver -d -p 8079

  如果创建管理员账号提交报错 Was unable to import superset Error: cannot import name '_maybe_box_datetimelike' ,那则是因为pandas版本的原因,我们通过pip命令卸载掉较新的版本安装正确的版本就好,如下:

#卸载
pip uninstall pandas
#安装
pip install pandas==0.23.4

上面的命令执行完成后,需要重新执行创建管理员账号的命令。

如果初始化数据库时报错pkg_resources.ContextualVersionConflict: (Flask 0.12.4 (f:\programdata\anaconda3\envs\superset\lib\site-packages), Requirement.parse('Flask>=1.0'), {'Flask-JWT-Extended'})同样卸载

#卸载
pip uninstall Flask
#安装1.2版本
pip install Flask==1.0

如果初始化数据库报错 sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity. 同样卸载

#卸载
pip uninstall SQLAlchemy
#安装1.2版本
pip install SQLAlchemy==1.2

  浏览器输入地址:http://locahost:8079即可访问

(2)个性化设置

1)汉化: 进入登陆页面后,右上角可以选择语言,但是选择中文后,汉化程度也是一般。

  这里选择中文,并不会保存下来,若要设置默认为中文,可以在 C:\Users\zhaosai\.virtualenvs\supersetup-i-tusfW0\Lib\site-packages\superset\config.py  下BABEL_DEFAULT_LOCALE = 'en' 修改为BABEL_DEFAULT_LOCALE = 'zh'

2)使用mysql数据源:详见下一篇“Superset使用mysql数据源”

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值