Skip to content

Instantly share code, notes, and snippets.

@jlacko
Created September 23, 2022 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jlacko/88c4c1270b3a06d41d2b45c59de5e202 to your computer and use it in GitHub Desktop.
Save jlacko/88c4c1270b3a06d41d2b45c59de5e202 to your computer and use it in GitHub Desktop.
Připojení vzdálené databáze + spuštění SQL kódu v prostředí RMarkdownu
---
title: "Příklad volání SQL z prostředí RStudia"
output: html_document
date: "`r Sys.Date()`"
---
Prvním krokem je připojení k databázi v chunku typu R; zde dataset financial z https://relational.fit.cvut.cz/dataset/Financial
Funkce připojovacího chunku je aktivovat připojení k databázi (podle instrukcí na stránkách FIT). Chunk je typu R.
```{r pripojit}
# package, které potřebuju...
required_packages <- c("DBI", "RMariaDB")
# package, které mám...
installed_packages <- installed.packages()
# ergo rozdíl stahnu z CRANu
install.packages(setdiff(required_packages, installed_packages))
# vlastní aktivace připojení
library(DBI)
con <- dbConnect(RMariaDB::MariaDB(),
host = "relational.fit.cvut.cz",
port = 3306,
username = "guest",
password = "relational")
```
Druhým krokem je vlastní zavolání dotazu v chunku typu SQL; chunk vyžaduje aktivní databázové připojení `con` (z předchozího chunku).
Zajímavou variací je využití volání `output.var` v hlavičce chunku; tato podporuje uložení výstupu chunku do proměnné typu data.frame pro další využití technikami erka v některém z dalších chunků / více viz. https://bookdown.org/yihui/rmarkdown/language-engines.html#sql
```{sql vlastni-dotaz, connection = con}
select
max(date) posledni_transakce,
count(distinct account_id) aktivnich_uctu
from
financial.trans
;
```
Po ukončení práce je zdvořilé ukončit připojení k vzdálené databázi.
```{r odpojit}
dbDisconnect(conn = con)
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment