Tutorial R: Usando as tabelas do SQLite

SQLite é um banco de dados SQL gratuito para utilização local (desktop). Como o próprio nome (lite) diz, ele é muito leve e fácil de usar, seja diretamente na linha de comando ou usando uma GUI como a SQLite Studio.

Neste post mostro como conectar uma base de dados do SQLite usando os pacotes DBI e RSQLite.

# Primeiramente instale os pacotes (caso você ainda não os tenha) com o comando install.packages:

# install.packages('DBI')
# install.packages('RSQLite')

# Depois é só carregá-los:

library(DBI)
library(RSQLite)

O pacote DBI funciona para conexões com vários banco de dados (MySQL, PostgreSQL e outros), porém ele necessita do drive específico para o banco de dados que você está utilizando, o que é fornecido pelo RQSLite.

Como a conexão do banco de dados SQLite é local, é necessário especificar o local do banco de dados.

caminho <- 'C:/Users/eron0/db/homedb.db'

Então é criado uma conexão que usará o RSQLite como driver, usando o commando dbConnect()

con <- dbConnect(SQLite(), 
                 dbname = caminho )

Pronto! O banco de dados está conectado. Há várias funções que podem ser utilizadas tanto para leitura quando para gravação no banco.

Para uma leitura de dados que serão utilizados para análise, pode-se utilizar o dbReadTable() para ler uma tabela chamada data_table, e em seguida vemos as primeiras linhas.

x <- dbReadTable(con, name = 'data_table')

head(x[,1:5])
##   user_id     full_name process_name process_id leader_id
## 1       1 Zina Reinhold     COBRANÇA         11       268
## 2       1 Zina Reinhold     COBRANÇA         11       268
## 3       1 Zina Reinhold     COBRANÇA         11       268
## 4       1 Zina Reinhold     COBRANÇA         11       268
## 5       1 Zina Reinhold     COBRANÇA         11       268
## 6       1 Zina Reinhold     COBRANÇA         11       268

O pacote DBI também admite uso dos comandos SQL para fazer as queries com a função dbSendQuery().

y <- dbSendQuery(con, "SELECT * FROM data_table WHERE user_id = 10")
dbFetch(y, 5)
##   user_id      full_name process_name process_id leader_id     leader_name
## 1      10 Alanzo Fernand     COBRANÇA         11       268 Braylen Juliann
## 2      10 Alanzo Fernand     COBRANÇA         11       268 Braylen Juliann
## 3      10 Alanzo Fernand     COBRANÇA         11       268 Braylen Juliann
## 4      10 Alanzo Fernand     COBRANÇA         11       268 Braylen Juliann
## 5      10 Alanzo Fernand     COBRANÇA         11       268 Braylen Juliann
##            time_stamp     kpi_name        kpi_result kpi_id kpi_type year_ref month_ref
## 1 2018-07-14 09:46:40 % Recuperado 0.533288564124015      1 Numérico     2018         7
## 2 2018-07-25 10:13:20 % Recuperado 0.992289546805205      1 Numérico     2018         7
## 3 2018-07-28 06:13:20 % Recuperado                 1      1 Numérico     2018         7
## 4 2018-08-07 23:06:40 % Recuperado 0.470217440579712      1 Numérico     2018         8
## 5 2018-08-15 04:53:20 % Recuperado 0.289438049463574      1 Numérico     2018         8
##   data_id
## 1    1367
## 2    1368
## 3    1369
## 4    1370
## 5    1371

E para finalizar é sempre necessário desconectar o banco de dados

dbDisconnect(con)
## Warning in connection_release(conn@ptr): There are 1 result in use. The connection will be
## released when they are closed

Todos os comandos e documentação estão disponíveis no site do RStudio.