Superset 数据分析平台搭建
一、实验介绍
1.1 实验内容
Superset 是 Airbnb 开源的数据分析与可视化平台,同时也是由 Python 语言构建的轻量级 BI 系统。Superset 可实现对 TB 量级数据进行处理,兼容常见的数十种关系或非关系型数据库,并在内部实现 SQL 编辑查询等操作。除此之外,基于 Web 服务的 Superset 可实现多用户协使用,并可针对不同角色进行权限管理。Superset 如今已归属于 Apache 孵化项目,并被 Yahoo,豆瓣等国内外知名公司使用。
1.2 实验知识点
-
Superset 平台搭建
1.3 实验环境
-
python2.7
-
Xfce 终端
1.4 适合人群
本课程难度为一般,属于初级级别课程,适合具有 Python 基础,并对数据分析与可视化感兴趣的用户。
二、Superset 平台搭建
Superset 基于 Web 分析与可视化平台,目前支持 Python 2.7 和 Python 3.4 版本。官方介绍称,暂时未有支持其他版本的计划。
下面,介绍 Superset 如果安装配置,文档基于实验楼在线环境。如果你选择在本地安装,可能会因为环境不同出现一些问题,但大部分时候都可以顺利进行。
2.1 安装依赖
首先,需要安装依赖。打开实验楼在线环境 终端 ,键入:
sudo apt-get update
sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev
如果你在本地 Fedora 或 RHEL-derivatives 安装,键入:
sudo yum upgrade python-setuptools
sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
如果你在本地 macOS 上安装,键入:
brew install pkg-config libffi openssl python
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography==1.7.2
2.2 使用 virtualenv 虚拟环境
Superset 推荐我们新建一个 virtualenv
虚拟环境来安装 Superset,这样也可以避免出现一些冲突或依赖问题。
首先,我们需要安装 virtualenv:
sudo pip install virtualenv
然后创建和激活一个叫 superset 的新环境,这里我们通过参数指定版本已匹配 Superset 支持的 python 环境:
virtualenv superset --python=python2.7
source superset/bin/activate
此时,我们看到终端命令前变成了 superset 开头:
如果你在线下使用 Anaconda 或者 conda,创建虚拟环境的操作为:
conda create -n superset python=2.7
activate superset
2.3 安装和配置 Superset
接下来,我们使用 pip
来安装 superset。首先升级 pip
和 setuptools
到最新版本。
sudo pip install --upgrade setuptools pip
然后安装 superset,由于依赖包非常多,这个过程需要持续几分钟:
sudo pip install superset
安装完成之后,需要先创建 superset 管理员用户。
fabmanager create-admin --app superset
键入命令后,会提示你依次输入用户名和密码,创建用户需要稍等片刻。
创建好用户之后,需要初始化数据库:
sudo superset db upgrade
数据库初始化完成之后,我们可以载入一些样本数据到数据库中(样本数据来源于世界卫生组织,由于在线环境网络原因,样本数据很可能下载失败。):
sudo superset load_examples
然后,创建默认角色和许可:
sudo superset init
最后,运行 superset 服务。superset 的 Web 服务默认端口为 8088
,你可以通过 -d
参数指定端口。
superset runserver
然后,我们打开浏览器。输入: http://localhost:8088
或 http://0.0.0.0:8088
就可以看到 superset 的登陆界面了。
2.4 Superset 中文化
启动 Superset 之后,我们可以看到默认是英文界面。为了更都符合更多人的使用习惯,我们可以将其中文化。
实际上,Superset 官方提供了中文化,只是没有激活,我们需要到配置文件中处理一下。
首先,我们打开 Superset 安装目录。如果你刚刚是按照上述流程通过实验楼在线环境操作,那么 superset 的安装目录位置应该如下所示。
# 切换到安装目录 cd /usr/local/lib/python2.7/dist-packages/superset # 使用 vim 编辑配置文件 sudo vim config.py
此时,我们需要找到如图所示的两行内容。将 BABEL_DEFAULT_LOCALE
从 en
改为 zh
。然后取消掉下方对中文语言的注释项。
保存配置文件并退出。这还没有结束,我们需要下载官方语言文件。
# 新建语言文档目录 sudo mkdir -p translations/zh/LC_MESSAGES # 切换到该目录 cd translations/zh/LC_MESSAGES # 获取 2 个中文语言文件 sudo wget http://labfile.oss.aliyuncs.com/courses/919/messages.po sudo wget http://labfile.oss.aliyuncs.com/courses/919/messages.mo
然后,我们关闭终端,重新运行 superset,不要忘记重新激活虚拟环境:
# 激活虚拟环境 source superset/bin/activate # 运行 superset superset runserver
我们再次打开 web 页面,现在应该看到的是中文界面了。
使用先前创建的管理员账号登陆,Superset 环境就正式搭建完成了。
2.4 示例数据缺失处理
如果你登陆到 Superset 之后,看板没有示例数据内容,说明之前的数据下载失败。你可以通过下载实验楼服务器上的完整数据库来继续使用。在这之前,请先关闭终端。
# 切换到 superset 数据库文件夹 cd ~/.superset # 删除原数据库 rm superset.db #下载新数据库 wget http://labfile.oss.aliyuncs.com/courses/919/superset.db
由于我们替换数据库,重新启动之后,管理员账户会发生改变,现在的用户名为: shiyanlou
,密码为 123456
。
登陆之后,你应该能看到看板数据了。 由于数据库链接尚未修改,看板是无法成功加载数据的 。我们需要通过顶部数据库菜单进入修改:
然后将原数据库链接 sqlite:root/.superset/superset.db
修改为实验楼链接 sqlite:home/shiyanlou/.superset/superset.db
。
修改之后,点击 Test Connection
测试链接,如果出现 Seems OK!
,即代表链接正常。
保存之后,重新打开看板,应该就生效了。
三、实验总结
本章节主要演示了如果一步一步完成 Superset 的安装。总体来讲,Superset 安装过程中不存在大坑,只要安装步骤执行,基本都能顺利完成。当然,如果你熟悉 Docker,也是可以通过拉取官方认可的社区镜像一步完成安装。
# 拉取 Superset 社区 Docker 镜像 docker pull amancevice/superset