在过去的几年中,您可能已经听说某个地方放弃了“数据湖”这个词。随着数据量呈指数级增长,流式数据已经取消,非结构化数据持续低于结构化数据,这个概念已经越来越受到重视。
但无论如何,数据湖是什么?这只是营销炒作?而且,一般来说,它与传统的数据仓库有什么不同呢?
了解传统的数据仓库
在您职业生涯的某个时候,您碰到过一个数据仓库,这个工具已经成为提取,转换和加载(ETL)过程的代名词。在高层次上,数据仓库以高度规范化的方式存储大量的结构化数据。它们要求在加载数据之前存在一个严格的,预定义的模式。(几乎总是一个星形或雪花模式)换句话说,数据仓库中的模式被定义为“正在写入”。ETL过程会尽职地发出错误报告,生成日志,并将错误记录发送到异常文件和表在以后的日子。
由于这种刚性以及它们的工作方式,数据仓库支持部分或增量ETL。换句话说(并且取决于问题的严重性),当出现错误时,组织可以加载或重新加载其数据仓库的一部分。
组织通常定期填充数据仓库。一般来说,数据刷新是通过定期的周期来进行的 - 比如说每天早晨的上午3点,员工不太可能访问数据和下游系统。员工第二天到达工作岗位,收集到新鲜的数据。
可以肯定的是,存储在传统数据仓库中的数据今天仍然很有价值。但是,组织及其领导者需要重新思考现代数据集成。考虑物联网及其成为可能的分析。车辆,农场设备,可穿戴设备,恒温器,甚至农作物上的传感器都会导致大量的数据不断流入。这是一个很好的选择,即使是一个工业强度的数据仓库也将面临这些新的数据流。
数据湖的崛起
在这个背景下,我们已经看到了数据湖的普及。请不要误解:它不是数据仓库或数据集市的同义词。是的,所有这些实体都存储数据,但是数据湖在以下方面有着根本的不同。正如David Loshin所写的:“数据湖的想法是提供原始格式的原始数据,直到需要时为止。”数据处于休眠状态,除非有人或某物需要它。
在访问数据湖时,用户确定:
- 他们需要的具体数据类型和来源。
- 他们需要多少钱
- 当他们需要它。
- 他们需要派生的分析类型。
所有这些都可能在数据仓库中吗?可能不会。即使可能,在一段时间内实现这些目标的可能性并不大,特别是在当今瞬息万变的环境中。除此之外,一个特定的模式几乎肯定不适合每一个业务需求。也就是说,这些数据最终可能会以某种方式实现,从而导致员工不断变化的目的。
一种不同的模式
出于这个原因,数据湖模式被定义为“正在读取”。换言之,数据湖仍然需要模式。但是,该架构不是预定义的。这是特设的。数据被用于计划或模式,因为用户将数据从存储位置中提取出来 - 而不是像数据流进去一样。数据湖保持数据处于未改变(自然)状态;它没有定义要求,除非用户查询数据。
正确使用时,数据湖为业务和技术用户提供查询更小,更相关和更灵活的数据集的能力。因此,查询时间可能会减少到数据集市,数据仓库或关系数据库中的一小部分。
组织将继续将“小”的数据与大的数据集成在一起,愚蠢的是灵魂相信一个应用程序 - 无论多么昂贵或强大 - 都能处理所有事情。
Phil Simon作者,演讲者和技术专家
数据湖增加了灵活性
数据湖强调数据的灵活性和可用性。因此,它可以为用户和下游应用程序提供无模式数据;也就是说,无论来源如何,都是类似于“自然”或原始格式的数据。
虽然陪审团仍然没有,但如果不是大多数数据湖应用程序不支持部分或增量加载。(这样,数据湖就不同于数据仓库)。组织不能将其数据的一部分加载或重新加载到数据湖中。它往往是全部或没有。
一个数据湖的比喻
如果你还在为数据湖的概念而苦苦挣扎,那么下面的比喻可能会澄清一些事情。把数据集市或数据仓库想象成一个充满瓶装水的仓库。这些案件不是一夜之间神奇地出现的。人和机器收集和净化水。包装完成后,才有人购买和饮用。
相比之下,把数据湖想象成一大堆天然水,只有当你渴死时才会喝水。如果你需要50加仑的水来扑灭火灾,你不需要买瓶装水,然后一个一个地把它们清空。这一切都准备好了。
按照这个比喻,数据湖中的“水”从许多地方流过:河流,支流和瀑布。也就是说,数据湖不仅仅拥有一种类型的水(即数据)。数据湖可以容纳所有类型的数据:结构化,半结构化和非结构化。但是请注意,用数据填充数据湖意味着它至少会损失一部分结构,而且你猜对了它的一些价值。为此,如果您只对结构化数据感兴趣,那么数据仓库仍然是您最好的选择。
在我看来,数据湖将在数据管理的未来占据越来越重要的位置。
两个数据湖学校
因为我们还处于早期阶段,所以今天对数据湖的看法是不一样的。高层次上有两个思想流派。一个小组认为数据湖不仅是重要的,而且对数据驱动的公司来说也是必不可少的。该小组了解当代数据仓库的局限性 - 主要是它们不是为了处理大量的非结构化数据而建立的。而且,“在写”和“在读”之间的区别不仅仅是语义问题。相反,后者有助于缩短响应时间,并延长分析时间。
这是一个观点,我碰巧认同它。公平的说,我们在这里还没有达成全行业的共识 - 远非如此。对数据湖的怀疑并不害羞。愤世嫉俗的人把数据湖看作是流行语或软件供应商的大肆宣传。而且,有些人认为数据湖是一个旧概念的新名称,对企业适用性有限。
除了围绕这个话题的合理混淆之外,很少有人会以一致的方式使用术语“数据湖”。一些人把任何数据准备,存储或发现环境称为数据湖。
与Hadoop和关系数据库保持一致
在概念化数据湖的需求时,或许最好考虑越来越多的组织正在采用的开源,分布式文件系统Hadoop。Hadoop的发展有很多原因,其中最重要的是它满足了关系数据库管理系统(RDBMS)无法解决的真正需求。公平的说,它的开源性,容错性和并行处理能力也是名列前茅。
RDBMS根本不是用来处理千兆字节或PB数据的非结构化数据。尝试将数以千计的照片,视频,推文,文章和电子邮件加载到传统的SQL服务器或Oracle数据库中,并运行报告或编写SQL语句。祝你好运。
数十年来,数据仓库已经非常好地处理了大量的结构化数据:员工名单,销售,交易等等。他们提供无数的商业智能和企业报告应用程序。然而,期望这些相同的数据仓库有效地处理不同的数据量,速度和类型是不合理的。
关于元数据的说明
数据湖依靠本体和元数据来加载数据。同样,方法也不尽相同。但一般而言,湖中的每个数据元素都会继承一个赋予大量元数据(标签)的唯一标识符。结论:数据湖在这里停留。
数据湖的光明前景
在我看来,数据湖将在数据管理的未来占据越来越重要的位置。组织将继续将“小”的数据与大的数据集成在一起,愚蠢的是灵魂相信一个应用程序 - 无论多么昂贵或强大 - 都能处理所有事情。
当出现业务问题时,用户将越来越需要比传统数据存储和报告中心能够提供的更快的答案。正确使用时,数据湖允许用户分析较小的数据集并快速回答关键问题。