Apache Superset 是一个开源的数据探查与可视化平台,该工具在可视化、易用性和交互性上非常有特色,用户可以轻松对数据进行可视化分析。
使用 Docker 安装 Superset
- 第一步需要安装 Docker Engine 和 Docker Compose,在 Mac 上,可以使用 Docker Desktop,其中包括了 Docker Engine 和 Docker Compose。安装好 Docker 后,需要进入 Docker 设置将默认的内存设置为 6 GB
- 克隆 Superset 的仓库到本地:
1 | git clone https://github.com/apache/superset.git |
- 将仓库拷贝到本地后,执行下面两条语句:
1 | docker-compose -f docker-compose-non-dev.yml pull |
关于 docker compose
的 CLI 命令参数与相关的解释,参考 Overview of docker-compose CLI.
如果需要指定版本的 superset,需要在这一步指定,方法是在前面加上 tag 参数:
1 | git checkout 1.4.0 |
在启动日志中,可能会看到检测到默认的 secret string,提示我们使用自己生成的字符,还贴心的给了我们生成示例。
1 | openssl rand -base64 42 |
其次,superset_worker 提示我们在使用超级用户启动 worker, 并提示:
1 | You're running the worker with superuser privileges: |
我们之后再来看这个问题。
同时在 superset_init 中,我们还看到它的初始化配置文件地址:
1 | /app/docker/pythonpath_dev/superset_config.py |
此时,我们其实已经可以打开 http://0.0.0.0:8088
访问 superset 的服务了, 默认的用户名和密码都是 admin
。
Windows 使用 WSL 安装
1 | # 安装依赖 |
配置 Superset
配置 superset 需要使用一个配置文件,即上面我们日志中看到过的那个文件,它需要被添加到你的 PYTHONPATH 中。
看一下这个文件中的内容:
1 | # in superset_config.py |
你可以在这里找到所有可选的配置添加到配置文件中。
连接数据库
由于我需要测试的数据库是 Oracle,而 superset 安装后内部并不会带有数据库驱动,我们需要手动安装,方法是在仓库内部的 docker 目录下面,新建 requirements-local.txt
文件,并填入包的名字,如对于 oracle 是:
1 | cx_Oracle |
然后关掉 superset 服务,重新生成镜像再启动:
1 | docker-compose build --force-rm |
连接 oracle,只安装 cx_Oracle 是不够的,可能还需要有 instantclient 客户端。
在 web 界面添加数据库可能会看到这个错误:
1 | Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help |
原因是没有配置 Oracle 的 instant client,需要在环境中安装才可以连接 Oracle。
1 | # 成功启动后,还需要安装 cx_Oracle 和 instant client 才可以连接 oracle |
另外,如果使用 tnsnames, tnsnames.ora 文件中的数据库地址配置可能在 wsl 中无法连接,这里折腾了一会,在宿主机上 ping 该地址得到了一个 domain.org 形式的地址,重新填入解决了。