Используйте psqlodbc для подключения к Redshift на сервере Linux - PullRequest
0 голосов
/ 03 января 2019

В настоящее время я успешно подключаюсь к Redshift, используя SQLAlechemy и Psycopg2, например:

HOST = "host"
PORT = "5439"
DATABASE = "db"
USER = "user"
PASSWORD = "pass"

server = "redshift+psycopg2://%s:%s@%s:%s/%s" % (USER,PASSWORD,HOST,str(PORT),DATABASE)
engine = sa.create_engine(server, connect_args={'sslmode': 'verify-ca'})
conn = engine.raw_connection()

Я пытаюсь использовать ODBC (в частности, решение fast_executemany согласно Ускорение pandas.DataFrame.to_sql с fast_executemany из pyODBC ), поэтому я пытаюсь переписать его через PyODBC и драйвер psqlODBC , поскольку он доступен через установку conda в отличие от Redshift ODBC , например:

conn = pyodbc.connect(
    Driver='{/usr/local/anaconda/envs/jupyter-atp/lib/psqlodbcw.so}', 
    Server='host', 
    Port='5439',
    Database='db', 
    UID='user', 
    PWD='pass',
    sslmode='verify-ca'
    )

Я также пытался sslmode='require' согласно https://www.connectionstrings.com/postgresql-odbc-driver-psqlodbc/ssl/, но все равно получал следующее: Error: ('28000', '[28000] FATAL: no pg_hba.conf entry for host "::ffff:10.5.135.13", user "user", database "db", SSL off (210) (SQLDriverConnect)').Я получал похожую ошибку для SQLAlchemy, но sslmode='verify-ca' исправил ее ..

Есть предложения, как добавить аргумент подключения в PyODBC для включения SSL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...