错误消息monetdblite:free“value大于”size“

时间:2016-04-04 06:28:24

标签: r monetdb monetdblite

我正在尝试连接到monetdblite数据库,这在几分钟前工作正常。 在另一个会话中关闭连接后,重新打开R,我收到此错误消息:

con <- dbConnect(MonetDBLite(), path_db)

Error in MonetDBLite::monetdb_embedded_startup(embedded, !getOption("monetdb.debug.embedded",  : 
  Failed to initialize embedded MonetDB !FATAL: BBPinit: "free" value larger than "size" in heap of bat 9

如果我再试一次,我会得到:

Error in MonetDBLite::monetdb_embedded_startup(embedded, !getOption("monetdb.debug.embedded",  : 
  Failed to initialize embedded MonetDB !FATAL: BBPaddfarm: bad rolemask

我在R和RStudio中试过这个。

编辑:感谢您的回复(以及MonetDbLite包,顺便说一句)。在我创建数据库之后发生了这个错误;我输入了一些数据(大约2.7e9行)并从数据库中成功断开连接(即我使用dbDisconnect(con)并获得TRUE作为结果,这就是我认为其他错误的原因)。 R版本是3.2.2,服务器是Windows服务器2012 R2。

Edit2 - &gt;最小可重复的例子:

####### Example
library(data.table)
library(MonetDB.R)
data_orig <- data.table(id=rep(1:1e3,each=sample(100,1)))
data_orig[,y:=rnorm(.N)][,t:=1:.N,by=id]
lu <- data.table(t=1:max(data_orig[["t"]]))

dbdir <- tempdir()
con <- dbConnect(MonetDB.R::MonetDB(), embedded = dbdir)
# Create data
dbWriteTable(con,"data_orig",data_orig)

for(i in data_orig[,unique(id)]){
  print(i)
  query <- paste0("select * from data_orig where id=",i)
  data_i <- dbGetQuery(con,query)
  setDT(data_i)
  tmp <- data_i[lu,roll=T,on="t"]
  dbWriteTable(con,"data_new",tmp,append=T)

}

dbDisconnect(con)

基本上我从数据库中读取数据,将其聚合,然后再将其重新放回。

0 个答案:

没有答案