惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Cyberwarzone
Cyberwarzone
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX
博客园_首页
博客园 - 聂微东
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
T
Tenable Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
A
About on SuperTechFans
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
D
DataBreaches.Net
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
D
Docker
P
Proofpoint News Feed

博客园 - lae

[转]Web开发者必备的12款超赞jQuery插件 NOSql数据库特性对比 NHibernate3新特性初尝 - lae - 博客园 微软回答“关于数据的10个问题” SubSonic 3.0新特性 System.Data.OracleClient调用带blob等大字段类型参数的存储过程 SubSonic入门(下) SubSonic入门(上) SubSonic的controller类的FetchByID()错误解决办法 - lae - 博客园 ASP.NET中文版开发建议 - lae - 博客园 spl工作在remoting方式下的问题总结 - lae - 博客园 [转载]世界杯期间制定给女友或老婆的十二条准则 - lae - 博客园 sql server 2000关于日期的查询 - lae C# 2.0 杂项技术,以及C#语言的未来发展(选择自 shoutor 的 Blog ) C# 2.0 泛型编程(选择自 shoutor 的 Blog ) C# 2.0 匿名方法、迭代器(选择自 shoutor 的 Blog ) C# 2.0 局部类型、空属类型、静态类(选择自 shoutor 的 Blog) 关于在vs.net中的.htm里面添加连接,就会出现下载.ASPX文件的提示? Microsoft Enterprise Library June 2005--Data Access Application Block访问Oracle数据库(1)
[转]程序员应知: 海量数据如何分析
lae · 2010-12-04 · via 博客园 - lae

这个云计算热炒的时代,如果你没有处理过海量数据的话,你将不再是个合格的Coder。现在赶紧补补吧~

  前一阵子分析了一个将近1TB的数据群(gz文件,压缩10%)。因为第一次分析如此巨大的数据,没有经验,所以浪费了许多时间。下面是我整理的一些经验,方便后者。

  下载数据

  Q:怎么自动下载多个文件?

  这是我遇到的第一个问题。当数据量很大时,一般都会分成很多个文件存放。这时下载文件比较麻烦。

  A:用Wget命令。Windows下花费一点时间去下载安装。但之于手动下载,能省不少时间。

  我提供两种方式方式下载文件,

  a)用Wget的递归下载选项 “-r”。一般命令如下

  wget –r http://<下载数据的根目录>/ -o <下载记录文件名> -np

  因为递归下载没法控制进度,所以建议不一要次递归下载太多的文件

  b)用Bat+Wget,多次执行Wget。一般命令如下

  wget –r http://<下载数据的根目录分支1>/ -o <下载记录文件名> -np

  wget –r http://<下载数据的根目录分支2>/ -o <下载记录文件名> -np

  wget –r http://<下载数据的根目录分支3>/ -o <下载记录文件名> -np

  …… ……

  wget –r http://<下载数据的根目录分支N>/ -o <下载记录文件名> -np

  用Bat可以降低出错带来的影响。

  另外,Wget可以通过 –A 选项来指定希望下载的文件的后辍,通过 –P 选项来指定下载文件存放路径。更多命令,参见wget -h

  Q:这速度。。。什么时候才能下完?

  网速永远是个瓶颈

  A:如果下载服务很远的话,你应该考虑代理。wget设置代理的方式如下

  set http_proxy=http://<代理服务器>

  不要忘了多开几个进程,20个试试?

  打开文件

  Q:怎么打开文本文件

  这不是弱智问题。你用记事本打开一个100MB的文件试试

  A:LTF viewer

  Large Text File viewer, 打开速度会让你惊奇

  Q:怎么打开二进制文件

  A:Hex Editor Neo

  你可以通过下面方式来选择进制:

  右击数据区 => Display As => Hex|Decimal|Octal|Binary|Float|Double

  你可以通过下面方式来选择按多少字节显示:

  右击数据区 => Group By => Bytes|Words|Double|Quad

  编程语言

  当数据量很大时,选择语言要慎重了。因为不同语言有不同的特点,你要在编程时间和运行时间之间权衡。

  模型测试

  开始时,一般挑几个小的数据进行测试,获取第一份分析结果。这时当然希望能快速编程实现。脚本语言是一个很好的选择,比如Python。

  大量处理

  开始遍历处理所有数据时,用脚本语言来处理就不太合适了。因为脚本语言的运行时间不能让人接受。另外,还有内存使用,文件读写这些你都没法控制。不幸的是,很少语言会为你处理海量文件做优化。

  这时,C/C++是最好的选择。

  结果展示

  漫长的等待终于过去了,眼看就要出结果了。如果你还执着于陪伴你度过漫长等待的C/C++的话,你迟早会沮丧的。

  我尝试了很多方式之后,得出的结论是,让Matlab来接手C/C++。Matlab能轻而易举地展示大量数据。更重要的是Matlab支持读取二进制文件。

  filename = 'out.bin'; % binary file

  fid = fopen( filename );

  data = fread( fid, itemsNumber, '*uint32');

  fclose(fid); 

------------------------------

原文链接:http://publish.itpub.net/a2010/1203/1133/000001133931.shtml