为什么数据湖泊实际上是一个数据沼泽?

  • 2016-04-22 15:45:12
  • 大数据

最近我经常重复地听到一个流行的说法:我计划将我所有的数据都放到数据湖泊中,从而使我的员工可以在这些潜在的信息宝藏中进行数据分析。这个观点也被几个销售Hadoop生态系统产品的厂商广泛吹捧。但是不幸的是,它有一个严重的缺陷,我在这篇文章中使用我一个麻省理工同事的数据(大部分是假设性的数据)来举个例子。

假设两个非常简单的数据源,包含了员工的数据。第一个数据源有如下形式的记录:

员工(姓名,薪水,爱好,年龄,城市,州份)

然而,第二个数据源包含以下安排的数据:

人(人员ID,收入,地址,生日,出生年份,喜好)

第一个数据集的记录可能如下:

(Sam Madden, $4000, {bike, dogs}, 36, Cambridge, Mass)

第二个数据集的记录可能如下:

(Samuel E. Madden, $5000, Newton Ma., October 4, 1985, bicycling)

第一个合理步骤是将这些记录整合到一个单独的地方,以便于后续数据处理。这个摄取步骤是包含以下组件的数据管理流程的第一阶段:

摄取:数据源必须如上所述被组装到一起

数据转换:字段“地址”必须分解为“城市”和“州份”组成部分。类似的,“年龄”也必须从"出生年份“和”生日“计算出来。

模式整合:实际上人员ID和姓名的含义是否相同,这个需要确认。类似的,这样声明不仅适用于记录的其它属性,而且也包括在数据转换的字段中。

数据清洗:Sam Madden的两个薪水数字不一致。其中一个或者两个都不准确。 但是,也可能两个都正确,例如其中一个包括咨询费用在内的所有薪水,而另一个显示它的工资报税表。类似地,Sam可能只有一个年龄。因此,其中一个(或者所有)数据源的信息是不正确的。

实体合并:必须先确定这两个Sam Madden的记录是同一个人还是两个不同的人。然后,这两个记录必须合并为统一的记录。在这个过程中。关于Sam的爱好需要作出决定(通常叫做合并规则)。例如,"bike" 和 "bicycling"是不是同一样东西。

这几个解释可以马上明白。数据管理是一个迭代的过程。实施几个步骤以后,它可以意识到需要返回并重复其他一些步骤。例如,实体合并可以揭示关于Sam薪水和年龄的问题。因此,需要批准进一步的数据清洗。实际上,数据管理是一个部分可回溯流程步骤的工作流程。

第二,有些数据管理步骤需要人工参与。期待自动化的系统完成所有工作是不合理的。而且,在许多环境中也期待提供必须的人工判断。例如,整合基因学的数据需要一个资深的生物学家,并且不能执行常规的人群来源技术。

第三,真实世界的数据通常都是脏数据。坊间证据显示超过10%的防火墙内的企业数据是不正确的。而且,一旦它摄取的数据源是有错误的,任何人认为他的麻烦都结束了。因此,数据摄取后的数据转换、模式整合、数据清洗以及实体合并将会非常有价值。

实际上,在第一个步骤中提到的数据摄取相对于其他四个而言显得不太重要。而且,数据摄取到一个没有净化的数据沼泽之中,仅是数据整合冰山的一角。随后,将一个数据沼泽变为数据湖泊的转换过程中还需要付出巨大的努力。

这个故事的寓意在于"不要低估数据管理的难度"。如果你这样做,你会重新回到一个陈旧的道路中,也就是企业有1990年代关注数据仓库的经验一样。当时流行的策略是将面向客户的数据整合到一个数据仓库中。业务分析师将使用结果来决定客户行为和作出更好的销售决策。当时仓数据库项目由于低估数据管理问题而平均超支2倍以及延时2倍。不要让历史的错误再次重演。




作者:Michael Stonebraker

翻译:新炬网络梁铭图

整理:DAMS

架构师联盟微信号:jiagoushi2015

加入架构师联盟

加入架构师联盟

友情连接

新炬网络

推荐阅读