Как подключиться к серверу Teradata с использованием sqlalchemy и DSN без подключения - PullRequest
0 голосов
/ 12 июня 2019

Я не могу определить правильную строку ODBC, которую мне нужно передать в оператор create engine.

Это работает

import pyodbc
import pandas as pd

cnxn=pyodbc.connect('DRIVER=/opt/teradata/client/ODBC_64/lib/tdata.so;DBCName=Server;UID=UN;PWD=PW;Database=myDB')

query = "select top 10 * from TABLE"
df = pd.read_sql(query,cnxn) 

Это не работает

import urllib
import sqlalchemy
params = urllib.parse.quote_plus('DRIVER=/opt/teradata/client/ODBC_64/lib/tdata.so;DBCName=Server;UID=UN;PWD=PW;Database=myDB')

engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)

query = "select top 10 * from TABLE"

df = pd.read_sql_query(query, engine)

Я могу заставить работать соединение pyodbc, но не соединение sqlalchemy. Любая помощь будет оценена.

Я получаю эту ошибку:

InterfaceError: (pyodbc.InterfaceError) ('IM001', '[IM001] [unixODBC][Driver Manager]Driver does not support this function (0) (SQLGetInfo)')
...