使用R/python和SSD进行数据分析

sig*_*ker 12 python r solid-state-drive data-analysis

有没有人有使用r/python与存储在固态硬盘中的数据的经验.如果您主要进行读取操作,理论上这应该会显着改善大型数据集的加载时间.我想知道这是否属实,是否值得投资SSD以提高数据密集型应用程序的IO速率.

Jor*_*eys 19

我的2美分:SSD只有在你的应用程序存储在它上面时才会得到回报,而不是你的数据.即便如此,只有在需要大量磁盘访问时才需要,例如操作系统.人们指向你进行剖析是正确的.我可以告诉你,没有这样做,几乎所有的阅读时间都是处理,而不是读取磁盘.

考虑数据格式而不是存储位置,可以获得更多回报.通过使用正确的应用程序和正确的格式,可以获得读取数据的加速.就像使用R的内部格式而不是使用文本文件一样.把它作为一个惊叹号:永远不要继续使用文本文件.如果您需要速度,请转二进制.

由于开销,如果您有SSD或普通磁盘来读取数据,通常没有区别.我有两个,并使用普通磁盘的所有数据.我有时会在大数据集周围玩耍,从未遇到过问题.当然,如果我必须非常沉重,我只需要在我们的服务器上工作.

因此,当我们谈论数据演出时,它可能会有所不同,但即便如此,我仍然非常怀疑磁盘访问是限制因素.除非你不断读写磁盘,否则我会说你应该再开始思考你究竟在做什么.而不是将钱花在SDD驱动器上,额外的内存可能是更好的选择.或者只是说服老板给你一个不错的计算服务器.

使用虚假数据帧的定时实验,以及在SSD磁盘上与普通磁盘上以文本格式对二进制格式进行读写.

> tt <- 100
> longtext <- paste(rep("dqsdgfmqslkfdjiehsmlsdfkjqsefr",1000),collapse="")
> test <- data.frame(
+     X1=rep(letters,tt),
+     X2=rep(1:26,tt),
+     X3=rep(longtext,26*tt)
+ )

> SSD <- "C:/Temp" # My ssd disk with my 2 operating systems on it.
> normal <- "F:/Temp" # My normal disk, I use for data

> # Write text 
> system.time(write.table(test,file=paste(SSD,"test.txt",sep="/")))
   user  system elapsed 
   5.66    0.50    6.24 

> system.time(write.table(test,file=paste(normal,"test.txt",sep="/")))
   user  system elapsed 
   5.68    0.39    6.08 

> # Write binary
> system.time(save(test,file=paste(SSD,"test.RData",sep="/")))
   user  system elapsed 
      0       0       0 

> system.time(save(test,file=paste(normal,"test.RData",sep="/")))
   user  system elapsed 
      0       0       0 

> # Read text 
> system.time(read.table(file=paste(SSD,"test.txt",sep="/"),header=T))
   user  system elapsed 
   8.57    0.05    8.61 

> system.time(read.table(file=paste(normal,"test.txt",sep="/"),header=T))
   user  system elapsed 
   8.53    0.09    8.63 

> # Read binary
> system.time(load(file=paste(SSD,"test.RData",sep="/")))
   user  system elapsed 
      0       0       0 

> system.time(load(file=paste(normal,"test.RData",sep="/")))
   user  system elapsed 
      0       0       0 
Run Code Online (Sandbox Code Playgroud)


Joh*_*ohn 6

http://www.codinghorror.com/blog/2010/09/revisiting-solid-state-hard-drives.html 有一篇关于SSD的好文章,评论提供了很多见解.

取决于您正在进行的分析类型,无论是CPU绑定还是IO绑定.处理回归建模的个人经验告诉我,以前更常见的情况是,SSD不会有太多用处.

简而言之,最好先分析您的应用程序.