1.10 有效过滤大数据

大数据带来的最大挑战可能并不是你要对它做的分析工作,而是你为分析做的一系列准备,而是提取、转换和加载(ETL)流程。ETL是指获取原始大数据流,然后对其进行解析,并产生可用输出数据集的过程。从数据源中提取(E)数据,然后经过各种聚合、函数、组合等转换(T),使其变为可用数据。最终,数据会被加载(L)到对它进行具体分析的环境中。这就是ETL流程。

让我们再回头看一下之前讨论过的那个比喻:通过一个吸管吸水。当你从吸管中吸水的时候,你并不关心喝到你嘴里的水是来自于哪一部分。然而对大数据来说,你对收集数据流的哪一部分却非常在乎。有必要事先探索和理解整个数据流,只有这样你才能过滤出你想要的那部分信息。这也解释了为什么驾驭大数据需要付出如此之多的前期努力。


从吸管中吸水

处理分析大数据和从吸管中吸水有很多相似之处。大部分数据都只是匆匆经过,就像大部分的水经过一样。目标是当数据经过的时候,从中吸取出那些需要的部分,而不是尝试把它全部喝下去。专注于大数据中的重要部分,可以使得处理数据更容易,并有精力去做真正重要的事情。


当大数据流开始到达的时候,分析流程要求前端的过滤器先滤除掉一部分数据。在数据被处理的过程中,还会有其他的过滤器。例如,在处理网络日志的时候,通常需要先过滤掉与浏览器版本或操作系统相关的信息。除非为了某些特殊的操作原因,这些数据将很少被用到。在流程后期,数据可能被过滤到只剩下某些由于业务需要而待检查的特定页面和用户操作。

复杂的规则和每个阶段被滤除和保留的数据量会根据具体的数据源和业务挑战有所不同。早期处理大数据的加载流程和过滤器是非常关键的。如果它们没有被正确地使用,分析将很难成功。传统的结构化数据不需要在这些方面花多大功夫,因为它们都已被事先指定、理解并标准化。对于大数据,在很多情况下都有必要将其指定、理解并标准化,并成为分析流程的一部分。