数据统计可视化
商业智能分析工具Superset
之前我们在用ClickHouse做数据统计分析,在这里过程中接触到了SuperSet这个工具。最开始试图在本地用Docker部署一套系统,后来因为环境问题,就直接用Python环境部署了一套 真实的环境, 而不是直接使用镜像。
Superset的安装相对比较程序化。
前期运维的一个是正确的安装软件依赖包,另一个是正确启动服务相关命令。
1.安装Mysql库。
sudo yum install mysql-devel
pip install mysqlclient
pip install mysql
2.IPtable开放80端口
sudo /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo service iptatbles save
3.安装Superset使用的数据库的依赖
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://
4.启动Superset服务
#安装Superset
pip install superset
#创建管理员用户名和密码
fabmanager create-admin --app superset
#初始化Superset
superset db upgrade
#装载初始化样例数据
superset load_examples
#创建默认角色和权限
superset init
#启动Superset
superset runserver
5.Docker方式安装Superset
# 安装Docker
pip uninstall docker-compose
pip install docker-compose==1.18.0
# 安装镜像
docker pull amancevice/caravel
docker run --name caravel -d -p 8088:8088 amancevice/caravel
docker exec -it caravel demo
docker exec -it ac94ec4d9469 demo
6.管理yum工具包
yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce-17.06.0.ce-1.el7.centos.x86_64 -y
apt-get install python-dev libsasl2-dev gcc
yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64
7.安装Python依赖包
yum install python-setuptools
yum install python2-pip
pip install --upgrade pip
pip install setuptools-scm
sudo pip install --upgrade setuptools
SQLAlchemy-1.2.8.tar.gz
yum install python-dev
install libgsasl-devel
pip install pyhs2
pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive
8.系统工具包
yum install psmisc
未完待续…
Docker安装
Supersete有一个问题是依赖包复杂的问题, 这各情况Docker解放了大家,可以直接Pull下镜像使用,我们来还原一个基本Superset的Docker方式的安装过程。
创建本地的配置文件和数据库
mkdir /data/docker/volumes/superset/conf -p
mkdir /data/docker/volumes/superset/data -p
拉取superset镜像
docker pull amancevice/superset:0.18.5
运行镜像
docker run -p 8088:8088 -v /data/docker/volumes/superset/conf:/etc/superset -v /data/docker/volumes/superset/data:/data –name superset -d amancevice/superset:0.18.5
配置本地配置文件
vi /data/docker/volumes/superset/conf/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 = 'sqlite:////data/superset.db'
# Flask-WTF flag for CSRF
WTF_CSRF_ENABLED = True
SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_COMMIT_TEARDOWN = True
# Set this API key to enable Mapbox visualizations
MAPBOX_API_KEY = ''
SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_COMMIT_TEARDOWN = True
启动、关闭、重启服务
docker restart superset docker stop superset docker start superset
以root权限进入容器内部
docker exec -u 0 -it superset /bin/bash
创建超级用户账号
docker exec -it superset fabmanager create-admin –-app superset
初始化数据库
docker exec -it a0279f48fdc4 superset db upgrade