2017-03-03 5 views
0

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()) 

出典:クエリ[?? X 7]データベース:MonetDB 11.25.5(Dec2016-SP1)UseMethodで

エラー( "sql_translate_env"): 'sql_translate_env' のない適用可能な方法は、クラスのオブジェクトに適用される "MonetDBConnection"

ドッカーコンテナ(ロッカー/詩:3.3.2)にデフォルトのリポジトリ/設定(packages.install("dplyr"))を使用してdplyrをインストールしました。

UPDATE 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()) 

出典:クエリ[?? x7]データベース:MonetDB 11.25.5(Dec2016-SP1)

エラー.mapiRead(conObj @ connenv $ socket)のエラー: MonetDBサーバーからの空の応答。おそらくタイムアウトです。 の応答を 'dbConnect()'に 'timeout'パラメータで待つ時間を増やすことができます。

データセットは実際には小さく(5000個のエントリ)、大したことではありません。 MonetDBは彼と同じサーバーONTインストールし、素晴らしい作品され、また、DBIインタフェースの動作(および秒以内に結果を返します):

DBI::dbGetQuery(con, "SELECT count(*) from videos") 

UPDATE 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()) 

出典:クエリ[?? x7]データベース:MonetDB 11.25.5(Dec2016-SP1)

エラー.mapiRead(conObj @ connenv $ socket)のエラー: MonetDBサーバーからの空の応答。おそらくタイムアウトです。 の応答を 'dbConnect()'に 'timeout'パラメータで待つ時間を増やすことができます。

devtools::install_github("hannesmuehleisen/MonetDBLite") 
db <- MonetDBLite::src_monetdb("ai_db", user="analyst", password="mypassword", host="monetdb.local") 
db %>% tbl("users") %>% mutate(n= n()) 

出典:クエリ[??継承中のx 7]エラー(con_acquire(x)は、 "MonetDBEmbeddedConnection"):機能 "con_acquire"

+0

こんにちは、その構文は正しいですか? https://cran.rstudio.com/web/packages/dplyr/vignettes/databases.html –

+0

テストケースを渡す:https://github.com/hannesmuehleisen/MonetDBLite/blob/master/tests/testthat/test_03_dplyr.R "devtools :: install_github(" hannesmuehleisen/MonetDBLite ")'が不明です –

+0

@AnthonyDamico私は 'src_monetdb(" ai_db "、ユーザー="アナリスト "、パスワード=" mypassword "、ホスト=" monetdb.local ")'まず、タイムアウトを設定するためにそれを書き直さなければならなかった(私はいつもこの迷惑なタイムアウトエラーを受けた)。私は次の日に開発版をインストールしようとしますが、安定したCRANバージョンを稼働させることを願っています(私はビルド前のドッカーイメージを使用しています。すべてのmonetdbをインストールする必要はありません)依存関係(例えば、 'libmonetdb5.so'))。 – NaN

答えて

1

代わりMonetDBLiteパッケージを使用してくださいを見つけることができなかった、それはあまりにも、スタンドアロンサーバーに接続するためのコードが含まれています