一文读懂选择数据湖还是数据仓库

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 今天,每秒都在生成 TB 和 PB 的数据,为这些海量数据集寻找存储解决方案至关重要。

今天,每秒都在生成 TB 和 PB 的数据,为这些海量数据集寻找存储解决方案至关重要。复杂的机器和技术现在收集了令人难以置信的广泛数据——每天超过 2.5 万亿字节!— 来自设备传感器、日志、用户、消费者和其他地方。数据存储并不像以前看起来那么简单。在管理和存储数据时,数据管理者需要考虑使用数据湖或数据仓库作为存储库。

随着数据量、速度和种类的增加,选择合适的数据平台来管理数据从未像现在这样重要。它应该是迄今为止满足我们需求的古老数据仓库,还是应该是承诺支持任何类型工作负载的任何类型数据的数据湖?

在这里,我们深入探讨了这两个平台。

数据湖

数据湖是一个中央存储库,可以大量存储所有数据(结构化和非结构化数据)。数据通常以原始格式存储,无需首先进行处理或结构化。在这种情况下,它可以针对手头的目的进行优化和处理,无论是交互式分析、下游机器学习或分析应用程序的仪表板。

可以这样想,数据湖就像一个大水体,比如说一个处于自然状态的湖。数据湖是使用来自各种来源的数据流创建的,然后,多个用户可以来到湖中对其进行检查并取样。数据湖的美妙之处在于每个人都在查看和操作相同的数据。消除多个数据源并在数据湖中拥有一个可引用的“黄金”数据集来保障组织内的一致性,因为用于访问组织中智能的任何其他下游存储库或技术都将同步。这很关键。使用这种集中的数据源,就不会从不同的孤岛中提取数据;组织中的每个人都有一个单一的事实来源。

该模式为公司的分析生命周期提供了近乎无限的能力:

摄取:数据以任何原始格式到达并存储以供将来分析或灾难恢复。公司通常会根据隐私、生产访问以及将利用传入信息的团队来划分多个数据湖。

存储:数据湖允许企业管理和组织几乎无限量的信息。云对象存储以较低的成本为大数据计算提供高可用性访问。

流程:借助云计算,基础设施现在只需一个 API 调用即可。这是从数据湖中的原始状态获取数据并格式化以与其他信息一起使用的时候。这些数据也经常使用高级算法进行聚合、合并或分析。然后将数据推回数据湖以供商业智能或其他应用程序存储和进一步使用。

消费:当我们谈论自助服务数据湖时,消费通常是生命周期中的阶段。此时,数据可供业务和客户根据需要进行分析。根据复杂用例的类型,最终用户还可以间接或直接以预测(预测天气、财务、运动表现等)或感知分析(推荐引擎、欺诈检测、基因组测序、 ETC)。

数据湖支持原生流,数据流在其中被处理并在到达时可用于分析。数据管道在从数据流接收数据时转换数据,并触发分析所需的计算。数据湖的原生流式传输特性使其非常适合流式分析。

数据仓库

数据仓库发明于1980 年底,专为业务应用程序生成的高度结构化数据而设计。它将组织的所有数据集中在一起并以结构化方式存储。它通常用于连接和分析来自异构来源的数据。

数据仓库架构依赖于数据结构来支持高性能的 SQL(结构化查询语言)操作。数据仓库是专门为基于 SQL 的访问而构建和优化的,以支持商业智能,但为流分析和机器学习提供有限的功能。它们受到 ETL 要求的限制,需要在存储数据之前对其进行预处理。数据仓库在数据用于分析之前需要顺序 ETL摄取和转换数据,因此它们对于流式分析效率低下。一些数据仓库支持“微批处理”以经常以小增量收集数据。它支持顺序 ETL 操作,其中数据以瀑布模型从原始数据格式流向完全转换的集合,并针对快速性能进行了优化。

数据仓库以专有格式存储数据。一旦数据存储在数据仓库中,对该数据的访问仅限于 SQL 和数据仓库提供的自定义驱动程序。一些较新的数据仓库支持半结构化数据,例如 JSON、Parquet 和 XML 文件;与结构化数据集相比,它们对此类数据集的支持有限且性能下降。数据仓库不能完全支持存储非结构化数据。

数据湖和数据仓库之间的区别

数据仓库和商业智能工具支持历史数据的报告和分析,而数据湖支持利用数据进行机器学习、预测和实时分析的新用例。

5e3269eb6efe7a45345fcc0ba23fff20.png

虽然一些数据仓库扩展了基于 SQL 的访问以提供机器学习功能,但它们不提供原生支持来运行广泛可用的程序化数据处理框架,例如 Apache Spark、Tensorflow 等。

相比之下,数据湖是机器学习用例的理想选择。它们不仅提供基于 SQL 的数据访问,还通过 Python、Scala、Java 等语言为 Apache Spark 和 Tensorflow 等编程分布式数据处理框架提供原生支持。

数据仓库需要在数据用于分析之前顺序 ETL摄取和转换数据,因此它们对于流式分析效率低下。一些数据仓库支持“微批处理”以经常以小增量收集数据。这种流到批处理的转换增加了数据到达与用于分析之间的时间,使得数据仓库不适用于多种形式的流分析。

d620a321e387640d29039298251308c9.png

数据湖支持本地流式传输,其中数据流在到达时被处理并可供分析。数据管道在从数据流接收数据时转换数据,并触发分析所需的计算。数据湖的原生流式传输特性使其非常适合流式分析。

数据仓库支持顺序 ETL 操作,其中数据以瀑布模型从原始数据格式流向完全转换的集合,并针对快速性能进行了优化。

相比之下,对于需要持续数据工程的用例,数据湖异常强大。在数据湖中,ETL 的瀑布方法被迭代和连续的数据工程所取代。可以通过 SQL 和编程接口迭代地访问和转换数据湖中的原始数据,以满足用例不断变化的需求。这种对持续数据工程的支持对于交互式分析和机器学习至关重要。

揭穿关于数据湖和数据仓库的三大神话

让我们解决一些关于两种流行的数据存储类型的常见误解:

误区一:只需要数据湖或数据仓库中的一个

如今,经常听到人们谈论数据湖和数据仓库,好像企业必须选择其中一个。但现实情况是,数据湖和数据仓库服务于不同的目的。虽然两者都提供数据存储,但它们使用不同的结构,支持不同的格式,并针对不同的用途进行了优化。通常,公司可能会从使用数据仓库和数据湖中受益。

数据仓库最适合希望为商业智能分析操作系统数据的企业。数据仓库在这方面工作得很好,因为存储的数据是结构化、清理和准备分析的。同时,数据湖允许企业以任何格式存储数据以用于几乎任何用途,包括机器学习 (ML) 模型和大数据分析。

误区 2:数据湖是流行趋势,数据仓库不是

人工智能 (AI) 和 ML 代表了一些增长最快的云工作负载,组织越来越多地转向数据湖来帮助确保这些项目的成功。由于数据湖允许存储几乎任何类型的数据(结构化和非结构化)而无需事先准备或清理,因此组织能够保留尽可能多的潜在价值以供将来使用,未指定使用。此设置非常适合更复杂的工作负载,例如尚未确定具体数据类型和用途的机器学习模型。

数据仓库可能是这两种选择中更为人所知的一种,但数据湖和类似类型的存储基础设施可能会随着数据工作负载的趋势而继续流行。数据仓库适用于某些类型的工作负载和用例,而数据湖代表了服务于其他类型工作负载的另一种选择。

误区三:数据仓库易于使用,而数据湖很复杂

数据湖需要数据工程师和数据科学家的特定技能来分类和利用其中存储的数据。数据的非结构化性质使得那些不了解数据湖如何工作的人更不容易访问它。

但是,一旦数据科学家和数据工程师构建了数据模型或管道,业务用户通常可以利用与流行业务工具的集成(自定义或预构建)来探索数据。同样,大多数业务用户通过连接的商业智能 (BI) 工具访问存储在数据仓库中的数据。在第三方 BI 工具的帮助下,业务用户应该能够访问和分析数据,无论该数据存储在数据仓库还是数据湖中。

构建现代数据平台的原则

尽量减少数据平台中人员、网络和磁盘操作的影响。虽然人类永远无法像计算机一样快,但网络和磁盘操作是客观问题。为了减少这些问题的影响,避免在各处复制数据,加强平台读取和处理来自不同位置的数据的能力,包括事务性、发布/子系统和数据仓库系统,而无需当天移动。构建现代数据平台的原则是:

把事情简单化,不要过度架构或过度设计;

为正确的工作使用正确的工具;

让用例决定你应该使用什么;

使用云进行扩展;

将数据与上下文分开,这将使数据能够用于多个用例。

数据湖和数据仓库:用例

Data Lake 已经成为一个强大的平台,企业可以使用它来管理、挖掘大量非结构化数据并将其货币化,以获得竞争优势。因此,公司对数据湖平台的采用率急剧增加。

在这种利用大数据的热潮中,一直存在一种误解,即 Data Lake 旨在取代数据仓库,

而实际上,Data Lake 旨在补充传统的关系数据库管理系统 (RDBMS)。

数据仓库适用于某些类型的工作负载和用例,而数据湖代表了服务于其他类型工作负载的另一种选择。

用例应该驱动数据平台架构。如果您的用例需要速度、具有已知的数据模型、完全结构化或非常接近它,那么 SQL 数据仓库就足够了。但是,如果您需要及时灵活地对数据进行建模并将其用于多种工作负载,您应该使用数据湖。

组织将依靠多种技术的最佳解决方案,包括数据仓库和数据湖。最终,组织的选择需要平衡管理多种技术的复杂性和 TCO 与以高性能和经济高效的方式运行更多种类的工作负载的能力。


未来该如何选择

我们现在处于这样一个阶段,我们不仅可以使用数据来回顾过去,还可以了解现在,甚至可以预测未来。数据和工具将不断发展,以帮助我们几乎实时地到达那里。

将数据与上下文分开。进来的数据不一定有你想用它的上下文。所以,在弄清楚你想用它做什么之前,把将数据获取到一个位置的想法分开。因为实际上,您将对该数据进行多种用途。因此,您永远不知道您可以将这些数据用于什么用途。因此,如果您首先获取数据,然后弄清楚您想用它做什么,通常会导致使用这些数据产生更积极的结果。

数据仓库供应商正在逐渐从他们现有的模型转向数据仓库和数据湖模型的融合。同样,数据湖的供应商现在正在扩展到数据仓库领域,双方正在趋同。例如,BigQuery 现在允许组织在 Amazon S3 上查询数据。同样,Databricks 和 Qubole 等数据湖平台现在正在果断地转向数据仓库用例。您可以使用 ACID 属性、事务一致性、快照等来管理存储,并将查询引擎更多地与存储管理集成,为客户创建湖仓模式。数据湖和数据仓库之间的融合不仅仅是在谈论,而是正在现实中应用。


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
6月前
|
存储 数据管理 物联网
深入解析数据仓库与数据湖:建构智能决策的桥梁
在当今信息时代,数据成为企业决策与创新的关键资源。本文将深入探讨数据仓库与数据湖的概念与应用,介绍其在数据管理和分析中的作用,以及如何构建智能决策的桥梁。
|
6月前
|
数据采集 机器学习/深度学习 存储
数据仓库与数据湖:不同的数据管理方式
在当今数据驱动的时代,数据管理成为了企业发展的关键。数据仓库和数据湖是两种不同的数据管理方式。本文将介绍数据仓库和数据湖的概念及其应用,并分析其优缺点,帮助企业选择适合自身的数据管理方式。
|
5月前
|
存储 分布式计算 大数据
数据仓库与数据湖在大数据架构中的角色与应用
在大数据时代,数据仓库和数据湖分别以结构化数据管理和原始数据存储见长,共同助力企业数据分析。数据仓库通过ETL处理支持OLAP查询,适用于历史分析、BI报表和预测分析;而数据湖则存储多样化的原始数据,便于数据探索和实验。随着技术发展,湖仓一体成为趋势,融合两者的优点,如Delta Lake和Hudi,实现数据全生命周期管理。企业应根据自身需求选择合适的数据架构,以释放数据潜力。【6月更文挑战第12天】
208 5
|
6月前
|
存储 机器学习/深度学习 数据采集
【专栏】在数字化时代,数据仓库和数据湖成为企业管理数据的关键工具
【4月更文挑战第27天】在数字化时代,数据仓库和数据湖成为企业管理数据的关键工具。数据仓库是经过规范化处理的结构化数据集合,适合支持已知业务需求;而数据湖存储原始多类型数据,提供数据分析灵活性。数据仓库常用于企业决策、财务分析,而数据湖适用于大数据分析、机器学习和物联网数据处理。企业需根据自身需求选择合适的数据存储方式,以挖掘数据价值并提升竞争力。理解两者异同对企业的数字化转型至关重要。
135 2
|
3月前
|
存储 数据采集 数据挖掘
数据仓库VS数据湖:选择正确的数据存储解决方案
【8月更文挑战第23天】企业在选择数据存储解决方案时,应综合考虑业务需求、数据特性、技术实力及成本效益等多方面因素,以做出最符合自身发展的决策。
|
3月前
|
存储 机器学习/深度学习 数据采集
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
|
6月前
|
存储 机器学习/深度学习 数据挖掘
数据仓库与数据湖:解析数据驱动的未来
在数字化时代,数据成为企业决策的核心资源。本文将深入探讨数据仓库和数据湖的概念、特点以及应用场景,分析其在实现数据驱动决策过程中的重要性和优势,并展望数据驱动的未来发展趋势。
207 5
|
6月前
|
存储 数据采集 分布式计算
大规模数据处理:从数据湖到数据仓库
对于大型企业来说,海量的数据是一种巨大的财富,但如何高效地处理这些数据却是一个巨大的挑战。本文将介绍大规模数据处理的两种主流方式:数据湖和数据仓库,并探讨它们的优缺点以及如何选择适合企业的方案。
83 1
|
6月前
|
存储 大数据 BI
数据仓库、数据湖、湖仓一体,究竟有什么区别?
近几年大数据概念太多了,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又说什么“湖仓一体”。乙方公司拼命造概念,甲方公司不管三七二十一,吭哧吭哧花钱搞数据建设。到头来发现,钱也花了,人力也投入了,但最基本的业务需求都解决不了。
|
6月前
|
存储 机器学习/深度学习 数据挖掘
探究数据仓库与数据湖的异同及应用场景
在数据分析与处理方面,数据仓库与数据湖是两种广泛运用的数据架构。本文将深入剖析数据仓库与数据湖的概念、特点、使用场景以及二者之间的区别和联系,帮助读者更好地了解这两种数据架构的优缺点。