понеділок, 26 травня 2014 р.

R + Vertica

Дуже зручно при аналізі даних на етапі вивчення даних та формулювання гіпотез завантажувати результати виконання запитів з бази даних відразу в R.
Для 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.

Немає коментарів:

Дописати коментар