大数据处理的数据从何而来?

图灵汇官网

前些日子,我和同事们讨论起我们用于大数据处理的数据来源。起初,我只是简单地说:“不管它来自哪里,反正它就在那里。”然而,这个问题其实很有探讨的价值。

在当今的数据技术时代,数据扮演着至关重要的角色。离开了数据,谈论大数据服务就如同无本之木。没有数据支撑的大数据平台就像一座空壳,无法真正发挥作用。[a]数据是所有数据分析、数据挖掘、大数据处理和AI算法的核心所在。[/a]

[a]当前大多数公司在进行大数据处理时,数据主要来源于设备采集、数据库、日志、爬虫等多种途径。[/a]而在学术研究或个人项目中,数据则可能来源于开源数据集或生成的假数据(即模拟数据)。

这一现象很容易理解。因为在企业中,数据通常是为了支持实际业务而收集的,因此数据大多源自真实的业务活动。而在个人或学术领域,则可以借助特定的开源数据集来进行相关研究。[a]接下来,我们将详细介绍企业在获取数据时常用的几种方法:[/a]

首先,设备采集。顾名思义,设备采集是指利用各类设备来收集数据。例如,在电力行业中,Scada系统通过终端电子设备收集电流和电压数据,这些数据会被实时记录并保存。此外,我们的手机也可能是某些应用的数据采集终端。比如,我们每天的运动步数可能会被支付宝或微信记录下来,这些操作也会被各类应用作为数据收集手段。

其次,从数据库导入。在大数据技术兴起之前,关系型数据库(RDBMS)是主要的数据分析与处理手段。很多企业的业务逻辑数据都存储在关系型数据库中。例如,电商平台上的交易记录、商品收藏记录等都会被记录在数据库中。尽管现在出现了Hive等大数据工具,但在实际运营中,业务数据依然主要存储在关系型数据库中,因为它们需要实时响应用户的操作。

那么,如何将业务数据库中的数据同步到大数据平台中呢?[a]通常我们会通过实时和离线采集数据的方式,将数据抽取到数据仓库中。[/a]然后进行后续的数据处理和分析。常用的数据库导入工具之一是Sqoop。Sqoop是一款由Apache开发的工具,用于在Hadoop和关系型数据库之间传输离线数据。它可以帮助实现关系型数据库与Hadoop集群之间的数据同步,充当二者之间的桥梁。

第三,日志导入。日志系统记录了系统运行的每一个状态信息,这些信息可以被视为业务或设备在虚拟世界中的行为痕迹。通过日志分析,可以深入了解业务的关键指标和设备的运行情况。除了传统的日志记录方式外,我们还会采用埋点的方式收集用户行为日志。埋点实际上是在前端页面上设置监控点,记录用户的所有行为,如鼠标移动、点击位置、文章停留时间、输入内容等。

将日志数据导入大数据环境也有多种解决方案。常见的方案包括ELK(Elasticsearch、Logstash、Kibana)搭建的日志采集、查询和可视化系统。此外,Flume + Kafka + Hive/Spark + Spark Streaming的组合也能实现日志的实时采集、离线分析和实时处理。

最后,爬虫。爬虫是一种模拟人类访问网站的程序,通过这种方式获取网站数据。例如,访问天气预报网站并获取温度数据。爬虫已经成为公司的重要战略资源,通过获取同行的数据并与自身数据对比,管理者可以更好地做出决策。爬虫也是获取数据的一种非常有效且常见的方式。

综上所述,数据采集是数据分析和数据挖掘工作的第一步。数据采集的准确性决定了数据分析报告是否有实用价值。只有当数据采集具备科学性、客观性和严密的逻辑性时,基于这些数据得出的结论才具有现实意义。

本文来源: 图灵汇 文章作者: 向国龙