Accueil / Factory / R Underground / 13 oct. 2026 DATA · 13 oct. 2026

R face à Snowflake : la fin des drivers ODBC pour les équipes data

skiLift supprime ODBC entre R et Snowflake : ce que ça change pour les déploiements d'entreprise, et où restent les limites.

R face à Snowflake : la fin des drivers ODBC pour les équipes data
À la une

Snowflake sans ODBC : ce que skiLift change pour les équipes R en entreprise

Connecter R à Snowflake a toujours été un exercice de patience plus qu'un problème technique. Il fallait un driver ODBC correctement installé, souvent une JVM pour certaines configurations, des variables d'environnement propres, et un service IT capable de reproduire cette installation sur chaque poste et chaque conteneur de production. Dans une organisation qui déploie des apps Shiny sur Cloud Run ou des pipelines batch en CI, cette dépendance système devient vite le premier obstacle, bien avant la moindre ligne de SQL.

Posit reprend la maintenance de skiLift, un connecteur DBI écrit entièrement en R qui parle directement à l'API SQL REST de Snowflake. Plus de driver à compiler, plus de couche ODBC à maintenir en version compatible avec le système d'exploitation du conteneur, plus de JVM embarquée pour les cas où l'ancien driver en dépendait. Le package s'installe comme n'importe quel package R, et s'utilise avec l'interface DBI que la plupart des data analysts connaissent déjà : dbConnect, dbGetQuery, dbWriteTable.

Ce choix d'architecture a une conséquence directe sur le déploiement : une image Docker pour une app Shiny ou un job Cloud Run n'a plus besoin d'installer et de configurer un driver système. Le Dockerfile se simplifie, le temps de build diminue, et la surface de pannes liées à l'environnement se réduit d'autant. C'est exactement le type de friction que les équipes qui industrialisent du R en production cherchent à éliminer.

Posit publie en parallèle skiPatrol, une interface vers la plateforme ML de Snowflake : registre de modèles, feature store, monitoring. Pour une équipe qui pousse déjà ses modèles xgboost ou ses pipelines de features sur l'écosystème Snowflake, cela ouvre la possibilité de piloter ce cycle de vie depuis R sans repasser par Python ou par l'interface web de Snowflake.

Les limites restent réelles. Un connecteur REST reste plus lent qu'un driver natif pour des volumes massifs de lignes transférées en un seul aller-retour, et toute l'authentification d'entreprise (SSO, clés privées, OAuth) doit être validée avec son équipe sécurité avant toute généralisation. Le fait que Posit reprenne la maintenance est un gage de continuité, mais ces packages restent jeunes comparés à des connecteurs ODBC éprouvés depuis une décennie.

Pour une équipe qui opère déjà sur Snowflake et qui code en R, l'essai mérite d'être fait sur un cas non critique avant toute bascule en production.

CODE R
library(DBI)
library(skiLift)

con <- dbConnect(
  skiLift::snowflake(),
  account = Sys.getenv("SNOWFLAKE_ACCOUNT"),
  user = Sys.getenv("SNOWFLAKE_USER"),
  password = Sys.getenv("SNOWFLAKE_PASSWORD"),
  warehouse = "COMPUTE_WH",
  database = "ANALYTICS",
  schema = "PUBLIC"
)

ventes <- dbGetQuery(con, "SELECT region, SUM(montant) AS total FROM ventes GROUP BY region")
print(ventes)

dbDisconnect(con)

Connexion DBI classique à Snowflake sans configuration ODBC préalable, utilisable tel quel dans une app Shiny ou un job planifié.

Notre avis

Un connecteur 100% R pour un entrepôt cloud majeur, c'est un vrai gain d'exploitation, pas un gadget : moins de dépendances système veut dire des déploiements plus simples et plus reproductibles. Reste à vérifier la tenue en charge sur de gros volumes avant d'y faire confiance en production critique.

→ Pour qui : Data engineers et data scientists qui déploient des apps ou des pipelines R connectés à Snowflake en entreprise.

LES BRÈVES

APPS

shinylive embarque un webR plus récent

shinylive met à jour ses assets vers un webR plus récent, avec un cache de binaires WebAssembly qui se rafraîchit correctement quand le dépôt distant évolue. Pour les équipes qui distribuent des démos Shiny sans serveur via GitHub Pages ou Quarto, c'est moins de binaires périmés silencieusement embarqués dans l'export.

Source : cran.r-project.org ↗
APPS

watcher prépare l'auto-reload natif de Shiny

Le package watcher simplifie son installation et s'apprête à devenir une dépendance directe de Shiny pour l'auto-reload au développement. Il tourne sur un thread séparé et rappelle R via later, ce qui évite de bloquer la session pendant la surveillance des fichiers.

Source : opensource.posit.co ↗
APPS

bslib ajoute des toolbars aux cartes et champs de saisie

bslib introduit les toolbars, des barres compactes de boutons et menus à intégrer dans les en-têtes de cartes ou les champs de saisie. Utile pour densifier un tableau de bord ou une interface de chat sans sacrifier l'espace utile à l'affichage.

Source : opensource.posit.co ↗

LE TIP R DU JOUR

Fusionner deux listes nommées sans perdre les doublons de clés

modifyList remplace proprement les valeurs d'une liste par celles d'une autre en se basant sur les noms, ce qui évite d'écrire une boucle pour fusionner des paramètres par défaut avec des overrides utilisateur.

CODE R
defauts <- list(couleur = "bleu", taille = 10, titre = "Graphique")
overrides <- list(taille = 14)

config <- modifyList(defauts, overrides)
str(config)

SOURCES

VOUS CODEZ EN R ?

Nous formons vos équipes à R, Shiny et l'IA, et industrialisons vos apps et modèles.

Parlons-en →
← Tout R Underground