从数据仓库到数据湖(上):数据湖导论

文章目录

  • 一、什么是数据湖?
    • 起源
    • 数据湖的特征
  • 二、为什么要用数据湖?
  • 三、数据湖与数据仓库的区别
      • 数据仓库和数据湖的对比
  • 四、数据湖本质
    • 数据存储架构
    • 数据处理工具:三类
      • 第一类工具
      • 第二类工具
      • 第三类工具
    • 小结
  • 五、总结
  • 六、参考资料

一、什么是数据湖?

起源

数据湖的概念最早由Pentaho的创始人兼CTO詹姆斯·迪克森(James Dixon)于2010年10月在纽约Hadoop World大会上提出。然而,在国内,数据湖的概念直到2019年Iceberg、Hudi和Delta Lake三大数据湖开源后才真正流行起来。

让我们先看看维基百科对数据湖的介绍:

数据湖(英语:Data Lake)是指以其原始格式(如BLOB或文件等)存储的数据存储库或系统[1]。数据湖通常会将所有数据统一存储,包括源系统数据、传感器数据、社交数据等的原始副本,以及用于报表、可视化、数据分析和机器学习等流程中转换后的数据。数据湖还可能包括关系数据库的结构化数据(行与列)、半结构化的数据(CSV、日志、XML、JSON)及非结构化数据(电子邮件、文件、PDF)和二进制数据(图像、音频、视频)等。数据湖可能是“on premises”(指在组织的数据中心里),也可能放在云端(使用Amazon、微软或Google的云端服务)。

一言以蔽之:数据湖是一个理论上只要是可以转化成二进制的数据均可存储的数据存储管理系统

数据湖的特征

数据湖具有以下特点:

  1. 容量大
    数据湖汇聚各个业务数据源,容纳散落在各处的数据,理论上存储空间巨大。

  2. 格式多
    数据湖架构面向多数据源的信息存储,可以快速高效地采集、存储、处理大量来源不同、格式各异的原始数据,包括文本、图片、视频、音频、网页等各类无序的非结构化数据。数据湖能将不同种类的数据汇聚存储在一起,并对汇聚后的数据进行管理,建立数据之间的关联关系,具有很强的兼容性。

  3. 处理速度快
    数据湖技术能将各类原始数据快速转化为可直接提取、分析、使用的标准格式,统一优化数据结构并对数据进行分类存储。根据业务需求,数据湖可以对存储的数据进行快速的查询、挖掘、关联和处理,并实时传输给终端用户。

  4. 分布式体系
    由于Hadoop也能基于分布式文件系统来存储和处理多类型数据,因此许多人认为Hadoop的工作机制就是数据湖的处理机制。当然,Hadoop基于其分布式、可横向扩展的文件系统架构,可以管理和处理海量数据,但它无法提供数据湖所需的复杂元数据管理功能。最直观的表现是,数据湖的体系结构表明数据湖是由多个组件构成的生态系统,而Hadoop仅提供了其中的部分组件功能。

注意:严格来说数据湖没有跟具体哪个技术绑定

二、为什么要用数据湖?

要回答这个问题,我们需要先回顾一下数据库和数据仓库的概念。

数据库的基本概念大家应该都不陌生。如今但凡是个业务系统,都或多或少需要用到数据库。即便我们不直接跟数据库打交道,它们也在背后默默地为我们服务,比如刷个卡、取个钱,后台都是数据库在运行。

数据库示意图

数据库用于联机事务处理,通常处理的是小数据量的高频读写操作。

当企业的数据越来越多,开始希望基于业务数据进行决策分析时,便有了 数据仓库 的出现。数据库等原始数据经过 ETL(Extract, Transform, Load)加工后,被装进数据仓库。数据仓库主要用于联机分析业务,通常处理大数据量的读取。

数据仓库示意图

数据仓库工作原理

以上是数据库和数据仓库的简单介绍。尽管它们的应用场景不同,但它们都处理 结构化数据。在相当长的一段时间内,数据库和数据仓库联合起来,共同满足企业的实时“交易”型业务和联机“分析性”业务需求。

然而,随着时代的发展,数据的类型变得越来越多样化,人们对数据的需求也越来越复杂。

数据多样化

企业希望把生产经营中的所有相关数据,历史的、实时的,在线的、离线的,内部的、外部的,结构化的、非结构化的,都能完整保存下来,方便“沙中淘金”。

大数据处理

企业越来越重视 “大数据” 的价值,希望能够存储并有效利用这些数据。

这些数据种类繁多,五花八门,数据库和数据仓库都无法胜任这项任务,怎么办呢?

索性挖个大坑吧!

数据湖示意图

这就是数据湖的原型。

简单来说,数据湖就像一个“大水坑”,是一种将各类异构数据进行集中存储的架构。数据湖能够存储结构化、半结构化和非结构化数据,使企业可以在一个统一的平台上存储、管理和分析各种类型的数据。这不仅能够降低数据存储的成本,还能提高数据分析的灵活性和效率,帮助企业更好地挖掘数据价值,做出更明智的业务决策。

三、数据湖与数据仓库的区别

数据仓库和数据湖的对比

640-82

从数据含金量来比,数据仓库里的数据价值密度更高一些,数据的抽取和Schema的设计,都有非常强的针对性,便于业务分析师迅速获取洞察结果,用与决策支持。

而数据湖更有一种“兜底”的感觉,甭管当下有用没有/或者暂时没想好怎么用,先保存着、沉淀着,将来想用的时候,尽管翻牌子就是了,反正都原汁原味的留存了下来。

img

而从产品形态看,数据仓库可以是独立的标准化产品,数据湖则是一种解决方案,通常是围绕对象存储为“湖底座”的大数据管理方案组合。

640-84

四、数据湖本质

数据湖的本质:是由 数据存储架构数据处理工具 组成的 解决方案。而不是某个单一独立产品。

数据存储架构

数据存储架构需要具备足够的扩展性和可靠性,确保企业能够存储所有原始数据,并且长期保存。这些存储系统包括:

  • Hadoop 的 HDFS
  • 对象存储系统,如 Amazon Web Services(亚马逊云科技)

数据处理工具:三类

第一类工具

解决的问题是:如何将数据“搬到”湖里,即 ETL(Extract, Transform, Load)。

ETL

第二类工具

解决的问题是:数据管理。如果元数据缺失,数据湖中的数据质量将无法保证,各种数据无序堆积,最终会导致数据湖变成 数据沼泽

数据管理

第三类工具

解决的问题是:从湖中的海量数据中“淘金”。数据存储在数据湖中并不是终点,还需要对数据进行分析、挖掘和利用。例如,对湖中的数据进行查询,同时将数据提供给机器学习和数据科学类的业务,以便实现“点石成金”。

数据分析

小结

数据湖不仅仅是一个“囤积”数据的“大水坑”。除了存储技术构建的湖底座以外,还包含一系列的数据入湖、数据出湖、数据管理和数据应用工具集,共同组成了数据湖解决方案。

五、总结

数据湖的概念最早由詹姆斯·迪克森在2010年提出,随着2019年Iceberg、Hudi和Delta Lake等开源项目在国内流行起来。数据湖是一种多功能系统,能够存储各种类型的数据,包括结构化、半结构化和非结构化数据,具备高容量存储和快速处理多种数据格式的能力。

与传统的数据库和数据仓库不同,数据湖不仅可以保存原始数据,还能支持快速的查询、数据分析和机器学习应用,帮助企业更有效地挖掘数据的潜力。数据湖由数据存储架构和多种数据处理工具组成,而不是单一的独立产品。

数据湖解决方案还包括ETL工具、元数据管理和数据分析工具,这些工具的使用确保了数据湖的高效管理和利用,防止其变成无序的“数据沼泽”。

在下一篇文章中,我们将深入探讨市面上热门的数据湖开源框架,以及这些开源框架是否能够满足数据湖的基本概念和功能要求。

六、参考资料

  • 从数据仓库到数据湖(下):数据湖领域热门的开源框架
  • 从数据库到数据仓库:数据仓库导论
  • 开源框架DeltaLake、Hudi、Iceberg深度对比
  • 数据湖这个大坑,是怎么挖的?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/796456.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot中@Async注解的使用及原理 + 常见问题及解决方案

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

手机怎么用代理ip上网

在数字化时代,网络已经成为我们生活中不可或缺的一部分。然而,有时候出于安全、隐私或访问特定网络资源的需要,我们可能需要使用代理IP来上网。那么,什么是代理IP?如何在手机上设置并使用它呢?本文将为您详…

南通网站制作基本步骤有哪些

南通网站制作是一个非常重要的工作,它可以帮助企业展示产品、服务和品牌形象,吸引更多的客户和创造更多的商机。网站制作的基本步骤包括需求分析、规划设计、页面制作、网站测试和上线等。 首先是需求分析。在南通网站制作的初期阶段,需要和客…

SpringCloud Alibaba Sentinel网关流量控制实践总结

官网地址:https://sentinelguard.io/zh-cn/docs/api-gateway-flow-control.html GitHub地址:GitHub Sentinel 网关限流 【1】概述 Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。 Sentinel 1.6.0 引入了 Sentinel API …

QFileDialog的简单了解

ps:写了点垃圾(哈哈哈) 现在感觉Qt库应该是调用了Windows提供的这块的接口了。 它继承自QDialog 这是Windows自己的文件夹 这是两者的对比图: 通过看QFileDialog的源码,来分析它是怎么实现这样的效果的。 源码组成…

探索Java网络编程精髓:UDP与TCP的实战魔法!

Java 中提供了专门的网络编程程序包 java.net,提供了两种通信协议:UDP(数据报协议)和 TCP(传输控制协议),本文对两种通信协议的开发进行详细介绍。 1 UDP 介绍 UDP:User Datagram Pr…

node-gyp 重新安装,解决编译遇到的问题【超详细图解】

一、报错信息 npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp10.0.1 npm ERR! gyp info using node18.19.0 | darwin | arm64 npm ERR! gyp info find Python using Python version 3.12.2 found at "/opt/homebrew/opt/python3.12/…

3D工艺大师快速生成装配动画,驱动汽车工业装配流程革新

在现代制造业的一般生产流程中,车间装配环节是产品由蓝图迈向市场前至关重要的一道工序。随着产品结构的日益复杂化和个性化需求的不断增长,车间装配工作面临着前所未有的挑战。高精密度的装配要求、错综复杂的组件关系以及频繁变更的生产计划&#xff0…

《代理选择与反爬虫策略探究:如何优化网络爬虫效率与稳定性》

代理IP如何选以及常见反爬策略 为什么需要代理? 因为有的网站会封IP,用户如果没有登录,那IP就是身份标识,如果网站发现用户行为异常就非常可能封IP 什么是代理IP 就是让一个人帮你转交请求,帮你转交的人对面不熟&a…

华为OD机试 - 堆内存申请(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测…

VMware安装Ubuntu以及利用vscode远程Ubuntu

一、VMware安装Ubuntu (1)VMware安装Ubuntu主要参考此文VMware虚拟机安装Ubuntu22.04图文教程(超详细!!!)。 (2)VMware密钥参考此文24年VMware 17密钥(附下载链接&#…

【经典面试题】是否形成有环链表

1.环形链表oj 2. oj解法 利用快慢指针: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; bool hasCycle(struct ListNode *head) {ListNode* slow head, *fast…

M J更改图像生成方式的参数选项

一个完整的/imagine命令可能包含几个内容,例如图像 URL、图像权重、算法版本和其他开关。 /imagine参数应遵循以下顺序: /imagine prompt: https://example/tulip.jpg a field of tulips in the style of Mary Blair --no farms --iw .5 --ar 3:2 在这种情况下,“开关”是指…

SpringBoot使用Redisson操作Redis及使用场景实战

前言 在SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis中,我们介绍了RedisTemplate以及如何SpringBoot如何通过RedisTemplate、StringRedisTemplate操作Redis。 RedisTemplate的好处就是基于SpringBoot自动装配的原理,使得整合redis时比较…

论文AIGC率需降低?降AI率工具,快速有效

当论文借助AI撰写时,难免会留下AI的痕迹;若未经处理直接提交给导师,很可能会遭到批评。因此,去除AI痕迹成为了关键的一环。幸运的是,笔灵去ai痕迹提供了去AI痕迹的功能,极大地简化了这一过程。用户仅需一键…

如何通过博客获得独立站外链?

通过博客获取独立站外链是一种非常有效的策略,其中GPB外链尤为出色,在多种外链的形式中,博客外链本身就是最好的外链 而想通过博客来获取高质量的独立站外链,创建高质量的内容是关键,无论是谷歌还是用户,对…

mts怎么改成mp4?介绍四个将mts改成MP4的方法

mts怎么改成mp4?当你需要将mts文件转换为MP4格式时,你可以采取一些简单的方法来完成这个任务。mts是一种视频文件格式,通常用于高清摄像机录制的视频,而MP4是一种通用且流行的视频格式,几乎在所有设备和平台上都得到支…

DockerCompose拉取DockerHub镜像,并部署OpenMetaData

参考博主:http://t.csdnimg.cn/i49ET 一、DockerCompose拉取DockerHub镜像 方法一(不太行): 在daemon.json文件中添加一些国内还在服务的镜像站(可能某些镜像会没有) ([ -f /etc/docker/daemon.json ] ||…

数据结构之单链表(赋源码)

数据结构之单链表 线性表 线性表的顺序存储结构,有着较大的缺陷 插入和删除操作需要移动大量元素。会耗费很多时间增容需要申请空间,拷贝数据,释放旧空间。会有不小的消耗即使是使用合理的增容策略,实际上还会浪费许多用不上的…

语言模型演进:从NLP到LLM的跨越之旅

在人工智能的浩瀚宇宙中,自然语言处理(NLP)一直是一个充满挑战和机遇的领域。随着技术的发展,我们见证了从传统规则到统计机器学习,再到深度学习和预训练模型的演进。如今,我们站在了大型语言模型&#xff…