社会方方面面都在进入数字化时代,大数据相关的技术支撑体系,其作用不可小觑。数据仓库和数据湖都是大数据底座的概念,经常是我们讨论技术方案的热点。
表面看,两者都是作为大数据存储的方案,但在功能、目的和体系结构方面存在根本差异。
本文主要探讨一下这两个概念存在的几个特点以及区别。
1.数据存储类别
在数据多样性方面,数据湖可以轻松地容纳半结构化、结构化和非结构化等不同类型的数据,这些数据都可以是原生格式,没有任何预定义的数据模型。例如:视频、文档、媒体流、表格数据等。
相反,数据仓库存储的内容为特定用例正确建模和组织的结构化数据。结构化数据一般是预定义好的数据模型,适用于传统关系数据库的数据。
从数据多样化角度看,数据湖更容易访问。
2.处理方法
数据湖遵循schema-on-read的数据处理方法。因此,可以在数据湖上摄取到原始数据,而无需结构化或建模。用户可以直接分析特定结构的数据,具有更好的敏捷性和灵活性。
然而,对于数据仓库,在数据提取之前,就需要预先对数据建模,然后再执行 schema-on-write 方法。要求在将数据加载到仓库之前,按照预定义的方案对数据进行格式化和结构化。
3.存储成本
在数据成本方面,数据湖提供了一种更加具有成本效益的存储解决方案,因为它通常可以利用开源技术实现。即使组织需要处理大量数据,分布式的存储基础架构的使用也可以降低总体存储成本。
与之相比,数据仓库由于其专有技术和结构化性质,其存储成本更高。仓库中采用的索引和模式机制会导致存储需求以及其他费用的增加。
4.敏捷性
数据湖因为没有刚性的数据结构,因此更具备灵活性。数据科学家和开发人员可以无缝地配置、查询或建模,从而实现快速实验。
相反,数据仓库的修改比较耗时。数据模型或模式的任何更改都需要在不同的业务流程中进行大量的协调,耗时耗力。
5.安全性
随着大数据技术的发展,对安全性要求也越来越高。一些增强的安全技术包括访问控制、合规框架和加密,可以提高数据湖的安全性,降低未经授权访问的风险。
数据仓库技术已经有几十年的历史,因此具有比较成熟的安全功能和强大的访问控制机制。
相比之下,数据湖中不断发展的安全协议使其在安全性方面更加强大。
6.可访问性
由于数据湖支持非结构化和原始性质的数据,拥有更多可以有效利用的专业工具和技能,提供了更大的勘探能力和灵活性,可以满足高级分析专业人员和数据科学家的需求。
而数据仓库主要针对的是整个组织的分析用户和商业智能。
7.成熟度
数据仓库总体比数据湖的概念更早,更成熟,但随着大数据技术的应用落地,数据湖也在不断地进行细化、进化。可以预期其成熟度水平会随着时间的推移而提高。在未来几年,它将成为大数据应用方面的一项突出技术。
虽然数据仓库是一种成熟的技术,但该技术也面临的主要问题在于原始数据的处理。
8.应用场景
数据湖是处理来自不同来源的不同类型数据以及进行机器学习和数据分析的好方案。可以使用数据湖存储大量多源异构数据,并进行分析,有利于预测模型、实时分析和数据发掘。
数据仓库可以作为集中历史数据的方案,是结构化数据分析、预定义查询和报告的理想选择。
9.可集成性
数据湖往往需要强大的交互能力来处理、分析和接收来自不同来源的数据。数据管道和集成框架通常用于简化数据湖环境中的抽取、转换、消费和摄取。
数据仓库可以与传统的报表平台、商业智能(BI)和数据集成框架无缝集成。这些应用程序旨在支持外部应用程序和系统,从而实现整个组织的数据协作和共享。
10.互补性
数据湖通过以原始格式存储来自不同数据源的数据来补充数据仓库。包括非结构化、半结构化和结构化数据。提供了经济高效且可扩展的解决方案,可通过实时分析、预测建模和机器学习等功能来分析大量数据。
另一方面,数据仓库通常是一个互补的事务系统,因为它为统计报表和结构化数据分析提供了解决方案。
总之
即使数据仓库和数据湖在大数据应用上有着许多共同的目标,但在处理方法、安全性、敏捷性、成本、架构、集成等方面存在一定的差异。因此,选择哪一种数据存储方案,需要先理解它们的优势和局限。