部署superset
一、使用virtualenv创建虚拟环境
image.pngcd 到创建项目的路径
virtualenv project_name
二、配置虚拟环境
根据官网教程配置虚拟环境
Install superset
pip install superset
Create an admin user (you will be prompted to set username, first and last name before setting a password)
fabmanager create-admin --app superset
Initialize the database
superset db upgrade
Load some data to play with
superset load_examples
Create default roles and permissions
superset init
Start the web server on port 8088, use -p to bind to another port
superset runserver
To start a development web server, use the -d switch
superset runserver -d
这些过程按部就班即可。
三、配置元数据库(SQLite->Mysql)
superset后端使用sqlalchemy来配置数据库,只需要在config.py配置一个连接字符串即可。
以mysql为例:
SQLALCHEMY_DATABASE_URI = 'mysql://账号:密码@IP地址或者hostname/数据库名?charset=utf8'
目前来看还是不能连接到mysql数据库,因为程序并未从config.py读取配置信息,正在查找原因。
所以,需要进行本地配置,在项目的根目录新建一个superset_config.py的文件。
比如项目根目录叫/home/nzh/superset_project,superset_config.py就放到这个路径下。
superset_config.py内容如下:
#---------------------------------------------------------
# Superset specific config
#---------------------------------------------------------
ROW_LIMIT = 5000
SUPERSET_WORKERS = 4
SUPERSET_WEBSERVER_PORT = 8088
#---------------------------------------------------------
#---------------------------------------------------------
# Flask App Builder configuration
#---------------------------------------------------------
# Your App secret key
SECRET_KEY = '\2\1thisismyscretkey\1\2\e\y\y\h'
# The SQLAlchemy connection string to your database backend
# This connection defines the path to the database that stores your
# superset metadata (slices, connections, tables, dashboards, ...).
# Note that the connection information to connect to the datasources
# you want to explore are managed directly in the web UI
SQLALCHEMY_DATABASE_URI = 'mysql://账号:密码@ip或者主机地址/数据库名?charset=utf8'
# Flask-WTF flag for CSRF
CSRF_ENABLED = True
# Set this API key to enable Mapbox visualizations
MAPBOX_API_KEY = ''
在完成了config.py文件后,需要对系统的'PYTHONPATH'环境变量进行配置。
打开终端,输入export PYTHONPATH=/home/nzh/superset_project。这个路径也就是存放config.py的路径。
再输入,echo $PYTHONPATH。来查询PYTHONPATH是否成功保存。
image.png
但是这样做有个弊端,就是当这个终端窗口关闭后,这个环境变量就消失了,所以我们需要创建永久的环境变量。
打开终端,输入vim /etc/profile,profile是系统环境变量的配置文件。
在文件结尾处,加上红框中的内容,保存并退出
image.png
vim 操作提示
在使用vim命令进入文件后,按‘I’开启编辑模式,可修改文件。
在编辑结束后按一下‘ESC’,然后输入‘:wq’。意思是保存并退出。
然后再终端再输入一句,source /etc/profile。这句命令的作用是,立即执行profile文件,如果不输入这条命令,那么将在下次开启终端时才会查到环境变量。
运行superset
进入虚拟环境,然后输入superset runserver -p 端口号 来运行应用。
image.png
如果所示,superset_config.py文件已经被加载,元数据库成功切换到Mysql。
注意Linux系统的文件权限
错误的原因是,config.py文件我从本地上传到服务器的,但是并没有直接放入项目目录,而是/home/xx中xx这个目录(我的项目在/home/nzh中),在使用mv命令将文件移至项目目录后,程序仍不能找到改文件,进过和同事共同查找原因,发现是文件权限不同。
image.png
使用命令chmod 777 文件名,用来获取使用文件的权限。
image.png
此时superset_configt.py文件就可以被读出来了。