Superset数据分析平台搭建

背景

近期遇到数据可视化编辑平台,有介绍superset,此处记录一下搭建的方式。其本身支持多平台、多方式的搭建,但因为我在使用docker进行搭建的时候,总是被提示报错,导致无法运行,因此后来改用python虚拟环境搭建,本文记录也是如此。

可能自己缺乏相关产品的使用经验和需求,导致并不觉得该产品很好用,因此此处记录的搭建方式倒是其次,搭建过程中遇到的一些知识点却让自己有所学习。

搭建方式参考官方:http://superset.apache.org/installation.html

搭建方式

  1. 安装依赖环境

    1
    2
    # 官方说要安装以下内容,但是我安装的时候提示多个环境不存在了,后来一气之下,直接跳过了这步,也正常搭建成功
    sudo apt-get install build-essential libssl-dev libffi-dev python3.6-dev python-pip libsasl2-dev libldap2-dev
  2. 安装Python虚拟环境,原因有两个:

    • 建议在虚拟环境中安装Superset,因为有些包可能与最新的包有冲突。
    • 在后面进行初始化的时候,如果不是在虚拟环境中,它会提示”superset: command not found”
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 此处与官方文档不一样
    sudo apt-get install python3-venv

    # 创建并激活Virtualenv
    # 一旦激活Virtualenv,则所做的一切都将限制在virtualenv内部
    python3 -m venv venv
    . venv/bin/activate

    # windows 上激活不同
    venv\Scripts\activate

    # 退出virtualenv
    deactivate
  3. 安装pymysql,由于superset默认使用的是sqllite数据库,但是我们用的mysql更多,所以需要安装该包

    1
    2
    # 在Virtualenv中进行安装
    sudo pip3 install pymysql
  4. 安装superset,并且初始化

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # 以下均在虚拟环境中进行安装的
    # Install superset
    pip3 install apache-superset

    # 初始化数据库
    superset db upgrade

    # 创建默认管理员,执行的时候会让填写用户名、密码、邮箱信息,这个就是管理员登录的信息
    export FLASK_APP=superset
    superset fab create-admin

    # 这个似乎是加载一些测试数据,不过我执行的时候似乎因为链接问题导致超时,不过并不影响,可以直接跳过
    superset load_examples

    # superset初始化
    superset init

    # 启动seperset服务,并且指定端口和IP,ip根据自己的机器定,如果不设定则默认为localhost
    superset run -h 192.168.0.101 -p 8088 --with-threads --reload --debugger
  5. 弄完以后,就直接打开浏览器,访问:192.168.0.101:8088,看能够正常登录和查看内容

  6. 配置mysql数据库

    1
    2
    # 首先在数据库中创建一个用于superset的数据库
    create database superset charset=utf8;
  7. 然后进入superset前台,依次点击【Sources】–>【databases】–>右上角【+】,填写内容如下:

    参数 内容
    Databases mysql中用于superset的数据库名称
    SQLAlchemy URI 链接数据库的方式,如:mysql+pymysql://[用户]:[密码]@localhost/[superset数据库]?charset=utf8
    Allow Csv Upload 允许csv文件上传,勾选上
    Allow CREATE TABLE AS 允许创建数据表,勾选上
    Allow CREATE VIEW AS 允许创建视图,勾选上
    Allow DML 允许增删改,勾选上

知识点

  1. 在国内,用docker在拉取images时,其速度可以用感人来形容,好在国内有镜像源,修改方式如下:

    1
    2
    3
    4
    5
    6
    7
    # 修改/etc/docker/daemon.json文件,如无该文件,则创建一个即可,将其内容修改为如下:
    {
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }

    # 上述文件修改以后执行命令
    sudo systemctl daemon-reload
  2. 在国内,clone github上的项目到本地时,其速度之慢简直难以形容,好在国内有gitee,可以用其间接拖包,方式如下:

    • 登录gitee后,点击右上角【+】,选择【新建项目】
    • 在新页面,下拉到页面最底部,勾选上【导入已有项目】
    • 然后将github上对应项目的链接copy到【导入已有项目】下方的输入框中,然后点击创建
    • 等gitee拉取完成以后,本地就直接git clone 【gitee上对应的项目链接】
  3. 在国内,通过pip安装官方包的方式,着实慢,好在国内有各种镜像源,修改方式如下:

    • 在用户home目录新建【.pip】文件夹,然后在其中创建【pip.conf】文件

      1
      vim pip.conf
    • 修改【pip.conf】文件的内容如下,镜像源的链接根据自己的需要来定:

      1
      2
      3
      4
      [global]
      index-url = https://mirrors.aliyun.com/pypi/simple/
      [install]
      trusted-host=mirrors.aliyun.com