dbplyr v1.3.0

0

Monthly downloads

0th

Percentile

A 'dplyr' Back End for Databases

A 'dplyr' back end for databases that allows you to work with remote database tables as if they are in-memory data frames. Basic features works with any database that has a 'DBI' back end; more advanced features require 'SQL' translation to be provided by the package author.

Readme

dbplyr

Travis build
status CRAN
status Codecov test
coverage

Overview

dbplyr is the database backend for dplyr. If you are using dplyr to connect to databases, you generally will not need to use any functions from dbplyr, but you will need to make sure it’s installed.

Installation

# The easiest way to get dbplyr is to install the whole tidyverse:
install.packages("tidyverse")

# Alternatively, install just dbplyr:
install.packages("dbplyr")

# Or the the development version from GitHub:
# install.packages("devtools")
devtools::install_github("tidyverse/dbplyr")

Usage

dbplyr is designed to work with database tables as if they were local data frames. To demonstrate this I’ll first create an in-memory SQLite database and copy over a dataset:

library(dplyr, warn.conflicts = FALSE)

con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
copy_to(con, mtcars)

Now you can retrieve a table using tbl() (see ?tbl_dbi for more details):

mtcars2 <- tbl(con, "mtcars")
mtcars2
#> # Source:   table<mtcars> [?? x 11]
#> # Database: sqlite 3.22.0 [:memory:]
#>      mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
#>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
#>  2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
#>  3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
#>  4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
#>  5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
#>  6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
#>  7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
#>  8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
#>  9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
#> 10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
#> # … with more rows

More complicated expressions are evaluated lazily:

# Lazily generates query
summary <- mtcars2 %>% 
  group_by(cyl) %>% 
  summarise(mpg = mean(mpg, na.rm = TRUE)) %>% 
  arrange(desc(mpg))

# see query
summary %>% show_query()
#> <SQL>
#> SELECT `cyl`, AVG(`mpg`) AS `mpg`
#> FROM `mtcars`
#> GROUP BY `cyl`
#> ORDER BY `mpg` DESC

# execute query and retrieve results
summary %>% collect()
#> # A tibble: 3 x 2
#>     cyl   mpg
#>   <dbl> <dbl>
#> 1     4  26.7
#> 2     6  19.7
#> 3     8  15.1

Functions in dbplyr

Name Description
do.tbl_sql Perform arbitrary computation on remote backend
partial_eval Partially evaluate an expression.
build_sql Build a SQL string.
copy_to.src_sql Copy a local data frame to a DBI backend.
sql SQL escaping.
join.tbl_sql Join sql tbls.
lahman Cache and retrieve an src_sqlite of the Lahman baseball database.
lazy_ops Lazy operations
ident Flag a character vector as SQL identifiers
sql_build Build and render SQL from a sequence of lazy operations
memdb_frame Create a database table in temporary in-memory database.
sql_quote Helper function for quoting sql elements.
in_schema Refer to a table in a schema
sql_variant Create an sql translator
sql_escape_logical More SQL generics
remote_name Metadata about a remote table
sql_expr Generate SQL from R expressions
simulate_dbi Create a local lazy tibble
tbl_sql Create an SQL tbl (abstract)
testing Infrastructure for testing dplyr
db_copy_to More db generics
translate_sql Translate an expression to sql.
dbplyr-package dbplyr: A 'dplyr' Back End for Databases
win_over Generate SQL expression for window functions
window_order Override window order and frame
escape Escape/quote a string.
src_dbi dplyr backend for any DBI-compatible database
src_sql Create a "sql src" object
named_commas Provides comma-separated string out ot the parameters
nycflights13 Database versions of the nycflights13 data
No Results!

Vignettes of dbplyr

Name
notes/mysql-setup.Rmd
notes/postgres-setup.Rmd
dbplyr.Rmd
new-backend.Rmd
sql-translation.Rmd
windows.graffle
windows.png
No Results!

Last month downloads

Details

Type Package
License MIT + file LICENSE
URL https://github.com/tidyverse/dbplyr
BugReports https://github.com/tidyverse/dbplyr/issues
VignetteBuilder knitr
Encoding UTF-8
LazyData yes
RoxygenNote 6.1.1
Collate 'cache.r' 'compat-purrr.R' 'data-lahman.r' 'data-nycflights13.r' 'db-compute.R' 'db-mysql.r' 'db-odbc-access.R' 'db-odbc-hive.R' 'db-odbc-impala.R' 'db-odbc-mssql.R' 'db-odbc-oracle.R' 'db-odbc-redshift.R' 'db-odbc-teradata.R' 'db-postgres.r' 'db-roracle.R' 'db-sqlite.r' 'dbi-s3.r' 'dbplyr.R' 'do.r' 'explain.r' 'utils.r' 'ident.R' 'lazy-ops.R' 'memdb.R' 'partial-eval.r' 'query.r' 'remote.R' 'schema.R' 'simulate.r' 'sql-build.R' 'sql-escape.r' 'sql-expr.R' 'sql-generic.R' 'sql-optimise.R' 'sql-query.R' 'sql-render.R' 'sql.R' 'src-sql.r' 'src_dbi.R' 'tbl-lazy.R' 'tbl-sql.r' 'test-frame.R' 'testthat.r' 'translate-sql-helpers.r' 'translate-sql-window.r' 'translate-sql-base.r' 'translate-sql-clause.r' 'translate-sql-odbc.R' 'translate-sql-paste.R' 'translate-sql.r' 'utils-format.r' 'window.R' 'zzz.R'
NeedsCompilation no
Packaged 2019-01-09 00:09:26 UTC; hadley
Repository CRAN
Date/Publication 2019-01-09 13:20:07 UTC

Include our badge in your README

[![Rdoc](http://www.rdocumentation.org/badges/version/dbplyr)](http://www.rdocumentation.org/packages/dbplyr)