R аварийно завершает работу при установке соединения с базой данных через RPostgreSQL

Я использую версию R, указанную ниже:

R version 3.4.3 (2017-11-30) -- "Kite-Eating Tree"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin15.6.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

[R.app GUI 1.70 (7463) x86_64-apple-darwin15.6.0]

Я использую macOS Sierra версии 10.12.6 (16G1314). Используется процессор Intel Core i7 с тактовой частотой 3,1 ГГц, память 16 ГБ 1867 МГц DDR3, графическая карта Intel Iris Graphics 6100 1536 МБ.

Вот мой код R, который дает сбой. Я убрал имена хостов, порты, имя базы данных, имя пользователя и пароль из соображений безопасности. Присвоение con - это то, что дает сбой. Я пытаюсь подключиться к кластеру Redshift, используя пример кода в моей организации.

library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(
    drv,
    host = "<host name>",
    port = "<four digit port>"
    dbname = "'dbname = <database name> ssl=require'",
    user = "<user name>",
    password = "<password>"
)

Вот моя информация о сеансе R до назначения con

R version 3.4.3 (2017-11-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.6

Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods  
[7] base     

other attached packages:
[1] RPostgreSQL_0.6-2 DBI_0.8          

loaded via a namespace (and not attached):
[1] compiler_3.4.3

Вот отчет о сбое, в котором все удалено из соображений безопасности:

 *** caught segfault ***
address 0x0, cause 'memory not mapped'

Traceback:
 1: .Call(RS_PostgreSQL_newConnection, drvId, con.params)
 2: postgresqlNewConnection(drv, ...)
 3: dbConnect(drv, host = "<hostname>", port = "<port>",     dbname = "'dbname = <database name> ssl=require'", user = "<user name>",     password = "<password>")
 4: dbConnect(drv, host = "<hostname>", port = "<port>",     dbname = "'dbname = <database name> ssl=require'", user = "<user name>",     password = "<password>")

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace

Я попробовал это с двумя кластерами Redshift и столкнулся с той же проблемой.

Вопрос. Как решить эту проблему, чтобы подключиться к моему кластеру Redshift через R?

Бонусный вопрос: это только у меня или в последнее время выпуски R были глючными?


person Brash Equilibrium    schedule 11.04.2018    source источник
comment
Сделайте это ответом. Затем я проверю это, и если это сработает, проверьте ваш ответ.   -  person Brash Equilibrium    schedule 13.04.2018


Ответы (1)


Я быстро нашел и просмотрел документы Amazon для Redshift. Они предлагают вам использовать драйвер JDBC или ODBC. Пакет RPostgreSQL использует драйвер libpq, поэтому я не ожидал, что он будет работать с Redshift.

Я предлагаю вам использовать RODBC, RJDBC или odbc, в зависимости от того, что лучше всего подходит для вашей установки.

person Joshua Ulrich    schedule 13.04.2018