Envoyer - Récupérer - Effacer
Vous avez utilisé dbGetQuery() à plusieurs reprises. Il s'agit d'une fonction virtuelle du paquet DBI, mais elle est en fait implémentée par le paquet RMySQL. En coulisse, les étapes suivantes sont effectuées :
- Envoi de la requête spécifiée avec
dbSendQuery(); - Récupération du résultat de l'exécution de la requête sur la base de données avec
dbFetch(); - Effacement du résultat avec
dbClearResult().
Cette fois, n'utilisons pas dbGetQuery() et mettons plutôt en œuvre les étapes ci‑dessus. C'est fastidieux à écrire, mais cela vous permet de récupérer le résultat de la requête par blocs plutôt que tout d'un coup. Vous pouvez le faire en précisant l'argument n dans dbFetch().
Cette activité fait partie du cours
Importation de données intermédiaire avec R
Instructions de l’exercice
- Examinez l'appel à
dbSendQuery()déjà codé pour vous. Il sélectionne les commentaires des utilisateurs dont l'identifiant est supérieur à 4. - Utilisez
dbFetch()deux fois. Lors du premier appel, importez seulement deux enregistrements du Résultat de la requête en définissant l'argumentnà2. Lors du second appel, importez toutes les requêtes restantes (ne précisez pasn). Dans les deux appels, affichez simplement les data frames résultants. - Effacez
resavecdbClearResult().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Connect to the database
library(DBI)
con <- dbConnect(RMySQL::MySQL(),
dbname = "tweater",
host = "courses.csrrinzqubik.us-east-1.rds.amazonaws.com",
port = 3306,
user = "student",
password = "datacamp")
# Send query to the database
res <- dbSendQuery(con, "SELECT * FROM comments WHERE user_id > 4")
# Use dbFetch() twice
# Clear res