Надіслати – Отримати – Очистити
Ви вже не раз використовували dbGetQuery(). Це віртуальна функція з пакета DBI, але фактично вона реалізована в пакеті RMySQL. Під капотом виконується така послідовність кроків:
- Надсилання вказаного запиту через
dbSendQuery(); - Отримання результату виконання запиту в базі даних за допомогою
dbFetch(); - Очищення результату через
dbClearResult().
Цього разу не використовуймо dbGetQuery(), а реалізуймо кроки вище. Писати так більше, зате це дає змогу отримувати результат запиту частинами, а не весь одразу. Зробити це можна, задавши аргумент n у dbFetch().
Ця вправа є частиною курсу
Середній рівень імпорту даних у R
Інструкції до вправи
- Перегляньте виклик
dbSendQuery(), який уже підготовлено для вас. Він вибирає коментарі для користувачів з id, що перевищує 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