Для PostgreSQL та MySQL такий зв'язок можна сформувати використовуючи ODBC. (Опис налаштувань для Ubuntu є тут і тут).
Аналогічна схема для бази даних Vertica вимагає ще конфігурації vertica.ini (на додачу до встановлення драйвера та конфігурації odbc.ini та odbcinst.ini). Незважаючи на всі мої старання, побороти помилку
[08001][unixODBC][DSI] The error message UnableToEstConn could not be found in the en-US locale.
так і не вдалося.Тому я вирішила спробувати звязок через JDBC. Тут все виявилося відносно просто:
1) Встановлюємо потрібні бібілеотеки в R:
install.packages("rJava")
install.packages("RJDBC")
Бібліотека rJava так просто не встановилася, прийшлося запускати
sudo R CMD javareconf
2) Скачуємо з сайту Vertica jdbc linux драйвер (треба зареєструватись)3) Встановлюємо з'єданання з Vertica(на віддаленій машині) з R(на локальній):
library(RJDBC)
# в сlassPath вказуємо шлях до драйвера:
vDriver = JDBC(driverClass="com.vertica.jdbc.Driver", classPath="path_to_driver/vertica-jdbc-7.0.1-0.jar")
# встановлюємо з'єдання з базою:
vertica = dbConnect(vDriver, "jdbc:vertica://db_ip:port/database", "username", "password")
Можемо робити запити і працювати з їх результатами в R: > myframe = dbGetQuery(vertica, "select * from offers;")
> myframe
offer category quantity company offervalue brand
1 1190530 9115 1 108500080 5.00 93904
2 1194044 9909 1 107127979 1.00 6732
3 1197502 3203 1 106414464 0.75 13474
4 1198271 5558 1 107120272 1.50 5072
Додаткові технічні подробиці:Локальна машина: OS Ubuntu 12.04 LTS, R 3.1.0 Spring Dance.
Віддалена машина: Vertica CE 7.
Немає коментарів:
Дописати коментар