All Projects → tidyverse → Dbplyr

tidyverse / Dbplyr

Licence: other
Database (DBI) backend for dplyr

Programming Languages

r
7636 projects

Labels

Projects that are alternatives of or similar to Dbplyr

Schemazen
Script and create SQL Server objects quickly
Stars: ✭ 273 (-5.21%)
Mutual labels:  database
Liburkel
Authenticated key-value store (i.e. an urkel tree)
Stars: ✭ 280 (-2.78%)
Mutual labels:  database
Drmongo
MongoDB admin app built on MeteorJs.
Stars: ✭ 283 (-1.74%)
Mutual labels:  database
Dbq
Zero boilerplate database operations for Go
Stars: ✭ 273 (-5.21%)
Mutual labels:  database
Graphik
Graphik is a Backend as a Service implemented as an identity-aware document & graph database with support for gRPC and graphQL
Stars: ✭ 277 (-3.82%)
Mutual labels:  database
Django Querycount
Middleware that Prints the number of DB queries to the runserver console.
Stars: ✭ 280 (-2.78%)
Mutual labels:  database
Clean Go
Clean Architecture Example in Go
Stars: ✭ 274 (-4.86%)
Mutual labels:  database
Dgraph
Native GraphQL Database with graph backend
Stars: ✭ 17,127 (+5846.88%)
Mutual labels:  database
Trino
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
Stars: ✭ 4,581 (+1490.63%)
Mutual labels:  database
Vasern
Vasern is a fast, lightweight and open source data storage for React Native
Stars: ✭ 283 (-1.74%)
Mutual labels:  database
Pgquarrel
pgquarrel compares PostgreSQL database schemas (DDL)
Stars: ✭ 274 (-4.86%)
Mutual labels:  database
Immortaldb
🔩 A relentless key-value store for the browser.
Stars: ✭ 2,962 (+928.47%)
Mutual labels:  database
Polodb
PoloDB is an embedded JSON-based database.
Stars: ✭ 282 (-2.08%)
Mutual labels:  database
Jackrabbit
Mirror of Apache Jackrabbit
Stars: ✭ 273 (-5.21%)
Mutual labels:  database
Nodejs Restful Api
How to create a RESTful CRUD API using Nodejs?
Stars: ✭ 285 (-1.04%)
Mutual labels:  database
Pg chameleon
MySQL to PostgreSQL replica system
Stars: ✭ 274 (-4.86%)
Mutual labels:  database
React Native Mmkv Storage
An Efficient(0.0002s read/write), small & encrypted mobile key-value storage framework for React Native
Stars: ✭ 273 (-5.21%)
Mutual labels:  database
Text2sql Data
A collection of datasets that pair questions with SQL queries.
Stars: ✭ 287 (-0.35%)
Mutual labels:  database
Odbc
Connect to ODBC databases (using the DBI interface)
Stars: ✭ 285 (-1.04%)
Mutual labels:  database
Psycopg3
New generation PostgreSQL database adapter for the Python programming language
Stars: ✭ 278 (-3.47%)
Mutual labels:  database

dbplyr

CRAN status R build status Codecov test coverage

Overview

dbplyr is the database backend for dplyr. It allows you to use remote database tables as if they are in-memory data frames by automatically converting dplyr code into SQL.

To learn more about why you might use dbplyr instead of writing SQL, see vignette("sql"). To learn more about the details of the SQL translation, see vignette("translation-verb") and vignette("translation-function").

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)

Note that you don’t actually need to load dbplyr with library(dbplyr); dplyr automatically loads it for you when it sees you working with a database. Database connections are coordinated by the DBI package. Learn more at https://dbi.r-dbi.org/

Now you can retrieve a table using tbl() (see ?tbl_dbi for more details). Printing it just retrieves the first few rows:

mtcars2 <- tbl(con, "mtcars")
mtcars2
#> # Source:   table<mtcars> [?? x 11]
#> # Database: sqlite 3.34.1 [: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

All dplyr calls are evaluated lazily, generating SQL that is only sent to the database when you request the data.

# 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

Code of Conduct

Please note that the dbplyr project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].