为了在python中使用HANA,我总是使用HANA客户端附带的旧版python 2.6.4。还有ways to get it working和其他python版本一样,但它们看起来非常hacky。
现在我已经找到了非常有前途的PyHDB project on Github,它似乎也可以更轻松地安装相同的工作并使用更新的Python版本。
哪些功能不适用于使用HANA python的PyHDB?
是否存在性能缺陷?
修改
以下是我使用module globals找到的内容:
format
; hdbcli:qmark, named
)答案 0 :(得分:3)
PyHDB是node-hdb的弟弟,两者都实现了与基于ODBC的Python包hdbcli相同的protocol。 hdbcli Python客户端是标准HANA安装的一部分,但据我所知,它不属于用于构建HANA应用程序的官方支持的接口列表。 因此,构建PyHDB的方向不是hdbcli客户端,而是上面提到的协议规范和现有的node-hdb实现。
因此,目前还没有详细的hdbcli / PyHDB交叉比较,但是查看协议规范和PyHDB的README以及node-hdb有助于深入了解连接器的功能以及两种实现的规范的当前覆盖范围。
在这三个HANA连接器中,hdbcli,node-hdb和PyHDB,PyHDB是最年轻的,提供atm。最少的特性和功能,缺少node-hdb中已有的一些功能,例如身份验证方法或预准备语句。查看node-hdb源有助于粗略估计在Python中构建相同内容所需的工作量。
PyHDB不是等待协议的完全覆盖(可能需要一段时间),而是“按原样”发布,但是可以接收来自项目的输入和要求,并在这个方向上提供新功能。
到目前为止没有发现性能缺陷。
或许值得一提的是,通过ABAP,通过SAP RFC协议,通过PyRFC和node-rfc连接器,也可以实现Python和nodejs(GO即将推出)的直接连接。 standard ABAP RFC连接器,也可用于Java和.NET。
答案 1 :(得分:3)
此处有关于当前情况的更新:
关于表现:
以下博客文章包含更多信息:
https://blogs.sap.com/2017/07/26/sap-hana-2.0-sps02-new-feature-updated-python-driver/
答案 2 :(得分:0)
pyhdb
几天前已弃用,不再维护。您会发现其 GitHub 存储库已存档 (https://github.com/SAP-archive/PyHDB) 且处于只读模式。 SAP 维护者 @bsrdjan 关闭了所有未解决的问题和拉取请求。 hdbcli
现在是推荐的用于与 SAP HANA 数据库交互的 Python 包,尽管它是闭源的,文档较少。
我建议使用 sqlalchemy-hana
,这是 SAP HANA 数据库的一种 SQLAlchemy 方言。它可以使用 hdbcli
或 pyhdb
对配置进行一行更改,因此您无需查找数据库驱动程序文档。