在hana数据库中插入和检索python数据框

2020-08-15 23:02发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)



我有一个python数据框,我想直接将其插入HANA数据库中,也想从数据库中读取它。

我已经尝试过此代码:

 从sqlalchemy导入create_engine
 引擎= create_engine('hana + pyhdb://username:password@example.com:port')
 my_df = pd.DataFrame([[1,2],[3,4],[5,6],[7,8]],列= [" A"," B"])
 my_df.to_sql('table_name',con = engine,index = False,if_exists ='replace') 

错误:DBAPIError:(hdbcli.dbapi.Error)(4321,"仅允许安全连接")(此错误的背景在于: http://sqlalche.me/e/dbapi *

这是关于添加SSL证书的吗? 如何在引擎中添加它?

但是,我可以使用crypto选项通过Python API连接OK:

  conn = dbapi.connect(
     地址="主机",
     port = portnr,
     crypto =" true",
     user =" user",
     password =" pwd") 

但是,如果我在此处传递此连接对象:

  my_df.to_sql('table_name',con = conn,index = False,if_exists ='replace') 

我仍然会收到错误消息。 该如何解决?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)



我有一个python数据框,我想直接将其插入HANA数据库中,也想从数据库中读取它。

我已经尝试过此代码:

 从sqlalchemy导入create_engine
 引擎= create_engine('hana + pyhdb://username:password@example.com:port')
 my_df = pd.DataFrame([[1,2],[3,4],[5,6],[7,8]],列= [" A"," B"])
 my_df.to_sql('table_name',con = engine,index = False,if_exists ='replace') 

错误:DBAPIError:(hdbcli.dbapi.Error)(4321,"仅允许安全连接")(此错误的背景在于: http://sqlalche.me/e/dbapi *

这是关于添加SSL证书的吗? 如何在引擎中添加它?

但是,我可以使用crypto选项通过Python API连接OK:

  conn = dbapi.connect(
     地址="主机",
     port = portnr,
     crypto =" true",
     user =" user",
     password =" pwd") 

但是,如果我在此处传递此连接对象:

  my_df.to_sql('table_name',con = conn,index = False,if_exists ='replace') 

我仍然会收到错误消息。 该如何解决?

付费偷看设置
发送
3条回答
小熊yu生菜
1楼-- · 2020-08-15 23:17

嗨,严厉,

您还可以通过连接字符串(即create_engine的参数)传递crypto参数。 您可以从 Jupyter笔记本 以" hraf=" https://blogs.sap.com/2020/06/24/on-machine-learning-without-location-data/">此博客为例。

相关部分:

 connection_string ='hana://%s:%s @%s:%s/?encrypt = true&sslvalidatecertificate = false'%(hdb_user,hdb_password,hdb_host,hdb_port)

关于,
Mathias

樱桃小丸子0093
2楼-- · 2020-08-15 23:22

嗨哈什,

我们还可以使用另一种方法在HANA_ML中使用SAP开发的python API,特别是使用连接上下文对象。 安装 HANA_ML 后,您可以建立连接,例如以下示例。 您会注意到,像上面的示例一样,您需要提供加密和sslvalidatecertificate。 这可能是造成您原始问题的原因。

从hana_ml.dataframe导入ConnectionContext
 与open(os.path.join(os.getcwd(),'env_cloud.json'))为f:
     hana_env = json.load(f)
     port = hana_env ['port']
     用户= hana_env ['用户']
     url = hana_env ['url']
     pwd = hana_env ['pwd']

 抄送= ConnectionContext(URL,端口,用户,密码,自动提交=真,加密='真',sslValidateCertificate ='假')
 cur = cc.connection.cursor()
 
ZJXianG
3楼-- · 2020-08-15 23:12

嗨,哈什,

这是否涉及SAP Cloud Platform,SAP HANA服务?

我已经发布了一个带有教程视频的博客,其中介绍了如何进行设置

对于SAP HANA Cloud服务或本地,例如 SAP HANA,默认情况下不强制实施Express Edition安全连接。 您也是SAP HANA系统的系统管理员吗?

一周热门 更多>