Отправка — Получение — Очистка
Вы уже неоднократно использовали dbGetQuery(). Это виртуальная функция из пакета DBI, которая на практике реализована пакетом RMySQL. За кулисами выполняются следующие шаги:
- Отправка указанного запроса с помощью
dbSendQuery(); - Получение результата выполнения запроса к базе данных с помощью
dbFetch(); - Очистка результата с помощью
dbClearResult().
На этот раз откажемся от dbGetQuery() и реализуем шаги выше вручную. Это немного многословно, зато даёт возможность получать результат запроса по частям, а не весь сразу. Для этого достаточно указать аргумент n внутри dbFetch().
Это упражнение является частью курса
Промежуточный уровень: импорт данных в R
Инструкции к упражнению
- Изучите уже написанный вызов
dbSendQuery(). Он выбирает комментарии пользователей с идентификатором больше 4. - Вызовите
dbFetch()дважды. В первом вызове импортируйте только две записи из результата запроса, задав аргументnравным2. Во втором вызове импортируйте все оставшиеся записи (не указывайтеn). В обоих случаях просто выведите полученные таблицы данных. - Очистите
resс помощьюdbClearResult().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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