oracle - 如何在 Apache Superset 上安装 Oracle 驱动程序(没有 Internet 访问权限)
问题描述
我打开了这个问题,因为很多人都无法在 Apache Superset 上安装 Oracle 驱动程序,无论是否有互联网访问。
解决方案
要在 Apache Superset(没有 Internet 访问权限)上安装 Oracle 驱动程序,您需要:
- 在 docker 容器上安装 cx_Oracle python 包
- 在 docker 容器上安装 Oracle 客户端库
1.如何在docker容器上安装cx_Oracle python包(不能上网)
- 下载 docker 容器 python 版本和架构的 cx_Oracle python 包 (WHL) ( cx_Oracle-8.2.1-cp37-cp37m-manylinux1_x86_64.whl ) 并将您的文件移动到/superser/docker/文件夹中。
- 在/superset/docker/文件夹上创建一个requirements-local.txt并在其中添加/app/docker/cx_Oracle-8.2.1-cp37-cp37m-manylinux1_x86_64.whl。
- 就这样。当您使用docker-compose up命令时,该软件包将安装在 docker 容器上。
2.如何在docker容器上安装Oracle客户端库(不能上网)
- 使用docker-compose down命令。
- 从 Debian 网站下载libaio1_0.3.112-3_amd64.deb软件包。
- 从 Oracle 网站 ( oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm )下载 Oracle 客户端库rpm包。
- 在 linux 计算机上安装外星人( sudo apt-get install alien)。
- 通过alien --to-deb oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm命令,使用 alien 将你的rpm包转换为deb包。
- 使用 docker -compose up命令启动 Apache Superset 。
- 使用 docker container ls命令识别 Apache Superset docker 容器的 id 。
- 使用 docker cp libaio1_0.3.112-3_amd64.deb [CONTAINER_ID]:/app/命令将您的libaio1_0.3.112-3_amd64.deb包移动到您的容器中。
- 使用docker cp oracle-instantclient-basic-21.1.0.0.0-2_amd64.deb [CONTAINER_ID]:/app/命令将您的 Oracle 客户端库包移动到您的容器中。
- 使用docker exec [CONTAINER_ID] dpkg -i /app/libaio1_0.3.112-3_amd64.deb命令在 docker 容器上安装软件包。
- 使用docker exec [CONTAINER_ID] dpkg -i /app/oracle-instantclient-basic-21.1.0.0.0-2_amd64.deb命令在 docker 容器上安装软件包。
- 就这样。您现在可以将 Apache Superset 连接到您的 Oracle 数据库。
推荐阅读
- java - 无法发布多部分表单数据 json 请求
- sed - 如何组合两个 sed 命令?
- api - 更新用户时出现角度 6 woocommerce REST 身份验证错误(PUT 方法不起作用)
- php - 如何使用 php 从用户被定向到我的网站的位置获取完整的 facebook 网址?
- php - 在 PHP 中启用 mbstring 扩展:未定义符号:第 0 行 Unknown 中的 compiler_globals
- python - 从Python中的文本文件中的特定数字中获取一个句子
- android - 简单日期格式从纪元时间戳中提供错误信息
- python - Selenium Web 驱动程序:如何单击按钮?
- python - Odoo 10:如何从按钮将参数传递给树视图?
- cassandra - Apache Cassandra 阅读解释