R ima mogućnost importa podataka iz relacionih SQL baza odnosno eksporta podataka u relacione SQL baze. Kako bismo što vjerodostojnije simulirali okruženje i kompletirali naredni zadatak, prvo je neophodno definisati ODBC konekciju. Naredni koraci prikazuju cjelokupni proces definisanja ODBC konekcije sa Access fajlom iz .
Zadatak: Uspostaviti konekciju sa DSN db, definisanim u prethodnom postupku, a zatim importovati podatke iz tabele pod nazivom Tabela1.
> #narednu komandu izvrsiti ukoliko RODBC paket vec nije instaliran
> #install.packages("RODBC")
> library(RODBC)
> #uspostaviti ODBC konekciju
> odbc.con <- odbcConnect(dsn = "db")
> #definisati SQL komandu za import podataka
> sql.com <- "SELECT * FROM Tabela1"
> #importovati podatke pomocu sqlQuery funkcije
> db.accdb <- sqlQuery(channel = odbc.con, query = sql.com)
> #prikazati prva 2 reda db.accdb data framea
> head(db.accdb, 2)
ID x y z
1 1 2 5 a
2 2 4 4 b
> #zatvoriti ODBC konekciju
> odbcClose(channel = odbc.con)
> #naredne komande izvrsiti ukoliko DBI i odbc paketi vec nijesu instalirani
> #install.packages("DBI")
> #install.packages("odbc")
> library(DBI)
> library(odbc)
> #uspostaviti ODBC konekciju
> odbc.con <- dbConnect(odbc::odbc(), dsn = "db")
> #importovati podatke iz tabele Tabela1
> db.accdb <- dbReadTable(odbc.con, "Tabela1")
> #prikazati prva 2 reda db.accdb data frames
> head(db.accdb, 2)
ID x y z
1 1 2 5 a
2 2 4 4 b
> #zatvoriti ODBC konekciju
> dbDisconnect(odbc.con)
> #naredne komande izvrsiti ukoliko DBI, odbc, dplyr, dbplyr
> #paketi vec nijesu instalirani
> #install.packages("DBI")
> #install.packages("odbc")
> #install.packages("dplyr")
> #install.packages("dbplyr")
> library(DBI)
> library(odbc)
> library(dplyr)
> library(dbplyr)
>
> #uspostaviti ODBC konekciju
> odbc.con <- dbConnect(odbc::odbc(), dsn = "db")
> #definisati tabelu iz baze
> tbl.db <- tbl(odbc.con, "Tabela1")
> #importovati podatke u lokalni tibble objekat
> #vise informacija o tibble objektima pogledati na help strani ?tibble
> tbl.r <- tbl.db %>% collect()
> #prikazati importovane podatke
> tbl.r
# A tibble: 5 x 4
ID x y z
<int> <int> <int> <chr>
1 1 2 5 a
2 2 4 4 b
3 3 6 3 c
4 4 8 2 d
5 5 10 1 e
> #zatvoriti ODBC konekciju
> dbDisconnect(odbc.con)
Za ODBCkonekcije sve veću popularnost dobijaDBI paketa i to prvenstveno zbog mogućnosti direktnog izvršenja dplyr komandi nad bazama podataka (putemdbplyr interfejsa) kao i boljih performansi vremena izvršenja upita i upravljanja memorijom.