Как реализовать базу данных In-Memory, доступную из нескольких сеансов R внутри JVM?
Я пишу программу, которая порождает несколько R-сессий внутри одной JVM. Мне нужно обмениваться данными между этими сеансами, и я сейчас записываю файлы (RData/txt) на диск. Я немного прочитал и обнаружил, что база данных в памяти - правильный путь, и сосредоточился на H2. Я скачал и установил пакет RH2, и в документации сказано, что он включает в себя экземпляр H2 - мне не нужно отдельно устанавливать его.
Итак, я пошел дальше и попытался создать свою базу данных:
con <- dbConnect(H2(), "jdbc:h2:mem:test", "sa", " ")
И получил ошибку:
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
Я прочитал этот вопрос Stackru и попытался:
> 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, но результат тот же.