Manipulation de données volumineuses à l’aide de DuckDB avec R pour la réalisation d’études ou de réponses à la demande
Ce tutoriel est à destination des utilisateurs des plateformes de l’Insee (AUS, LS3, SSPCloud). Toutefois, les utilisateurs hors Insee peuvent adapter les différents codes produits à l’infrastructure de leur organisation (logiciels utilisé sur un poste en local, Nubonyxia…)
Pourquoi DuckDB ?
DuckDB est une base de données qui tourne directement dans votre session R, sans serveur à installer. On l’utilise avec le langage SQL, mais on peut aussi l’utiliser avec les verbes dplyr que vous connaissez déjà.
Ses avantages pour une étude ou une réponse à la demande :
- Rapide : conçu pour analyser de gros volumes de données (bien plus rapide que
data.frameou mêmedplyrseul sur de gros fichiers ou queRPostGrespour récupérer des données depuis une base de données PostgreSQL). Un exemple de comparaison entre duckDB et le packageRPostGresest disponible ici - Économe en mémoire : peut traiter des fichiers plus gros que la RAM disponible.
- Polyvalent : lit et écrit nativement des fichiers Parquet, se connecte à des bases PostgreSQL, et sait lire/écrire sur du stockage S3 (l’espace de stockage disponible sur les instances d’Onyxia, comme LS3 ou le SSPCloud).
- Simple : une seule ligne pour se connecter, pas de serveur à administrer.
Documentation officielle : duckdb.org/docs (client R) : r.duckdb.org
Support de formation Insee R données volumineuses : Formation R données volumineuses
Le plan du tutoriel
Ce tutoriel suit le déroulé type d’une étude : se connecter, charger les données, les manipuler, puis exporter le résultat.
Étape 0 : Créer une connexion DuckDB
On ouvre une session DuckDB depuis R. C’est le point de départ obligatoire de tout script.
Étape I : Charger les données
On part d’une base PostgreSQL, on extrait les données vers un fichier Parquet, puis on apprend à importer un Parquet stocké sur un espace S3.
Étape II : Manipuler les données
On transforme les données avec DuckDB, en comparant deux façons de faire : les verbes dplyr habituels, et le SQL natif.
Étape III : Exporter les données
On enregistre le résultat de l’étude, en SQL uniquement, au format de son choix.
Étape IV : Exemple de pipeline complet
On assemble toutes les étapes précédentes dans un script unique, du chargement à l’export final.
Avant de commencer
Le seul package R nécessaire est duckdb (qui embarque DBI) :
install.packages("duckdb")Tout au long de cette formation, le code montré est à adapter : remplacez les noms de tables, de buckets ou de fichiers par les vôtres. Les extraits ne sont pas exécutés automatiquement sur ce site, copiez-les dans votre session R.