R base
|
- absence de dépendance (ne s’appuie sur aucun package) : pas besoin d’installer un package, de gérer sa mise à jour, de craindre pour sa disparition
- garantit la rétrocompatibilité du code : utile dans des environnements de production
- dans certains cas, se révèle la solution la plus simple
- parfois, la seule façon de faire
|
- ne permet pas de gérer des bases de données plus volumineuses que la mémoire vive
- syntaxe plus complexe que
tidyverse et parfois incohérente
- souvent moins rapide que les autres environnements
- demande plus de connaissance sur le fonctionnement du langage
R
- certaines tâches sont plus simples à traiter avec les autres environnements
|
tidyverse
|
- plus simple à prendre en main
- syntaxe plus simple que les autres environnements et cohérente
- largement utilisé dans la communauté
R
- tend à s’imposer comme la référence de la gestion de données sur
R
- syntaxe utilisée également dans les packages
arrow / duckdb
|
- ne permet pas de gérer des bases de données plus volumineuses que la mémoire vive
- globalement moins rapide que
data.table
- certaines tâches sont plus difficiles à réaliser que dans les autres environnements
- dette technique importante : la syntaxe est plus souvent modifiée au gré des mises à jour du langage. Ainsi, la rétrocompatibilité est moins bien assurée, ce qui peut se révéler un problème dans un environnement de production
|
data.table
|
- faible dépendance : garantit une rétrocompatibilité élevée, utile dans un environnement de production
- syntaxe proche du
R base
- généralement plus rapide que ses concurrents
R base et tidyverse
- syntaxe plus concise que
tidyverse
- utile dans la gestion des grosses volumétries ou lorsque des considérations de vitesse d’exécution sont en jeu
|
- ne permet pas de gérer des bases de données plus volumineuses que la mémoire vive
- syntaxe parfois jugée comme plus difficile à maîtriser que celle du
tidyverse
- certaines tâches sont plus simples à traiter avec les autres environnements
- moins utilisé que
tidyverse , communauté plus réduite
|
duckdb
|
- base de de données open source. Se rapproche d’outils tels
SQLite ou PostgreSQL
- optimisé pour des traitements de données orientées colonnes (OLAP : traitement analytique en ligne) : plus performant pour les analyses statistiques que
SQLite
- simple d’utilisation par rapport à des outils comme
PostgreSQL
- permet de gérer des bases de données plus volumineuses que la mémoire vive
- permet la syntaxe en
SQL et en tidyverse , pratique pour ceux qui connaissent
- compatible avec de nombreux autres langages (tel
Python )
- tend à être plus rapide que ses concurrents
|
- capacités très importantes pour gérer de très grosses volumétries, mais a ses limites face aux données les plus volumineuses
- à privilégier pour les données saturant ou excédant la mémoire vive, moins utile pour les données de taille petite ou moyenne
- outil plus récent : est susceptible de subir des changements dans les prochaines années
- la syntaxe
tidyverse est largement, mais pas totalement prise en compte, et elle peut changer à la marge
- documentation officielle encore incomplète
- outil moins utilisé que les autres environnements, et surtout par des personnes ayant plus d’expérience
|
arrow
|
- très similaire à
duckdb
- projet plus ancien et plus mature que
duckdb , moins de changements à attendre dans le futur
- met à disposition le format de compression de données très utilisé
parquet
|
- très similaires à
duckdb
- moins de fonctions standards du
tidyverse prises en charge par rapport à duckdb
- jointures de bases volumineuses moins performantes qu’avec
duckdb
- offre moins de fonctionnalités que
duckdb
|
Un “benchmarking” des vitesses de traitement des différents packages est proposé ici : https://duckdblabs.github.io/db-benchmark/.