1.7 大数据的结构

当你阅读大数据的相关文章时,你可能会遇到很多关于以下概念的讨论,数据如何被结构化、非结构化、半结构化,甚至多结构化。大数据通常被描述为非结构化的,而传统数据则是结构化的。然而它们之间的界限并不像这些标签所划分的那么清楚。让我们以非专家的视角来探讨这3种数据类型,更高深的技术细节超出了本书讨论的范畴。

绝大多数传统数据都是完全结构化的。这意味着传统数据源会以明确的、预先规范好所有细节的格式呈现。每时每刻所产生的新数据,都不会违背这些预先定义好的格式。对于股票交易,其交易信息的第一部分应该是格式为月份/日期/年份的时间信息,接下来的是12位账户数字,而下面紧跟的是由3到5位字母表示的股票代码等。每条信息事先都已很明确了,以规范好的格式和顺序给出,这使得它们很容易被处理。

对于非结构化的数据,你没有或几乎没有控制权,你所做的只能是接收它们。文本数据、视频数据、音频数据都属于这个范畴。每幅图像都是由独立像素通过特定的排列方式组合而成的,但是像素组合成图像的方式却可能千变万化、大相径庭。确实有很多这样完全非结构化的数据。然而,对于大部分数据来说,至少都是半结构化的。

半结构化的数据具有可被理解的逻辑流程和格式,但这些格式并不是用户友好的。有时,半结构化数据也被称为多结构化数据。在这类数据里,有价值的信息参杂在大量噪声和无用的数据中。理解和分析半结构化数据,要比理解和分析规范好文件格式的数据困难。要理解半结构化的数据,必须要有一套复杂的规则,在读到每条信息后,能够动态地决定随后的处理方法。

网络日志是半结构化数据的最好例子。当你看到网络日志时,你会觉得它们非常丑陋;但是,其中每一条信息都有其特定的用处。网络日志是否提供了对你有用的信息则是另外一回事。图1-1给出了一个原始网络日志的例子。

1.7 大数据的结构 - 图1

图1-1 原始网络日志的例子


你的大数据具有怎样的结构?

事实上,很多大数据源都是半结构化或多结构化的,而不是非结构化的。这些数据具有可被理解的逻辑流程,因此可以从它们中提取出用于分析的信息。处理这类数据不像处理传统结构化数据那么简单。要驾驭半结构化数据,需要花费很多时间,并且要努力才能找出处理它们的最好方法。


网络日志中的信息都有一定的逻辑,尽管第一眼看上去可能并不那么明显。日志中有不同的字段和分隔符,就像结构化的数据一样,其中也蕴含着价值。然而,这些元素并没有按照固定的方式紧密地联系在一起。点击一个网站所产生的日志文本比起一分钟前点击另一个网页产生的日志文本,可能更长,也可能更短。最后,一定要理解半结构化的数据都具有其内在的逻辑,在它的各部分之间建立联系是完全可能的。要做到这一点,需要比处理结构化数据付出更多的努力。

对分析专家来说,完全非结构化的数据要比半结构化数据更加恐怖。想要征服半结构化数据,他们可能需要付出一番努力,但是他们确实可以做到。分析专家们可以将半结构化数据重新组织得非常结构化,并将其运用到他们的分析流程中。然而,征服完全非结构化的数据要困难得多,即使企业已经征服了半结构化的数据,征服非结构化的数据对他们来说,仍将是一个巨大的挑战。