1.2.1 大数据采集

大数据的来源多种多样,如何获取这些规模大、产生速度快的大数据,并且能够使这些多源异构的大数据得以协同工作,从而有效地支撑大数据分析等应用,是大数据采集阶段的工作,也是大数据的核心技术之一。

大数据采集涉及以下方面[4]

(1)数据从无到有的过程(Web服务器打印的日志、自定义采集的日志等)。每天定时去数据库抓取数据快照,这可利用各种工具来实现,如maxComputer,它是阿里巴巴提供的一项大数据处理服务,是一种快速、完全托管的TB/PB级数据仓库解决方案。编写数据处理脚本,设置任务执行时间和任务执行条件,项目就可以按照要求,每天产生需要的数据。

(2)通过使用Flume等工具把数据采集到指定位置。前台数据埋点,要根据业务需求来设置,也通过流数据传输到数据仓库。实时接口调用数据采集,可采用LogHub、DataHub、流数据处理技术。DataHub具有高可用、低延迟、高可扩展、高吞吐的特点。通过在平台上汇总和分析采集的数据,最终可形成一套完整的数据系统。原始数据采集后必须将其传送到数据存储基础设施(如数据中心)等待进一步处理。

整体的数据采集方案需要根据实际解决方案进行具体设计。以基于数据库的Web应用为例,数据采集为利用SDK把所有后台服务调用及接口调用情况记录下来,开辟线程池,把记录下来的数据不停地往数据中心、日志中心存储,前提是设置好接收数据的数据中心表结构。

在数据采集过程中,数据源会影响大数据质量的真实性、完整性、一致性、准确性和安全性。对于Web数据,多采用网络爬虫方式进行收集,可根据需要对爬虫软件进行自定义设置。目前比较流行的网络数据采集软件有八爪鱼、集搜客、神箭手等。