数据采集,又称“数据获取”,是数据分析的入口,也是数据分析过程中相当重要的一个环节,它通过各种技术手段把外部各种数据源产生的数据实时或非实时地采集并加以利用。
1.传感器数据
传感器是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。在工作现场,我们会安装很多的各种类型的传感器,如压力传感器、温度传感器、流量传感器、声音传感器、电参数传感器等等。
传感器对环境的适应能力很强,可以应对各种恶劣的工作环境。在日常生活中,如温度计、麦克风、DV录像、手机拍照功能等都属于传感器数据采集的一部分,支持图片、音频、视频等文件或附件的采集工作。
2.互联网数据
互联网数据的采集通常是借助于网络爬虫来完成的。所谓“网络爬虫”,就是一个在网上到处或定向抓取网页数据的程序。抓取网页的一般方法是,定义一个入口页面,然后一般一个页面中会包含指向其他页面的URL,于是从当前页面获取到这些网址加入到爬虫的抓取队列中,然后进入到新页面后再递归地进行上述的操作。爬虫数据采集方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。
3.日志文件
许多公司的业务平台每天都会产生大量的日志文件。日志文件数据一般由数据源系统产生,用于记录数据源的执行的各种操作活动,比如网络监控的流量管理、金融应用的股票记账和Web服务器记录的用户访问行为。对于这些日志信息,我们可以得到出很多有价值的数据。通过对这些日志信息进行采集,然后进行数据分析,就可以从公司业务平台日志数据中挖掘得到具有潜在价值的信息,为公司决策和公司后台服务器平台性能评估提供可靠的数据保证。系统日志采集系统做的事情就是收集日志数据提供离线和在线的实时分析使用。很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如Hadoop的Chukwa,Cloudera的Flume,Facebook的Scribe等,这些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。
4.企业业务系统数据
一些企业会使用传统的关系型数据库MySQL和Oracle等来存储业务系统数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的存储。企业每时每刻产生的业务数据,以数据库一行记录形式被直接写入到数据库中。企业可以借助于ETL(Extract-Transform-Load)工具,把分散在企业不同位置的业务系统的数据,抽取、转换、加载到企业数据仓库中,以供后续的商务智能分析使用(如图所示)。通过采集不同业务系统的数据并统一保存到一个数据仓库中,就可以为分散在企业不同地方的商务数据提供一个统一的视图,满足企业的各种商务决策分析需求。