Python Teradata Uda Exec ODBC连接问题

时间:2019-03-01 03:27:58

标签: odbc teradata pypi

我正在使用(Anaconda 3)Python 3.6.3,并从https://pypi.python.org/pypi/teradata安装了Teradata的python模块

我还在系统上创建了一个ODBC数据源,并能够使用它成功(使用Teradata SQL Assistant)登录到Teradata系统(在另一台服务器上)。驱动程序版本为13.00.00.09

我写了一个小的测试代码,但由于ODBC连接问题而失败:

new<-gsub("\\d[A-Z]{4,}","",mystring,perl=TRUE)
gsub("\\d{2,}_.*","",new)
#[1] "_IT_GSL_WEL_"         "_UTTEW_1_LCL_ABE_GT_" "_UTTEW_3_LCL_ABE_GT_

错误消息:

 import Teradata

 import pandas as pd

 import sys
 print("attempting TD connection")
 udaExec = teradata.UdaExec(appName="just_td_test",       version="1.0", logConsole=False)
 #
 with udaExec.connect(method="odbc",system="abc", username="aaaaa",password="xxxxx", driver="Teradata") as connect:
     print("connection done. querying now...")
     query = "select top 10 tablename from dbc.tables;"
     df = pd.read_sql(query,connect)
     print(df.head())
 connect.close()    

很明显,错误与ODBC连接有关,但错误消息不明确。 Teradata ODBC驱动程序版本为13,而pypi提供版本15的Teradata python模块。这是否是错误的原因?

2 个答案:

答案 0 :(得分:0)

我能够通过以下方式解决问题 (1)安装ODBC驱动程序v16和 (2)在连接字符串中使用DSN =代替system =。

所以看来我的错误原因是我之前使用的ODBC驱动程序版本不匹配。希望对别人有帮助。

答案 1 :(得分:0)

尝试使用另一个Python Teradata库(例如“ teradatasql”)来删除对Driver的依赖。这仅需要主机,用户名和密码参数即可进行连接。