【数据湖仓架构】数据湖和仓库:范式简介

news/2024/11/8 0:51:34/

是时候将数据分析迁移到云端了——您选择数据仓库还是数据湖解决方案?了解这两种方法的优缺点。

数据分析平台正在转向云环境,例如亚马逊网络服务、微软 Azure 和谷歌云。
云环境提供了多种好处,例如可扩展性、可用性和可靠性。此外,云提供商有大量的原生组件可供构建。还有多种第三方工具可供选择,其中一些是专门为云设计的,可通过云市场获得。

工具自然倾向于强调自己在分析集成中的作用。当您尝试选择最佳工具集时,这通常会令人困惑。在这篇文章中,我们将详细介绍许多工具的优缺点。

这是一个由三部分组成的系列文章的第一篇,我们评估了基于数据仓库和数据湖的解决方案的基本方法或范式的差异。

博客系列

  • 数据湖和仓库第 1 部分:范式简介

  • 数据湖和仓库第 2 部分:Databricks 和雪花

  • 数据湖和仓库第 3 部分:Azure Synapse 观点

两种范式:数据湖与数据仓库


基于一些主要组件的选择,云分析解决方案可以分为两类:数据湖和数据仓库。简而言之,数据仓库解决方案传统上是集中式的,而数据湖解决方案则分散到核心。这两种方法都有其优势,并且通常用于略有不同的目的。如今,产品具有这两个类别的典型特征是很常见的。即便如此,产品仍然展示其原始类别及其观点。

让我们将这种基本类别方法称为范式。理解范式的基本哲学有助于理解全局。

在这篇文章中,我们深入挖掘了范式的特征和差异。我们首先将分析平台划分为典型的组件阶段。在此之后,我们讨论从两种范式的角度选择组件的方法。

在本系列的下一篇文章中,我们将讨论如何在一些流行的产品中看到范式。

ca230a9be49ea8247e2c73b60c728ffe.png

数据分析平台通常根据它们所涵盖的过程部分分为多个阶段。典型的批量数据流水线平台如上图所示。但是,文章分析也适用于实时平台。这些工具可以从处理(绿色)或存储(蓝色)的角度进行分类。下面的工具行对应于它们在平台不同阶段的可用性。

例如,典型的数据湖解决方案由单独的处理和存储工具组成。在数据仓库的情况下,一个单一的解决方案通常同时兼顾处理和存储功能。让我们更清楚一点。

从处理(绿色)的角度来看,数据平台阶段是:

  • 摄取 (Ingest )- 使用 API 接口或 ELT/ETL 工具从源系统读取数据

  • 准备(Prepare)——数据将进行初步清理和检查

  • 转换和丰富(Transform & Enrich)——根据用例丰富和修改数据

  • 服务 (Serve)- 准备好的数据提供给选择的工具以供实际使用

  • 可视化和报告(Visualize & Report )——信息以可视化或报告的形式提供给最终用户


此外,大数据世界的当前趋势是根据应用的处理级别将数据存储在多个层中。数据存储层(蓝色)通常至少包括:

  • 原始(也称为青铜)——未处理的源数据,按原样存储

  • 精炼(银)——经过初步清理和标准化的质量验证数据。数据通常尚未修剪。

  • 已发布(金)——经过处理、组合和丰富的数据。通常,数据也已针对特定用例进行聚合和修剪。

数据存储层的确切覆盖范围因源而异,但此处的细节无关紧要。但是,重要的是要注意,尤其是在银层和金层中,数据可以存储不止一次。例如,黄金层通常为不同的使用场景提供多个版本的数据。

比较数据分析平台


传统上,数据分析平台是用于公司报告目的的解决方案。对于这个用例,基于关系数据库的数据仓库是事实上的标准。但是,数据仓库不太适合处理新类型的数据,通常称为大数据。问题是由于数据量、实时要求和类型多样性造成的,其中包括非结构化和半结构化数据。为了补充工具集,在过去十年左右开发了数据湖类型的解决方案。

根据 Wikipedia 中的一个非常广泛的定义,数据湖是一种可以以原始形式存储数据的解决方案。一般来说,这意味着任何文件格式的潜在存储容量都是无限的。在实践中,该术语还涵盖处理存储数据的工具。

市场上倾向于将产品展示为“整体数据湖解决方案”。通常他们是对的:理论上,即使是具有大硬盘驱动器的虚拟机也能让有能力的编码人员创建数据湖解决方案。自然,这种极简主义的定义不是很有用。

相反,考虑范式的差异更有意义:数据仓库的基本原则和基于数据湖的解决方案。

数据仓库:以有组织的结构提供的已清理数据


对于数据仓库范式,基本方法是提供一个集中式产品,使数据能够存储在有组织的层次结构中,通常以数据库表的形式。该解决方案包括表之间的外键引用、细粒度数据加密和详细的用户访问管理等内容。对数据的访问主要通过特定的数据仓库产品处理,通常使用 SQL 语言。

数据仓库范式的优点是能够定义向用户提供的数据和格式。通常,数据以经过处理和干净的格式提供。例如,这样我们就可以保证数据的有效性。此外,源系统和数据的变化至少在某种程度上对用户是隐藏的。

另一方面,作为限制,我们依赖单一的产品供应商。例如,只能以产品支持的方式从数据仓库解决方案中检索数据。此外,我们需要以一种或另一种方式为数据的检索付费。数据仓库解决方案也可能成为数据处理的资源瓶颈。最近,在解决后一个限制方面取得了重大进展。

数据湖:去中心化带来的自由


数据湖范式的核心原则是责任分散。借助大量工具,任何人都可以在访问管理的范围内使用任何数据层中的数据:青铜、白银和黄金。组织数据和表的关系是可以的,但是通常不强制使用,我们可以很容易地绕过它们。

数据湖解决方案的一个主要优势是计算和处理工具的去中心化。数据科学家可以在自己的机器上使用青铜层数据进行 Python 图像分析,数据工程师可以使用 Apache Spark 修改银层数据,分析师可以通过报告工具利用黄金层数据。SQL 语言通常作为一种可能性提供。此外,计算是分散的,几乎没有瓶颈。

数据湖范式解决方案的一个主要弱点是缺乏数据组织,包括集中的元数据存储库。如果由于纠错或源系统修改而导致处理的数据更改,则可能非常难以跟踪。此外,不能始终保证数据的有效性或结构。集中式数据湖元数据管理工具越来越多,但使用它们取决于开发过程。技术很少强制这样做。

结论:数据湖和数据仓库


在这篇文章中,我们讨论了数据仓库和基于数据湖的解决方案的基本方法或范式的差异。基于数据仓库的解决方案通常是集中式的,而数据湖解决方案则分散到核心。然而,这两个类别的工具都在发展,并且划分变得越来越不清晰。然而,理解范式方法有助于理解全局。

原则上,您可以纯粹在数据湖或基于数据仓库的解决方案上构建云数据分析平台。

我见过大量基于数据湖工具的功能齐全的平台。在这些情况下,可以使用特定于用例的数据库数据集市来提供信息,而根本不需要数据仓库。

另一方面,也有成功的解决方案,其中整个平台都建立在数据仓库产品之上。数据直接读入数据仓库,在那里进行处理和服务。

但是,由于此处解释的差异,基于其中一种范例的解决方案不一定在所有情况下都是最佳的。他们的优势和基本理念是不同的。在处理青铜级和白银级数据时,在早期阶段利用基于数据湖的方法可能是有意义的。然后可以将数据存储在数据仓库中,以进一步组织成白银和黄金数据。通过这种方式,所有数据既可以用于快速实验的原始格式,也可以用于报告的结构格式。

这样,我们可以利用这两种方法的优势。

本文 :https://architect.pub/data-lakes-and-warehouses-intro-paradigms
讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
74319f0610339ff342bd026970014bbc.jpeg
微信小号

【ca_cea】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

6d4587d0e0100d7ef9930400be06b0ba.jpeg

QQ群

【285069459】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

8fce6f117e0ff40d520b1b85dd7226e0.jpeg

视频号【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

4b0acbe18397742127a1f2090419cfb9.jpeg

知识星球【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。

d0224acf5216ac46e897d5d12aa8657a.jpeg

喜马拉雅【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
领英Harryhttps://www.linkedin.com/in/architect-harry/
领英群组领英架构群组
https://www.linkedin.com/groups/14209750/
微博‍‍【超级架构师】智能时刻‍
哔哩哔哩【超级架构师】

cf3b4eb5a89a2aa444b34615267df2b8.jpeg

抖音【cea_cio】超级架构师

8688e2137dfeeddaee4dc5068ee34dd0.jpeg

快手【cea_cio_cto】超级架构师

816104ad197e0f921bf41c5960e7e6d1.jpeg

小红书【cea_csa_cto】超级架构师

18715bdc6e297479be79246e2f1e5fbc.jpeg

网站CIO(首席信息官)https://cio.ceo
网站CIO,CTO和CDOhttps://cioctocdo.com
网站架构师实战分享https://architect.pub   
网站程序员云开发分享https://pgmr.cloud
网站首席架构师社区https://jiagoushi.pro
网站应用开发和开发平台https://apaas.dev
网站开发信息网https://xinxi.dev
网站超级架构师https://jiagou.dev
网站企业技术培训https://peixun.dev
网站程序员宝典https://pgmr.pub    
网站开发者闲谈https://blog.developer.chat
网站CPO宝典https://cpo.work
网站首席安全官https://cso.pub    ‍
网站CIO酷https://cio.cool
网站CDO信息https://cdo.fyi
网站CXO信息https://cxo.pub

谢谢大家关注,转发,点赞和点在看。


http://www.ppmy.cn/news/97883.html

相关文章

【RTE】http 请求实现过程及其回调处理

每次发起一个请求,注册一个cb,都能有cb 被异步触发以下是实现过程:CallFetch 发起一个请求并能回调请求结果 template <typename DT, typename DP> void CallFetch(agora::agora_refptr<IDataParam> param,DataRequestType req_type,ApiType api_type,utils::w…

设计模式总结

java的设计模式大体上分为三大类&#xff1a;创建型模式&#xff08;5种&#xff09;&#xff1a;工厂方法模式&#xff0c;抽象工厂模式&#xff0c;单例模式&#xff0c;建造者模式&#xff0c;原型模式。 结构型模式&#xff08;7种&#xff09;&#xff1a;适配器模式&…

《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】

目录 知识点&#xff1a;封锁活锁死锁可串行化调度 考题1&#xff1a;可串行化调度 考题2&#xff1a;调度正确判断&共享锁写锁 考题3&#xff1a; 事务调度死锁 知识点&#xff1a;封锁活锁死锁可串行化调度 考题1&#xff1a;可串行化调度 考题2&#xff1a;调度正确判…

关于Netty的一些问题

1.Netty 是什么&#xff1f; Netty是 一个异步事件驱动的网络应用程序框架&#xff0c;用于快速开发可维护的高性能协议服务器和客户端。Netty是基于nio的&#xff0c;它封装了jdk的nio&#xff0c;让我们使用起来更加方法灵活。 2.Netty 的特点是什么&#xff1f; 高并发&…

路由原理及vue实现动态路由

路由原理 在前端开发中&#xff0c;路由通常用于实现 SPA 应用程序&#xff0c;即在一个页面中切换不同的内容或页面&#xff0c;而不需要重新加载整个页面。路由的实现原理是通过监听 URL 的变化&#xff0c;然后根据不同的 URL 加载不同的内容或页面。 在前端框架中&#x…

关键词搜索1688商品数据采集、1688商品列表数据接口

1688&#xff1a;指中国最大的电子商务综合平台&#xff0c;类似于美国的亚马逊。 关键词&#xff1a;是用于描述检索文档或记录的词语或短语&#xff0c;通常是用户输入的查询信息。 搜索&#xff1a;是在数据库、网页搜索引擎或其他信息存储库中查找信息内容的过程。 商品数…

JavaScript触摸事件

目录 一、touchstart&#xff1a;当手指触摸屏幕时触发。 二、touchmove&#xff1a;当手指在屏幕上滑动时触发。 三、touchend&#xff1a;当手指离开屏幕时触发。 四、touchcancel&#xff1a;当触摸事件被取消时触发&#xff0c;例如突然有来电等中断触摸的情况。 五、…

【SpringBoot教程】SpringBoot+MybatisPlus数据库连接测试 用户收货信息接口开发

⛪ 专栏地址 系列教程更新中 &#x1f680; 文章介绍: SpringBootMybatisPlus组合可以大大加快开发效率&#xff0c;紧接上一篇文章的内容&#xff0c;这篇文章进行数据库的连接与查询测试&#xff0c;并配置日志输出调试 &#x1f680; 源码获取: 项目中的资料可以通过文章底部…