我试图写一个大数据集(10 cols, 100M记录)从R到SAP HANA使用RJDBC的dbWritetable如下方式
图书馆(“RJDBC”)drv<-JDBC(“com.sap.db.jdbc.Driver”,“/数据/ hdbclient / ngdbc.jar”,“”)数据库<-dbConnect(drv," jdbc: sap: / / servername”,“用户”,“通过”)dbWriteTable(数据库,“大岛”,大岛)
这是可行的,但是非常慢(每小时75k条记录)。我也测试了RODBC (sqlsave),这显示了相同的问题。
看看后面的代码dbwritetable书写似乎是一份一份的记录(也就是insert into),实际上是一行一行地insert into usedbsendtable显示了相同的性能。我已经核实,问题不在于连接速度本身。
ROracle有builkwrite选项似乎解决了这个问题,但因为我试图写到HANA,我需要RJDBC或RODBC。
有人能告诉我如何通过运行一个大容量写或一些其他方法来加快对HANA的写吗?
如果您的主要目标是加速,而不需要改变太多其他内容,那么您可以切换到sjdbc它在这方面比RJDBC性能要好得多(遗憾的是,这在近年来并没有得到太多关注)。
当我写这篇文章的时候凹口在美国,西蒙似乎刚刚找到了它,并在一周前发布了一个新的版本。这实际上包括了一个改进dbsendupdate: