Teradataインスタンスからデータを取得したい。クライアントコードは、AWS EC2インスタンスでPython2.7 +を実行します。PythonがAWS EC2のTeradataに接続
私はunixODBCのドライバとsudo pip install teradata
をインストールしますが、私はまだ次の例外を取得しています:
File "/usr/local/lib/python2.7/site-packages/teradata/tdodbc.py", line 369, in determineDriver
"Available drivers: {}".format(dbType, ",".join(drivers)))
teradata.api.InterfaceError: ('DRIVER_NOT_FOUND', "No driver found for 'Teradata'. Available drivers: PostgreSQL,MySQL")
次のようにコードは次のとおりです。
import sys
import teradata
# my own imports
td = TeradataClient(DEFAULT_HOSTNAME, DEFAULT_USERNAME, DEFAULT_PASSWORD)
td.select(query, outfile)
次のようにTeradataのを呼び出して、私が作成したTeradataClient
クラスであります:
class TeradataClient:
def __init__(self, hostname, username, password):
self._hostname = hostname
self._username = username
self._password = password
self._udaExec = teradata.UdaExec(appName="MyApp", version="1.0", logConsole=False)
def select(self, query, outfile, sep=DEFAULT_SEPARATOR, nullstr=DEFAULT_NULL_STR):
with self._udaExec.connect(method="odbc", system=self._hostname, username=self._username,
password=self._password) as session:
print 'Connection to Teradata established'
with open(outfile,'w') as fp:
with session.cursor() as cursor:
for row in cursor.execute(query):
lineparts = [str(x if x!=None else nullstr) for x in row]
fp.write('%s\n' %sep.join(lineparts))
ixこれ?インストールが必要な別のODBCドライバがありますか?
のbotoで
system
kwargのため? [link](https://aws.amazon.com/articles/3998) – JC203'boto3'は既にインストールされています。 – Nik
接続文字列を試行してください。それは、非常に小さな構文または欠落した属性である可能性があります。そして、すべての 'import'行を追加してください。 – Parfait