跳转到主要内容

SQLAlchemy官方Vertica方言

项目描述

SQLAlchemy官方Vertica方言使用纯Python DB-API驱动程序vertica-python,用于连接Vertica数据库和SQLAlchemy应用程序。

先决条件

您将需要以下软件来运行、构建和测试该方言。除Python和pip之外的所有软件都可以通过pip本身安装。

  1. Python 3.x或更高版本

  2. pip 22或更高版本

  3. sqlalchemy≥1.3.24,≤1.4.44

  4. vertica-python 1.1.1 或更高版本

Vertica-Python

要使用 Vertica-SQLAlchemy-Dialect,需要 vertica-python。连接器不需要单独安装,因为方言的安装会处理它。

注意:我们建议使用 vertica-python 连接器。但是,方言也允许使用 pyodbc 连接。更多说明请参阅本 README 文件末尾。

安装 Vertica SQLAlchemy 方言

可以使用 pip 从公共 PyPI 仓库安装 Vertica SQLAlchemy 包。

pip install --upgrade vertica-sqlalchemy-dialect

pip 会自动安装所有必需的模块,包括 vertica-python。

有关安装和验证的更多信息,请查看我们的 GitHub 页面。

参数和行为

尽可能多,Vertica SQLAlchemy 为 SQLAlchemy 应用程序提供兼容的功能。有关使用 SQLAlchemy 的信息,请参阅 SQLAlchemy 文档

注意:当前方言仅支持元数据函数。它仍在开发中。

但是,Vertica SQLAlchemy 也提供了特定的参数和行为,以下章节将进行描述。

连接参数

Vertica SQLAlchemy 方言使用以下语法来表示连接到 Vertica 并启动会话的连接字符串

'vertica+vertica_python://<user>:<password>@<host_name>/<database_name>'

其中

  • <user> 是您的 Vertica 用户的登录名。

  • <password> 是您的 Vertica 用户的密码。

  • <host_name> 是您的 Vertica 主机的 IP/FQDN。

  • <database_name> 是您的 Vertica 数据库的名称。

您可以选择在连接字符串末尾包含初始数据库和模式,以便为 Vertica 会话指定它们,它们由 / 分隔。您还可以在连接字符串末尾指定 vertica-python 支持的其他参数。

'vertica+vertica_python://<user>:<password>@<host_name>/<database_name>?session_label=sqlalchemy&connection_load_balance=1'

有关更多信息,请参阅 vertica-python 的连接 选项

打开和关闭连接

通过执行 engine.connect() 打开连接;避免使用 engine.execute()。在执行 engine.dispose() 之前,确保通过执行 connection.close() 来关闭连接;否则,Python 垃圾收集器会删除与 Vertica 通信所需的资源,导致 Python 连接器无法正确关闭会话。

engine = create_engine(...)
connection = engine.connect()
try:
    connection.execute(<SQL>)
finally:
    connection.close()
    engine.dispose()

使用 pyodbc 而不是 vertica-python

您可以使用 pyodbc 而不是 vertica-python 进行连接。

创建 Vertica DSN

您需要从 Vertica-Client-Drivers 安装 Vertica ODBC 驱动器。有关安装 Vertica ODBC 的步骤,请参阅官方 Vertica 文档

例如,您需要使用您的凭据配置以下文件

/etc/vertica.ini

[Driver]
ErrorMessagesPath = /opt/vertica/lib64/
ODBCInstLib = /usr/lib/x86_64-linux-gnu/libodbcinst.so
DriverManagerEncoding=UTF-16

~/.odbc.ini

[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 DSN

from sqlalchemy import create_engine

engine = sa.create_engine('vertica+pyodbc://@verticadsn')
try:
    res = engine.connect().scalar('select version();')
    print(res)
finally:
    connection.close()
    engine.dispose()

这将显示 Vertica 版本信息:“Vertica Analytic Database v12.0.0-0”。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅有关 生成分发存档 的教程。

构建分发

vertica_sqlalchemy_dialect-0.0.8.2-py3-none-any.whl (24.5 kB 查看哈希值)

上传时间 Python 3

由以下支持