В настоящее время я успешно подключаюсь к 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?