如何在 Microsoft Azure 上配置 Oracle Driver Manager?

How can I configure Oracle Driver Manager on Microsoft Azure?

我有一个在 Microsoft Azure 中开发的系统,更准确地说是在 Databricks 中。 我的挑战是连接到外部 Oracle 数据库,但在多次尝试后,生成了相同的错误:

python中的代码:

import pyodbc
try1 = 'Devart ODBC Driver for Oracle'
try2 = 'Microsoft ODBC for Oracle'
try3 = 'Oracle'
try4 = 'Oracle ODBC driver for Oracle 11g'

conn_str = ('DRIVER={'+try3+'};'+'SERVER=server;'+'DATABASE=db;'+'UID=uid;'+'PWD=pwd;')

cnxn = pyodbc.connect(conn_str)

错误信息:

('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'Oracle' : file not found (0) (SQLDriverConnect)")

有谁知道问题是什么以及我如何在 Azure 环境中解决它?

非常感谢!

在 Databricks 中安装 ODBC 驱动程序有点麻烦,因为您必须提供启动 bash 脚本来安装和配置驱动程序。

JDBC driver install 更简单,因为您只需上传库即可。

因此,如果可能,请使用 Spark 和 JDBC 而不是 pyodbc。参见 https://docs.databricks.com/data/data-sources/oracle.html

如果您需要做的不仅仅是 Spark 读取和加载,您可以随时使用 Scala or Java cell with JDBC

默认情况下,Azure Databricks 没有安装 Oracle ODBC 驱动程序。

运行 单个单元格中的以下命令用于在 Azure Databricks 群集上安装 Oracle ODBC 驱动程序。

%sh    
apt-get -y install unixodbc-dev
/databricks/python/bin/pip install pyodbc

在 Azure Databricks 集群上安装 Oracle ODBC 驱动程序后,您可以连接 Oracle 数据库。

有关更多详细信息,请参阅以下解决类似问题的线程。

https://social.msdn.microsoft.com/Forums/en-US/5bb3d872-613f-4738-b9d6-bc1dba32a354/unable-to-connect-to-sql-database-using-rodbc?forum=AzureDatabricks

希望这对您有所帮助。