【发布时间】:2020-03-10 01:52:47
【问题描述】:
我有一个代码 sn-p 从 MYSQL 数据库表中获取数据。我想继续每 3 秒刷新一次数据框。
library(RMySQL)
library(dbConnect)
library(tictoc)
mydb = dbConnect(MySQL(), user='root', password='password', dbname='test_data', host='localhost')
dbListTables(mydb)
rs = dbSendQuery(mydb, "select * from rawdata")
data = fetch(rs)
View(data)
是否有像“ReactiveFileReader”这样的 R 函数与数据库引擎一起使用?或者请您帮忙编写一个代码 sn-p 以每 3 秒多次运行此代码。谢谢
【问题讨论】:
-
也许在某个循环中添加一些
sleep?(不确定是否有 SQL 原生“计时器”) -
嘿@NelsonGon,你认为你可以帮助编写代码 sn-p 吗?
-
延迟? SQL Server:
waitfor delay '00:00:03'; select 1 as a;。 Postgres:select pg_sleep(3), 1 as a; MySQL:select sleep(3);. -
但也许最好在 R 中处理这个问题,比如
while (TRUE) { Sys.sleep(3); dat = dbGetQuery(mydb, "select * from rawdata"); do_something_with(dat); }。 (我在这里假设DBI,而不是我今天刚刚了解到的 8 岁以上的dbConnect:-) -
如果你想让它自动运行,对我来说假设没有人为交互,所以
View没有意义。一旦每隔几秒钟检索一次数据,您希望如何处理数据?另一个顺便说一句:这是一个 3 秒的暂停,不是每 3 秒检索一次。虽然差异可能是语义上的,但如果您需要严格的 3 秒间隔,那么您将需要更多的逻辑,即使那样您也可能会成为网络延迟的牺牲品。