如何解决R SAP Hana与Windows的ODBC集成
我想从RStudio连接到SAP Hana数据库。 我已经测试了几个库,例如:
-
RODBC
-
RJDBC
最后,经过一些阅读和研究,我确定ODBC是较新的库,而不是RODBC,并且与RJDBC相比,它具有更好的性能。
我已经开始使用RStudio文档:
1- SAP HANA驱动程序安装link
在为Windows 64位安装驱动程序之后,我可以从RStudio中看到驱动程序HDBODBC
:
> library(odbc)
> sort(unique(odbcListDrivers()[[1]]))
[1] "Amazon Redshift (x64)" "HDBODBC" "ODBC Driver 17 for sql Server" "Postgresql ANSI(x64)" "Postgresql Unicode(x64)"
[6] "sql Server"
>
下图是在配置提供IP和端口的DSN时的捕获:
错误:
1-这是我尝试连接到DSN时得到的:
> library(odbc)
> con <- dbConnect(odbc(),"HAN")
Error: nanodbc/nanodbc.cpp:983: HY000: [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;1033 error while parsing protocol
>
2-这是我尝试不使用DSN进行连接时得到的:
library(DBI)
con <- dbConnect(odbc::odbc(),driver = "HDBODBC",uid = "<user>",pwd = "<pass>",host = "<ip>",port = <port>)
Error: nanodbc/nanodbc.cpp:983: HY000: [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;-10719 Connect Failed (invalid SERVERNODE '')
其他故障排除信息:
我已经测试了连接,并且连接成功。
我在Tableau中使用了它,并且效果很好。
我还使用了RJDBC和Java驱动程序,它也可以正常工作,但是性能确实很差:
jdbcDriver <- JDBC(driverClass="com.sap.db.jdbc.Driver",classpath="C:\\Program Files\\SAP\\hdbclient\\ngdbc.jar")
jdbcConnection <- dbConnect(jdbcDriver,"jdbc:sap://<ip>:<port>/?autocommit=false","<username>",key_get("<service>",keyring = "<keyring>"))
版本:
Windows:
OS Name: Microsoft Windows 10 Enterprise
OS Version: 10.0.18363 N/A Build 18363
System Type: x64-based PC
R:
> version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64,mingw32
status
major 3
minor 6.3
year 2020
month 02
day 29
svn rev 77875
language R
version.string R version 3.6.3 (2020-02-29)
nickname Holding the Windsock
>
解决方法
在尝试不使用DSN的情况下,缺少参数ServerNode
的情况;您使用的是HOST
,而不是相同的参数。
有关详细信息,请参见参考文档here。
,请尝试
主机名作为您的主机链接
conn<- dbConnect(odbc::odbc(),"HDODBC")
这将起作用....!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。