単一の JVM 内で複数の R セッションを生成するプログラムを作成しています。これらのセッション間でデータを共有する必要があり、今のところディスクにファイル (RData/txt) を書き込んでいます。少し読んだところ、インメモリデータベースが正しい方法であることがわかり、H2 に焦点を合わせました。RH2 パッケージをダウンロードしてインストールしましたが、ドキュメントには H2 インスタンスが含まれていると記載されていました。個別にインストールする必要はありません。
だから私は先に進み、自分のデータベースを作成しようとしました:
con <- dbConnect(H2(), "jdbc:h2:mem:test", "sa", " ")
エラーが発生しました:
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
私はこのStackOverflow Questionを読み、試しました:
> con <- dbConnect(H2(), "jdbc:h2:mem:test")
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
> con <- dbConnect(H2(), "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1")
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
> con <- dbConnect(H2(), "jdbc:h2:~/test", "sa", "")
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
ドキュメントを調べましたが、あまり役に立ちませんでした。ドライバーを確認したところ、次のようになりました。
> H2()
An object of class "H2Driver"
Slot "identifier.quote":
[1] "\""
Slot "jdrv":
[1] "Java-Object{org.h2.Driver@25e01f19}"
R 内からデータベースを作成するにはどうすればよいですか? また、このデータベースを異なるセッション間で共有することは可能ですか?
更新: RJDBC と RH2 の両方の古いインスタンスに切り替えましたが、結果は同じでした。