2016-09-24 3 views
0

Я храню данные аналитики в базе данных MySQL в виде table with a timestamp and some data и хочу сбрасывать (например, группировать его в пределах временного диапазона) эти данные (путем подсчета количества записей) для отображения на консоль администратора, и мне было интересно, если это будет более эффективным для выбора данных и декодирует его с R сценарием, или если было бы лучше использоватьДанные аналитики понижающей дискретизации в MySQL или в R

GROUP BY UNIX_TIMESTAMP(timestamp) DIV <some time> 

и сделать это на уровне базы данных. Любые другие советы также будут оценены.

+2

Это, как правило, более эффективно осуществляется в базе данных. Возврат всех данных приводит к накладным расходам для базы данных (возврат большого количества данных), транспортному уровню (транспортировка большого количества данных) и R (управление множеством данных). –

+0

Не имеет ли 'dplyr' back-end mysql, который делает это для вас? – Jeroen

ответ

0

Если вы можете использовать dplyr, вы можете сделать это с чем-то вроде следующего:

library(dplyr) 

yay <- 
    # Specify username and password in my.cnf 
    src_mysql(host = "blah.com") %>% 
    tbl("some_table") %>% 
    # You will need to compute a grouping variable 
    mutate(group = unix_timestamp(timestamp)) %>% 
    group_by(group) %>% 
    # This will return the number of rows in each group 
    summarise(n = n()) %>% 
    # This will execute the query and return a data.frame 
    collect 
Смежные вопросы