Superset 安装使用及问题的排查处理

Superset是由Airbnb(知名在线房屋短租公司)开源BI数据分析与可视化平台(曾用名Caravel、Panoramix),该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等,原来是用于支持Druid的可视化分析,后面发展为支持很多种关系数据库及大数据计算框架,如:mysql, oracle, Postgres,Presto,sqlite, Redshift,Impala, SparkSQL, Greenplum, MSSQL.

1.安装前提:windows环境+python (这里采用的是3.6.5版本)

安装环境必须要选择linux,python signal模块支持linux,但对windows并不友好,导致sql查询的时候无法显示。

linux环境安装前提条件:

yum install gcc libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel

yum install gcc-c++


#根据需要安装下面的包
pip install mysqlclient

pip install kylinpy


如果遇到问题:
ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-6qfdal_j/mysqlclient/

解决:yum install mysql-devel gcc gcc-devel python-devel
数据库 命令 连接方式
MySQL pip install mysqlclient mysql://
Postgres pip install psycopg2 postgresql+psycopg2://
Presto pip install pyhive presto://
Oracle pip install cx_Oracle oracle://
sqlite   sqlite://
Redshift pip install sqlalchemy-redshift redshift+psycopg2://
MSSQL pip install pymssql mssql://
Impala pip install impyla impala://
SparkSQL pip install pyhive jdbc+hive://
kylin pip install kylinpy kylin://name:password@localhost:7070/XX

 

2.安装虚拟化环境(virtualenv)

虚拟环境在linux下未测试,注意路径即可。

该虚拟环境相当于独立的一套Python开发环境,对本地原生的python环境不会产生影响。

pip install virtualenv

在本地磁盘创建一个专门用于该开发环境的目录,尽量不出现中文就好。

这里采用d:\pycharm\myproject

cmd命令行下操作
d:
md pycharm
cd pycharm
md myproject
cd myproject

初始化环境并激活

在虚拟环境目录cmd下执行

virtualenv env 
//等待初始化完成

env\Scripts\activate
//激活环境

deactivate
//退出环境

激活之后cmd命令行前会出现env字样,这样所有操作就在虚拟环境运行,不会影响本地。

安装vs2015   superset中依赖的库需要使用vs2015编译

安装sasl 通过 http://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl 下载对应的版本。比如咱们安装的python 是3.6版本,系统是64位,就下载sasl-0.2.1-cp36-cp36m-win_amd64.whl

pip install D:\Downloads\sasl-0.2.1-cp36-cp36m-win_amd64.whl

3.安装superset

pip install superset 




linux中安装如果出现安装某个包卡死情况,处理如下:
(该目录根据个人环境而异)
1.root用户下编辑文件/usr/local/lib/python3.6/site-packages/setuptools/package_index.py;
2.修改之后的结果如下:

    class PackageIndex(Environment):
        """A distribution index that scans web pages for download URLs"""

        def __init__(
                self, index_url="http://pypi.douban.com/simple", hosts=('*',),
                ca_bundle=None, verify_ssl=True, *args, **kw
                ):
            Environment.__init__(self,*args,**kw)
            index_url = "http://pypi.douban.com/simple"
            self.index_url = index_url + "/"[:not index_url.endswith('/')]

改完之后保存再次执行即可。

4.初始化设置superset

fabmanager create-admin --app superset
//创建管理员 



如果报错 Was unable to import superset Error: cannot import name '_maybe_box_datetimelike' ......是因为安装的pandas版本问题,将现版本pandas卸载重新安装pandas
    pip uninstall pandas
    pip install pandas==0.23.4
重新安装之后 重新执行命令创建管理员。

如果报错 Was unable to import superset Error: No module named 'pysqlite2'

解决:pip install pysqlite3
然后重新编译安装Python  即可         make && sudo make altinstall

进入到虚拟环境目录libs\site-packages\superset\bin下

python superset db upgrade  # 初始化数据库  




如果报错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.

将sqlalchemy版本降级到1.2     
pip uninstall SQLAlchemy              
pip install SQLAlchemy==1.2   
更改SQLAlchemy 版本后重新初始化数据库python superset db upgrad  
python superset load_examples  # 载入案例数据

python superset init  # 初始化角色和权限

python superset runserver -d  # 启动服务  端口号 8088,使用 -p 更改端口号

出现以下窗口即表示安装成功

Superset 安装使用及问题的排查处理_第1张图片

chrome浏览器输入localhost:8088即可用创建的管理员账户密码登录。

 

番外:

将superset看板内嵌到其他web页面:

修改配置文件(更改权限)

修改superset中的config.py配置文件,将PUBLIC_ROLE_LIKE_GAMMA改为True

避免iframe跨站无法访问

修改superset中的config.py配置文件,HTTP_HEADERS = {}

回到superset首页

角色权限找到public给于以下权限

Superset 安装使用及问题的排查处理_第2张图片

你可能感兴趣的:(Python,superset,python,可视化工具)