Superset是一个BI工具,关于它的前世今生以及具体功能说明不在本文讨论之列,本文旨在阐述如何在本地基于Docker方式快速安装一套带有完整演示数据的Superset开发环境,便于对Superset进行学习。
安装Superset
如下安装基于amancevice/docker-superset仓库进行,具体步骤如下:
$ cd ~
$ git clone https://github.com/amancevice/superset.git # 下载仓库到本地
$ cd ~/superset/examples/sqlite
$ mkdir superset
$ touch superset/superset.db # 这个是SQLLite的数据库文件,映射到Docker内部
$ chmod 777 superset/superset.db # 这一步必须要做,否则Docker可能没有读写权限
$ docker-compose up -d redis # 启动Redis
$ docker-compose up -d superset # 启动Superset
$ docker-compose ps # Superset本身启动需要几十秒,需要等到superset服务的状态为healthy后才能执行下一步
$ docker-compose exec superset superset-demo # 进行初始化,根据提示设置用户名和密码
执行上述操作之后,会通过docker-compose启动2个服务:redis和superset,此时就可以通过设置的用户名和密码进行登陆了。
但是由于防火墙的问题,导致无法将示例数据完整地加载到Superset数据库中(在本例中是SQLite),但是不影响Superset的使用(只是无法使用官方的示例数据)。
如下将描述如何拷贝一个已经完整安装好示例数据的SQLite数据库文件到Docker容器中,以解决无法正常初始化示例数据库表的问题。
解决无法正常加载Superset示例数据的问题
找一个公有云平台,创建一台外网的主机(只要能正常访问github就行),安装好Docker环境,按照上述安装Superset的步骤执行一遍。
安装完Superset之后,进入到Superset服务对应的Docker容器,将其使用的SQLite数据库文件拷贝到宿主机。
从Docker容器拷贝文件到宿主机的命令格式为:docker cp 容器ID:容器内文件完整路径 宿主机目标路径
。
# 先进入到Superset服务容器
$ docker exec -it e7b78a09edb2 /bin/bash # e7b78a09edb2为Superset服务容器ID,替换为实际的ID值即可
$ docker cp e7b78a09edb2:/var/lib/superset/superset.db ~ # 将容器内部的文件拷贝到宿主机当前用户的home目录
将从外网云主机上安装Superset得到的示例数据库文件superset.db
拷贝到本地的Superset服务容器内。
将文件从宿主机拷贝到Docker容器内的命令格式为:docker cp 宿主机文件绝对路径 容器ID:容器内的绝对路径
。
$ docker cp superset.db e7b78a09edb2:/var/lib/superset
将superset.db
文件拷贝到容器内部之后不用重启容器即可访问完整的示例数据库表了。
【参考】
Docker 从容器中拷贝文件到宿主机中
完美拷贝本地文件到docker容器
可能是目前颜值最高的开源BI工具-Superset
数据可视化平台superset使用心得
Superset搭建及其简单使用
Docker部署Superset 2.1.0+开发环境+汉化+匿名访问+创建自定义图表(二次开发)+集成echarts+echarts百度地图
Superset 使用手册 – 从入门到精通
数据可视化–Superset使用示例
Superset为什么不支持多表关联
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,在下面评论区告诉我^_^^_^