使用SQLAlchemy连接到Vertica数据库
我正在尝试使用SQLAlchemy连接到Vertica数据库 我偶然发现并安装了Vertica方言。我还安装了pyodbc 使用的基础教程,我有以下代码片段:-使用SQLAlchemy连接到Vertica数据库,sqlalchemy,vertica,Sqlalchemy,Vertica,我正在尝试使用SQLAlchemy连接到Vertica数据库 我偶然发现并安装了Vertica方言。我还安装了pyodbc 使用的基础教程,我有以下代码片段:- from sqlalchemy import Column, DateTime, String, Integer, ForeignKey, func from sqlalchemy.orm import relationship, backref from sqlalchemy.ext.declarative import declar
from sqlalchemy import Column, DateTime, String, Integer, ForeignKey, func
from sqlalchemy.orm import relationship, backref
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class Department(Base):
__tablename__ = 'department'
id = Column(Integer, primary_key=True)
name = Column(String)
engine = create_engine(sa.engine.url.URL(drivername='vertica+pyodbc',
username='<username>',password='<password>',
host='<host>',database='<db name>',))
session = sessionmaker()
session.configure(bind=engine)
Base.metadata.create_all(engine)
可以从其他客户端连接到数据库,因此凭据等都可以
我不确定是什么原因造成的-有人能帮忙吗
提前谢谢 SQLAlchemy正在使用unixODBC连接到Vertica。你需要 您应该能够连接这些参数。这就是我在上一个SQLAlchemy/Vertica项目中所做的工作。此外,如果这不起作用,我会确保它配置正确,并且您可以使用isql(unixODBC附带)进行连接 您也可以为DSN连接执行此操作:
engine = create_engine('vertica+pyodbc://username:password@mydsn')
这是为Ubuntu14.04设置的,假设您在
/opt/vertica/
中安装了驱动程序,并使用此Dockerfile中的HP vertica,并且已安装
/etc/vertica.ini
[Driver]
ErrorMessagesPath = /opt/vertica/lib64/
ODBCInstLib = /usr/lib/x86_64-linux-gnu/libodbcinst.so
DriverManagerEncoding=UTF-16
[ODBC Data Sources]
vertica = "My Database"
[verticadsn]
Description = My Database
Driver = /opt/vertica/lib64/libverticaodbc.so
Database = docker
Servername = 127.0.0.1
UID = dbadmin
PWD =
~/.odbc.ini
[Driver]
ErrorMessagesPath = /opt/vertica/lib64/
ODBCInstLib = /usr/lib/x86_64-linux-gnu/libodbcinst.so
DriverManagerEncoding=UTF-16
[ODBC Data Sources]
vertica = "My Database"
[verticadsn]
Description = My Database
Driver = /opt/vertica/lib64/libverticaodbc.so
Database = docker
Servername = 127.0.0.1
UID = dbadmin
PWD =
如果你做得很好,这个命令应该返回你的Vertica版本
engine = create_engine('vertica+pyodbc://dbadmin:@verticadsn')
engine.connect().scalar('select version()')
您需要下载并安装Really。您必须注册一个帐户。谢谢-我已经创建了DSN并拥有Vertica驱动程序。假设它被称为“test”,您如何在“create_engine”调用中引用它?我想它在那里被引用了。你能分享你的DNS设置吗?我试图按照链接中的说明操作,但运气不佳。@Marigold您收到的错误消息是什么?你能通过isql连接吗?Thanks@woot,我设法通过互联网上的教程把它整合到一起。添加了另一个答案,以防有人遇到同样的问题。我认为在
engine=create\u engine('vertica')中编写dbadmin:
+pyodbc://dbadmin:@verticadsn')
覆盖.odbc.ini文件中的UID和PWDengine=create_engine('vertica+pyodbc://@verticadsn')
工作正常
engine = create_engine('vertica+pyodbc://dbadmin:@verticadsn')
engine.connect().scalar('select version()')