我尝试在monetdb SQL后端上运行简单的dplyr命令。连接本身似乎工作,但dplyr调用失败。我重新启动了RSession,并试图再次重新安装MonetDB.R
程序包,但没有成功。Dplyr后端无法找到'sql_translate_env'的适用方法
library(dplyr)
db <- MonetDB.R::src_monetdb("ai_db", user="analyst", host="monetdb.local", password="mypassword")
## works!
DBI::dbGetQuery(db$con, "SELECT count(*) from users")
## fails
db %>% tbl("users") %>% mutate(n= n())
来源:查询[??] ×7]数据库:MonetDB 11.25.5(Dec2016-SP1)
错误UseMethod( “sql_translate_env”):为 'sql_translate_env' 不适用方法应用于类 “MonetDBConnection” 的目的
我在Docker容器(摇杆/诗句:3.3.2)中使用默认存储库/设置(packages.install("dplyr")
)安装了dplyr。
更新1:MonetDBLite代替OD MonetDB.R
现在我安装MonetDBLite我用下面的代码来创建连接:
con <- mc(dbname="ai_db", user="analyst", password="mypassword", host="monetdb.local",
timeout=86400000)
db <- MonetDBLite::src_monetdb("ai_db",con=con)
我设置了相当高的超时,因为一个错误消息指出从低到一个(见下文)。但是,该命令再次失败,我不认为它与超时有关,因为它立即失败。
## fails
db %>% tbl("users") %>% mutate(n= n())
来源:查询[??]数据库:MonetDB 11.25.5(Dec2016-SP1)
.mapiRead(conObj @ connenv $ socket)中的错误:来自 的空响应,可能是超时。您可以增加等待 以便将'timeout'参数设置为'dbConnect()'的响应时间。
该数据集非常小(只有5000个条目),所以这不应该是一个大问题。 MonetDB安装ONT他相同的服务器和伟大工程,也是DBI接口工作(并返回内第二的结果):
DBI::dbGetQuery(con, "SELECT count(*) from videos")
更新2:
现在我都尝试,在dev亡MonetdbLite的版本和存储库中的稳定CRAN版本。两者都失败了,但有不同的错误。
packages.install("MonetDBLite")
db <- MonetDBLite::src_monetdb("ai_db", user="analyst", password="mypassword", host="monetdb.local")
db %>% tbl("users") %>% mutate(n= n())
来源:查询[??数据库:MonetDB 11.25.5(Dec2016-SP1)
.mapiRead(conObj @ connenv $ socket)中的错误:来自 的空响应,可能是超时。您可以增加等待 以便将'timeout'参数设置为'dbConnect()'的响应时间。
devtools::install_github("hannesmuehleisen/MonetDBLite")
db <- MonetDBLite::src_monetdb("ai_db", user="analyst", password="mypassword", host="monetdb.local")
db %>% tbl("users") %>% mutate(n= n())
来源:查询[??×7]在继承错误(con_acquire(X), “MonetDBEmbeddedConnection”):找不到功能 “con_acquire”
嗨,语法是否正确? https://cran.rstudio.com/web/packages/dplyr/vignettes/databases.html –
传递测试用例:https://github.com/hannesmuehleisen/MonetDBLite/blob/master/tests/testthat/test_03_dplyr.R你可能需要'devtools :: install_github(“hannesmuehleisen/MonetDBLite”)'不确定 –
@AnthonyDamico我试过'src_monetdb(“ai_db”,user =“analyst”,password =“mypassword”,host =“monetdb.local”)'首先,但后来我不得不重写它来设置超时(我总是得到这个恼人的超时错误)。我将在接下来的几天内尝试安装dev-version,但是我希望我能够获得稳定的CRAN版本(我正在使用预构建的docker镜像,并且我更喜欢解决方案而不需要安装所有的monetdb依赖关系(例如,'libmonetdb5.so'))。 – NaN