最快及;绘制超过200万行平面文件数据图表的最灵活方法?

我正在收集平面文件中的一些系统数据,其格式如下:

YYYY-MM-DD-HH24:MI:SS DD1 DD2 DD3 DD4

其中,DD1-DD4是四项数据。
该文件的一个示例如下:

2011-02-01-13:29:53 16 8 7 68
2011-02-01-13:29:58 13 8 6 110
2011-02-01-13:30:03 26 25 1 109
2011-02-01-13:30:08 13 12 1 31
2011-02-01-13:30:14 192 170 22 34
2011-02-01-13:30:19 16 16 0 10
2011-02-01-13:30:24 137 61 76 9
2011-02-01-13:30:29 452 167 286 42
2011-02-01-13:30:34 471 177 295 11
2011-02-01-13:30:39 502 192 309 10

该文件超过200万行,每五秒钟有一个数据点

我需要绘制这些数据的图表,以便能够从中获得意义

我尝试过的

目前,我已经用各种unix工具(awk、sed等)尝试了gnuplot和rrdtool。这两种方法都有效,但每次我想以不同的方式查看数据时,似乎都需要对数据进行大量的切分和重新切分。
我的直觉是,rrdtool是正确的选择,但目前我正努力让数据足够快地进入其中,部分原因是我必须将时间戳转换为Unix历元。我的理解是,如果我决定要一个新的聚合粒度,我必须重建rrd(这对于实时收集是有意义的,但不是像这样的回顾性加载)。这些东西让我觉得也许我用错了工具

将数据收集到平面文件是固定的—例如,我无法将收集直接导入rrdtool

我的问题

我想听听人们对最好的制图方法的意见。我有以下要求:

  1. 创建图形的速度应该尽可能快(不仅仅是渲染,还要设置为渲染)
  2. 它应该尽可能灵活——我需要用图表来处理
    找出数据的最佳粒度(5秒可能太细粒度)
  3. 必要时,它应能够聚合(最大值/平均值/等)
  4. 它应该是可重复的和新的数据文件,因为他们进来
  5. 理想情况下,我希望能够覆盖DD1与DD2,或上周DD1与本周DD1
  6. Unix或Windows,无所谓。更喜欢*nix:-)

有什么建议吗

这是一个非常好的问题。我很高兴看到一些R的人加入进来。我也认为R是这项工作的合适工具,尽管它是我的主要工具,所以对我来说一切都有点像钉子

要应对这一挑战,需要几个R概念。在我看来,您需要以下内容(参考资料):

  1. 将数据导入R。(R导入导出指南)
  2. 将数据放入适当的时间序列结构中。(XTS小插曲PDF)
  3. 有点阴谋。(Quick-R图形介绍)

下面是使用2mm点的示例代码。如果你注意到了,我并没有说明所有2mm点的绘制。它的速度很慢,信息量也不大。但这应该会给你一些开始的想法。如果你真的决定跳进兔子洞的话,请随时回答更具体的问题

需要(xts)
要求(润滑)
##建立一些示例数据
数据长度<-2e6
开始时间<-ymd_hms(“2011-02-01-13-29-53”)
一拳几秒钟<-1:数据长度
日期<-开始时间+拳头秒
DD1<-rnorm(数据长度)
DD2<-DD1+rnorm(数据长度,0,.1)
DD3<-rnorm(数据长度,10,2)
DD4<-rnorm(数据长度)
myXts<-xts(矩阵(c(DD1,DD2,DD3,DD4),ncol=4),日期)
##现在所有的数据都在myXts对象中,所以让我们做一些
##总结与形象化
##仅从数据中获取一天
##转换为data.frame以演示默认数据框打印
有一天<-数据帧(myXts[“2011-02-02”])
绘图(一天)

DD1和DD2之间的关系有点突飞猛进

箱线图(一天)

箱线图是统计图形的图表。你爱恨的情节。我们在这里的时候最好链接到这个。

每分钟查看每个变量的最大值
par(mfrow=c(4,1))35;#分割图形窗口
ep<-端点(myXts,’minutes’)
绘图(周期应用(myXts[,1],索引=ep,乐趣=最大值))
绘图(周期应用(myXts[,2],索引=ep,乐趣=最大值))
绘图(周期应用(myXts[,3],索引=ep,乐趣=最大值))
绘图(周期应用(myXts[,4],索引=ep,乐趣=最大值))

即使以一分钟的分辨率,我也不确定这是否有用。应该是子集。

发表评论