apache superset是一款开源的企业级可视化BI分析工具,了解其功能可到官网查看,https://superset.apache.org/
本文章只介绍如何安装配置,以macbook为例:
1、安装Docker
推荐使用Docker Desktop,Docker Desktop 是 Docker 的桌面版本,它是一个易于安装和配置的桌面应用程序,允许用户在个人计算机上直接运行 Docker。
https://www.docker.com/products/docker-desktop/apache
选择适合本机的文件下载,并安装
通过终端命令检查Docker是否正确安装并运行:docker --version
2、通过docker拉取superset镜像
终端执行 docker pull apache/superset
如果报以下错误“https://registry-1.docker.io/v2/”,说明镜像仓库被禁止访问了,需要开VPN,开启后再次pull就可以了
3、运行镜像
3.1启动镜像
终端执行:
docker run --name superset -d -p 8088:8088 -e SUPERSET_SECRET_KEY=“oh-so-secret” apache/superset
3.2初始化superset数据库
终端执行:
docker exec -it superset superset fab create-admin \
--username admin \
--firstname John\
--lastname Admin \
--email admin@superset.com \
--password admin
docker exec -it superset superset db upgrade
docker exec -it superset superset load_examples
docker exec -it superset superset init
如果我们安装时不指定环境变量 SUPERSET_SECRET_KEY=“oh-so-secret” 在初始化时会出现报错“Refusing to start due to insecure SECRET_KEY”
4、docker desktop查看
可以看到superset容器在运行中,点击8088,会打开浏览器,http://localhost:8088/superset/welcome/,可以看到我们部署的superset页面
5、mysql数据库连接
mysql的host默认只支持127.0.0.1,不支持远程调用使用真实IP,可以使用改表法,使mysql支持远程调用
将root用户的host列,由localhost改为%
修改后,执行以下sql命令,刷新用户权限,立即生效
FLUSH PRIVILEGES;
然后就可以在superset使用远程ip地址连接mysql了
6、oracle数据库连接
superset默认不支持oracle,需要进入superset容器,安装oracle驱动和Oracle Instant Client
进入容器,终端执行: docker exec -it superset bash
6.1 安装驱动
容器是python环境,我们使用pip安装oracle的第三方驱动
在容器中执行 pip install cx_Oracle
驱动安装完成
6.2 安装Oracle Instant Client
浏览器进入官网下载文件https://www.oracle.com/database/technologies/instant-client/downloads.html
下载Basic(.rpm)
将下载的rpm文件放入容器
通过import功能选择宿主机中下载好的rpm文件,点击上传即可
终端进入容器
docker exec -it superset bash
#更新
apt-get update
#安装rpm(容器内执行)
apt-get install alien
# 将xxx.rpm 替换为下载的rpm文件名称,安装alien后,可以将rpm包转为deb包
alien -i xxx.rpm
大功告成,现在可以在superset的数据库列表中看到oracle了,安装驱动之前是看不到的,如果没有安装instant client,也能看到,但是会连接失败
连接格式:
oracle://user:passwork@host:port/dbname