(DRIVER_NOT_FOUND',“未找到 'Teradata' 的驱动程序。可用的驱动程序:) - 使用带有 teradata 模块的 Anaconda-Jupyter 笔记本

(DRIVER_NOT_FOUND', "No driver found for 'Teradata'. Available drivers:) - using Anaconda-Jupyter notebooks with teradata module

我一直在使用 Anaconda-Jupyter notebookspython 版本 3.5.4。 objective 是创建连接字符串,以便将 Anaconda-Jupyter 笔记本 Python 与 Teradata DB 连接起来。安装 teradata python 软件包 后,我收到一些错误消息,指出 ('DRIVER_NOT_FOUND', "No driver found for 'Teradata'. Available drivers: ").

我需要这个连接字符串才能从 teradata DB 中获取表和数据。我已经安装了 ODBC 驱动程序并创建了一个 odbc.ini 文件。但是,我仍然收到这个 Driver not found 错误 Jupiter notebook。请帮帮我。下面是我用来制作连接字符串的脚本。

请告诉我要在系统、主机、dsn、用户名、密码中写入什么。以及 teradata 数据库的驱动程序名称是什么。需要在此脚本中提及它们:

udaExec.connect(method="odbc",system=host, username=username,
                            password=password, driver="DRIVERNAME")

PS:Anaconda-Jupyter Notebook 服务器在 Unix 上是 运行。

脚本:

#Using teradata module
#You can install teradata via PIP: pip install teradata
#to get a list of your odbc drivers names, you could do: teradata.tdodbc.drivers

import teradata
import pandas as pd

host,username,password = 'HOST','UID', 'PWD'
#Make a connection
udaExec = teradata.UdaExec (appName="test", version="1.0", logConsole=False)


with udaExec.connect(method="odbc",system=host, username=username,
                            password=password, driver="DRIVERNAME") as connect:

    query = "SELECT * FROM DATABASEX.TABLENAMEX;"

    #Reading query to df
    df = pd.read_sql(query,connect)

# do something with df,e.g.
print(df.head()) #to see the first 5 rows

谢谢!

  1. 您需要安装 Teradata ODBC 驱动程序(https://downloads.teradata.com/download/connectivity/odbc-driver/linux) and export path for ODBC home. [ https://github.com/Teradata/PyTd/issues/104 ]

  2. 或者直接使用teradatasql python pip包来执行sql查询作为游标(即。 , mysql-python) [ https://pypi.org/project/teradatasql/ ]