SQLAlchemy官方Vertica方言
项目描述
SQLAlchemy官方Vertica方言使用纯Python DB-API驱动程序vertica-python,用于连接Vertica数据库和SQLAlchemy应用程序。
先决条件
您将需要以下软件来运行、构建和测试该方言。除Python和pip之外的所有软件都可以通过pip本身安装。
Python 3.x或更高版本
pip 22或更高版本
sqlalchemy≥1.3.24,≤1.4.44
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f16b15ec34b0e20a6b16a1f8f386c32023307df48e9491dc2eb4d34b8793c44e |
|
MD5 | 686f49b2192ae60850b9cc56412f8216 |
|
BLAKE2b-256 | 82c9102e2e6b461c504ca9347ac339a443b9d6187b3c323158f6d7137b82c8f7 |