你可能听说过数据仓库,但现在又出现了一个较新的说法。如果你从事大数据相关工作,将来很可能会更多听到它:“数据湖”。
那么,它们究竟是什么?最好的理解方式,是将其与数据仓库进行比较,因为两者的区别很大程度上类似于把东西存放在仓库里和存放在湖里之间的区别。
在仓库中,所有东西都按既定方式归档和排序:产品放在容器里,容器放在货架上,货架排成行,依此类推。这正是传统数据仓库存储数据的方式。
在数据湖中,一切都只是被倾倒进去,没有任何结构。湖中的一个水分子与其他任何水分子并无二致,可以被移动到湖中的任何位置,并同样自在。
这意味着湖中的数据具有很大的敏捷性(这是近来越来越常用的另一个词),即可以根据要开展的工作,按需进行配置或重新配置。
数据湖以最原始的形式容纳数据:刚采集而来,未经处理或分析加工。
它采用所谓的对象存储,因为每一条数据都被视为一个对象,由数据本身、与之相关的元数据以及唯一标识符打包组成。
没有哪一条信息比其他信息“更高级”,因为它不像数据仓库那样是分层归档的系统,而基本上是一场自由混战,正如湖中的水分子那样自由存在。
这一术语据信最早由 Pentaho 首席技术官 James Dixon 于 2011 年使用。他并未发明这一概念,而是为谷歌和 Facebook 等公司正在采用的创新数据架构方案命了名。
这一名称很快便进入了营销材料。Pivotal 将其产品称为“业务数据湖”,Hortonworks 则将其纳入服务名称 Hortonworks Datalakes 之中。
随着越来越多的组织认识到,相较于严格的分层数据库,将数据存储于数据湖中所带来的敏捷性优势,这一做法预计未来会越来越流行。
例如,数据在数据库中的存储方式(即其“模式”)通常在数据战略设计的早期即已确定。而组织的需求和优先事项可能会随时间推移而改变。
一种理解方式是:无结构存储的数据,可以比先拆解既有结构再重新组装,更快地塑造成所需的任何形式。
另一个优势在于,数据可供组织内的任何人使用,并可根据每项工作的需要,通过不同的工具和界面进行分析与查询。
这还意味着,组织的全部数据都保存在同一处,而不是像通常情况那样,为各个部门或应用分别设立独立的数据存储。
这既带来了优势,也带来了劣势:一方面,只需管理一个存储库,使审计和合规工作更为简便;另一方面,如果把“所有鸡蛋放在同一个篮子里”,显然会带来安全隐患。
数据湖通常构建于 Hadoop 框架之上,因为其所包含的数据集规模“庞大”,需要分布式系统所提供的存储容量。
目前其中大部分仍停留在理论层面,因为真正准备好将全部数据迁入数据湖的组织寥寥无几。许多组织深陷“数据沼泽”之中:这是一团难以导航、陆地与水体混杂的乱局,其数据多年来以各种互不协调的方式被存放于其中。
当然,它也有批评者。有人认为名称本身就是个问题(我本人也倾向于认同),因为它暗示缺乏架构意识,而在设计新方案时,真正需要的是更审慎地考量数据架构。
但无论好坏,如果你从事大数据和商业智能工作,在不久的将来很可能会越来越多地听到这一术语。
你是准备好一头扎进数据湖,还是更愿意让数据安然停留在岸上?
本文与 Smart Data Collective合作发表。发布本文并不代表世界经济论坛认可其中观点。
如需紧跟 Agenda 的最新内容,请 订阅我们的每周电子通讯。
作者:Bernard Marr 是全球公认的大数据与分析领域专家。
图片:图中显示超级计算机背面的电线。REUTERS/Thomas Peter。

