【数据架构】数据湖与数据仓库之间的五大差异

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 【数据架构】数据湖与数据仓库之间的五大差异

根据Google的说法,对“大数据”的兴趣已经持续了好几年,而且在过去几年里真正的兴起。这篇文章的目的是为了帮助突出数据湖泊和数据仓库之间的差异,帮助您就如何管理数据做出明智的决定。


我们这些数据和分析从业者当然听过这个词,当我们开始与客户讨论大数据解决方案时,谈话自然转向了对数据湖的讨论。但是,我经常发现客户要么没有听说过这个词,要么没有很好地理解它的含义。


数据仓库

维基百科,将数据仓库定义为:


“...来自一个或多个不同来源的综合数据的中央存储库。他们存储当前和历史数据,并用于创建高级管理报告的趋势报告,如年度和季度比较。“


这是一个非常高层次的定义,它描述了数据仓库的目的,但没有解释如何达到目的。


我会继续添加一个数据仓库有以下属性:


它代表了由主题领域组织的业务的抽象图片。


这是高度转变和结构。


在定义使用数据之前,数据不会被加载到数据仓库中。


它通常遵循诸如Ralph Kimball和Bill Inmon所定义的方法。


数据湖

Pentaho首席技术官詹姆斯·迪克森(James Dixon)通常被称为“数据湖”(data lake)。他描述了一个类似于一瓶水的数据集市(数据仓库的一个子集)...“清理,打包和结构化以便于消费”,而数据湖更像是一个自然状态的水体。数据从流(源系统)流向湖。用户可以进入湖泊进行检查,采样或潜水。



现代数据架构中的数据湖这也是一个相当不精确的定义。我们来添加一个数据湖的一些特定属性:


所有数据都从源系统加载。没有数据被拒绝。


数据以未转换或几乎未转换的状态存储在叶级。


数据被转换,模式被应用来满足分析的需要。


接下来,我们将重点介绍数据湖的五个关键区别以及它们与数据仓库方法的对比。


1. Data Lakes保留所有数据


在开发数据仓库的过程中,花费大量时间分析数据源,了解业务流程和分析数据。其结果是设计用于报告的高度结构化的数据模型。这个过程的很大一部分包括决定要包含哪些数据,而不包括在仓库中。一般来说,如果数据不是用来回答特定的问题或在一个定义的报告中,它可能被排除在仓库之外。这通常是为了简化数据模型,并节省昂贵的磁盘存储上的空间,用于提高数据仓库的性能。


相比之下,数据湖保留所有数据。不仅仅是今天正在使用的数据,还有可能使用的数据,甚至可能永远不会被使用的数据。数据也一直保存下来,以便我们能及时回到任何一点做分析。


这种方法成为可能,因为数据湖的硬件通常与用于数据仓库的硬件大不相同。商品,现成的服务器与便宜的存储相结合,使数据湖扩展到TB级和PB级相当经济。


2.数据湖支持所有数据类型


数据仓库一般由从事务系统中提取的数据组成,并由定量度量和描述它们的属性组成。Web服务器日志,传感器数据,社交网络活动,文本和图像等非传统数据源在很大程度上被忽略。这些数据类型的新用途不断被发现,但是消耗和存储它们可能是昂贵和困难的。


数据湖方法包含这些非传统的数据类型。在数据湖中,我们保留所有数据而不管源和结构。我们保持它的原始形式,只有在我们准备好使用它时,我们才会改变它。这种方法被称为“读取模式”与数据仓库中使用的“写入模式”方法。

3.数据湖支持所有用户


在大多数组织中,80%或更多的用户是“运营”的。他们希望获得他们的报告,查看他们的关键绩效指标,或者每天在电子表格中对同一组数据进行分组。数据仓库通常是这些用户的理想选择,因为它结构合理,易于使用和理解,并且专门用于回答他们的问题。


接下来的10%左右,对数据做更多的分析。他们使用数据仓库作为数据源,但往往回溯到源系统,以获取未包含在仓库中的数据,有时从组织外部获取数据。他们最喜欢的工具是电子表格,他们创建新的报告,通常分布在整个组织。数据仓库是他们的数据源,但是他们经常超出界限


最后,最后几个百分比的用户做了深入的分析。他们可能会根据研究创建全新的数据源。他们混合了许多不同类型的数据,并提出了全新的问题来回答。这些用户可能会使用数据仓库,但往往会忽略它,因为他们通常被控超越其能力。这些用户包括数据科学家,他们可能会使用先进的分析工具和功能,如统计分析和预测建模。


数据湖方法同样支持所有这些用户。数据科学家可以前往湖泊,利用他们所需要的大量不同的数据集,而其他用户则可以使用更为结构化的数据视图来提供数据。


4.数据湖适应变化


关于数据仓库的主要抱怨之一是需要多长时间来改变它们。在开发过程中花费了相当多的时间来获得仓库的结构。一个好的仓库设计可以适应变化,但是由于数据加载过程的复杂性以及为使分析和报告容易进行而做的工作,这些变化将必然消耗一些开发人员资源并花费一些时间。


许多业务问题都迫不及待地让数据仓库团队调整系统来回答问题。自助服务商业智能的概念引发了日益增长的对更快答案的需求。


另一方面,在数据湖中,由于所有数据都是以原始形式存储的,并且总是可以被需要的人访问,所以用户有权超越仓库结构以新颖的方式探索数据并回答问题在他们的步伐。


如果一个探索的结果被证明是有用的,并且有一个重复的愿望,那么可以应用一个更正式的模式,并且可以开发自动化和可重用性来帮助将结果扩展到更广泛的观众。如果确定结果不是有用的,则可以丢弃该结果,并且没有对数据结构进行改变,也没有消耗开发资源。


5.数据湖提供更快的洞察力


这最后一个区别实际上是其他四个的结果。因为数据湖泊包含了所有的数据和数据类型,因为它使用户能够在数据被转换,清理和结构化之前访问数据,使得用户能够比传统的数据仓库方法更快地获得结果。


但是,这种对数据的早期访问是有代价的。通常由数据仓库开发团队完成的工作可能无法完成分析所需的部分或全部数据源。这让驾驶座位的用户可以根据需要探索和使用数据,但上述第一层业务用户可能不希望这样做。他们还只是想要他们的报告和关键绩效指标。


在数据湖中,这些操作报告消费者将利用数据库中的数据的更加结构化的视图,类似于以前在数据仓库中的数据。不同之处在于,这些视图主要是作为元数据存在于湖泊中的数据之上,而不是物理上需要开发者改变的刚性表格。

我应该选择哪种方法?

这是一个困难的问题。如果你已经建立了完善的数据仓库,我当然不主张把所有的工作都放在窗口上,从头开始。但是,像许多其他数据仓库一样,您可能会遇到我所描述的一些问题。如果是这种情况,您可以选择在仓库的旁边实施一个数据湖。仓库可以像以往一样继续经营,您可以用新的数据源开始填充您的湖泊。您还可以将其用于您的仓库数据的归档存储库,以便实际使其保持可用状态,从而为用户提供比以前更多的数据访问权限。随着仓库的老化,您可能会考虑将其移至数据湖,否则您可能会继续提供混合方法。


如果您刚刚开始构建集中式数据平台,我强烈建议您考虑两种方法。


那么技术呢?

我故意没有提到任何具体的技术。数据湖这个词已经成为像Hadoop这样的大数据技术的代名词,而数据仓库仍然与关系数据库平台保持一致。我这篇文章的目标是突出两种数据管理方法的差异,而不是强调一个特定的技术。然而事实是,上述技术方法的一致并不是巧合。关系数据库技术是数据仓库应用的理想选择,因为它们在高速查询结构数据方面表现优异。


另一方面,Hadoop生态系统非常适用于数据湖方法,因为它可以非常容易地适应和扩展非常大的卷,并且可以处理任何数据类型或结构。但是,另外,Hadoop还可以通过将结构化视图应用于原始数据来支持数据仓库场景。正是这种灵活性使Hadoop能够擅长向所有业务用户层提供数据和洞察力。


未来该何去何从?

两个阵营的技术不断发展。


关系数据库软件在软件和硬件方面不断发展和进步,专门用于使数据仓库更快,更具可扩展性和更可靠。


Hadoop生态系统正被看到前所未有的采用,而且它是由社区支持的开源项目的集合,这意味着开发和进步的速度比传统软件快得多。


Hadoop对开源软件和商品硬件的依赖使得从成本和功能的角度来看,如果您正在评估一个新的数据平台,或者正在计划替换或升级一个遗留系统,那么它就非常有吸引力

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
安全 Android开发 iOS开发
深入探索Android与iOS的差异:从系统架构到用户体验
在当今的智能手机市场中,Android和iOS无疑是最受欢迎的两大操作系统。本文旨在探讨这两个平台之间的主要差异,包括它们的系统架构、开发环境、安全性、以及用户体验等方面。通过对比分析,我们可以更好地理解为何不同的用户群体可能会偏好其中一个平台,以及这些偏好背后的技术原因。
|
2月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
58 8
|
2月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
436 7
|
2月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
2月前
|
数据采集 搜索推荐 数据管理
数据架构 CDP 是什么?
数据架构 CDP 是什么?
73 2
|
4月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
206 2
|
1月前
|
安全 Android开发 iOS开发
深入探索iOS与Android系统架构差异及其对开发者的影响
本文旨在通过对比分析iOS和Android两大移动操作系统的系统架构,探讨它们在设计理念、技术实现及开发者生态方面的差异。不同于常规摘要仅概述内容要点,本摘要将简要触及核心议题,为读者提供对两大平台架构特点的宏观理解,铺垫
|
2月前
|
IDE 安全 Android开发
深入探索Android与iOS操作系统的架构差异
本文旨在对比分析Android和iOS两大主流移动操作系统在架构设计上的根本差异。通过详细解读两者的系统架构、开发环境、以及安全性等方面,揭示它们各自的特点及优势,为开发者选择合适的平台提供参考。
|
2月前
|
安全 Android开发 iOS开发
深入探讨Android与iOS的系统架构差异
本文旨在通过对比分析Android和iOS两大移动操作系统的系统架构,揭示它们在设计理念、安全性、应用生态及开发环境等方面的显著差异。我们将从底层架构出发,逐步剖析至用户界面层面,为开发者和科技爱好者提供一份详尽的技术参考。
43 1
|
30天前
|
开发工具 Android开发 iOS开发
Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
本文旨在深入探讨Android与iOS两大移动操作系统在技术架构、开发环境及市场表现上的核心差异,为开发者和技术爱好者提供全面的视角。通过对比分析,揭示两者如何塑造了当今多样化的移动应用生态,并对未来发展趋势进行了展望。 ####

热门文章

最新文章