From e293d22a474c84e769db7fb31559cf3816b56ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Mon, 12 Feb 2024 20:27:46 +0100 Subject: [PATCH] Databases workshop --- workshops/databases.qmd | 39 ++++++++++++++++++----------- workshops/images/kirill-muller.jpg | Bin 0 -> 30056 bytes 2 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 workshops/images/kirill-muller.jpg diff --git a/workshops/databases.qmd b/workshops/databases.qmd index 44e1afe..a1816db 100644 --- a/workshops/databases.qmd +++ b/workshops/databases.qmd @@ -1,35 +1,44 @@ --- -title: Databases (Details TBD) +title: Databases with R author: - - name: Instructor 1 name + - name: Kirill Müller affiliations: - - name: Instructor 1 affiliation - - name: Instructor 2 name (remove if single instructor) - affiliations: - - name: Instructor 2 affiliation + - name: cynkra description: | - 1-sentence summary of workshop. -categories: [add, comma, separated, categories] + An introduction to databases and DuckDB with R. +categories: [R, databases, DuckDB] --- # Description -Full workshop description goes here. Multi-paragraph ok. +As a data professional, you likely have to deal with databases that are larger than your available RAM. +Downloading the data requires patience, applying traditional workflows is frustrating. +This workshop will teach you to work with your (large) data: + +- if it resides in a traditional database, effortlessly + +- from local storage, using DuckDB, a modern database engine tailored to data analysis + +The workshop will introduce basic database concepts and move on with practical work with traditional databases and DuckDB. +You are encouraged to bring your own data(base) to immediately apply what you have learned during the workshop. +Among others, the workshop showcases the DBI, dbplyr, duckdb, duckplyr, and dm packages. # Audience This course is for you if you: -- list at least +- have worked with the dplyr package. + +- have just read or heard about databases and are ready to get your hands dirty. -- three attributes +- performed basic operations on a database, and you would like to deepen your knowledge. -- for your target audience +- have heard about DuckDB and want to know what makes it unique and how to leverage it in your daily workflow. # Instructor(s) -| | | | -|------------------|------------------|------------------------------------| -| ![](images/name-lastname.jpg) | | Instructor bio, including link to homepage. | +| | | | +|-------------------------------|-----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ![](images/kirill-muller.jpg) | | [Kirill Müller](https://www.cynkra.com/about/) has been working on the boundary between data and computer science for more than 25 years. He has been awarded five R consortium projects to improve database connectivity and performance in R. Kirill is a core contributor to several tidyverse packages, including dplyr and tibble, and is currently working on duckplyr, the next iteration of dplyr that uses DuckDB as a backend. He holds a Ph.D. in Civil Engineering from ETH Zurich and is a founder and partner at cynkra. | : {tbl-colwidths="\[25,5,70\]"} diff --git a/workshops/images/kirill-muller.jpg b/workshops/images/kirill-muller.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dafda37dba5edf2b29341b2151cfe932568aabfc GIT binary patch literal 30056 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 U_wKD