python 连接 SAP HANA 数据库

本文介绍了如何在Python中通过pyhdb库连接SAPHANA内存数据库,包括安装步骤、创建Connection对象和执行基本查询。还提及了HANAODBC连接方式作为参考。

SAP HANA 是SAP 新的内存数据库:

目前学习python数据处理分析,现在想要连接 SAP HANA 数据库,

发现目前python已经发布了连接 SAP HANA的库 pyhddb

1、需要安装pyhdb

pip install pyhdb

2.获取 Connection 对象

import pyhdb

def get_connection():

conn_obj = pyhdb.connect(

host="10.33.67.12",

port=30015, #多租户的端口需要准确的如30053,

user="***",

password="***"

)

return conn_obj

3查询数据

def get_employees(conn,A):

cursor = conn.cursor()

#cursor.execute("select * from XMZX.ZTEST_HANA where ID='a' ") #python官方例子的SQl模式,去掉字段和表的双引号

cursor.execute("select * from XMZX.ZTEST_HANA where ID='%s' "%(A))# 传递参数到

#cursor.execute('select "ID","NAME","ZCLNT" from "XMZX"."ZTEST_HANA" where "ID"=\'a\' ') #HANA生成的SQL需将'转义

employees = cursor.fetchall()

conn.close()

return employees

if __name__=='__main__':

conn = get_connection()

employees = get_employees(conn,'b')

for employee in employees:

print (employee)

这里只做简单的连接查询,其他的可以参照pyhdb的库来更改

https://blogs.sap.com/2014/04/02/%E5%9C%A8python%E4%B8%AD%E8%BF%9E%E6%8E%A5sap-hana/

这里是用HANA ODBC连接查询的情况

连接 SAP HANA 数据库,可以使用 Python 中的 `pyhdb` 或 `hana-ml` 库,或者使用 `sqlalchemy` 结合 HANA 的 ODBC 驱动。下面以 `pyhdb` 为例说明如何连接和执行简单查询。 ### 示例代码(使用 `pyhdb`): ```python import pyhdb # 建立连接 connection = pyhdb.connect( host="your_hana_host", # SAP HANA 服务器地址 port=30015, # 端口号,根据实例不同可能为 30015、30013 等 user="your_username", # 用户名 password="your_password" # 密码 ) # 创建游标 cursor = connection.cursor() # 执行查询 cursor.execute("SELECT 'Hello from SAP HANA!' FROM DUMMY") # 获取结果 result = cursor.fetchone() print(result[0]) # 输出: Hello from SAP HANA! # 关闭连接 cursor.close() connection.close() ``` ### 注意事项: 1. **安装 pyhdb**: ```bash pip install pyhdb ``` 2. **SAP HANA 端口**: - 默认端口通常是 `3<NN>15`,其中 `<NN>` 是实例编号,例如 00 实例的端口是 30015。 - 也可以使用 `HDB` 的 SQL 端口(默认 30015)或 `HANA Studio` 中查看。 3. **防火墙设置**: - 确保你的客户端机器可以访问 HANA 服务器的相应端口。 4. **用户权限**: - 用户需要有权限连接数据库和执行相应 SQL 语句。 --- ### 其他方法: - 使用 `hana-ml`(SAP 提供的 Python 库,支持机器学习和数据库连接): ```bash pip install hana-ml ``` 示例连接: ```python from hana_ml import dataframe from hana_ml.algorithms import metrics conn = dataframe.ConnectionContext( address="your_hana_host", port=30015, user="your_username", password="your_password" ) result = conn.sql("SELECT 'Hello from SAP HANA!' FROM DUMMY").collect() print(result.iloc[0, 0]) conn.close() ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值