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

文章目录

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

一、什么是数据湖?

起源

数据湖的概念最早由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深度对比
  • 数据湖这个大坑,是怎么挖的?

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

K8s GPU 资源管理探索:在 KubeSphere 上部署 AI 大模型 Ollama

作者:运维有术星主 随着人工智能、机器学习、AI 大模型技术的迅猛发展,我们对计算资源的需求也在不断攀升。特别是对于需要处理大规模数据和复杂算法的 AI 大模型,GPU 资源的使用变得至关重要。对于运维工程师而言,掌握如何在 Kub…

发送手机,邮箱验证码

一、发送邮箱,使用hutool工具包 使用aliyun邮箱作为发件邮箱,需要在邮箱中开启代收功能 1、引入依赖 userController代码 GetMapping("/sendCodeEmail")public Integer sendCodeEmail(String mel){return userService.sendCodeEmail(mel);} …

!vue3中defineEmits接收父组件向子组件传递方法,以及方法所需传的参数及类型定义,避免踩坑!

使用说明 1、在子组件中调用defineEmits并定义要发射给父组件的方法 const emits defineEmits([‘foldchange’]) 2、使用defineEmits会返回一个方法,使用一个变量emits(变量名随意)去接收 3、在子组件要触发的方法中,调用emits并传入发射给父组件的方法…

绝地归来!英伟达等提出JeDi:无需微调,个性化图像生成新SOTA![CVPR 2024]

文章链接:https://arxiv.org/pdf/2407.06187 github链接:https://research.nvidia.com/labs/dir/jedi 本文提出了一种无需微调的文本生成图像方法,采用了新颖的联合图像扩散模型。 提出了一种简单且可扩展的数据合成流程,用于生成…

Quartz 核心

一、Quartz 核心 工作原理: Scheduler 是一个计划调度器容器(总部),容器里面可以盛放众多的 JobDetail 和 Trigger。当容器启动后,里面的每个 JobDetail 都会根据 Trigger 按部就班自动去执行。JobDetail 是一个可执…

Canvas:掌握图像变换合成与裁剪状态像素操作

想象一下,用几行代码就能创造出如此逼真的图像和动画,仿佛将艺术与科技完美融合,前端开发的Canvas技术正是这个数字化时代中最具魔力的一环,它不仅仅是网页的一部分,更是一个无限创意的画布,一个让你的想象…

软件源码购买一般在哪个网站?避坑指南

在数字化转型的浪潮中,软件源码的购买已成为许多企业和个人开发者快速搭建项目、节省开发成本的重要途径。选择合适的购买平台,不仅能确保源码的质量与合法性,还能享受到便捷的交易流程与专业的售后服务。本文小编将为您分享几个常见的软件源…

安卓 APK 安装过程详解

🍎个人博客:个人主页 🏆个人专栏:Android ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 1. 开机后连上网线 2. 查看网线的IP地址 3. 检查ADB连接 4. 修改文件权限 步骤 结语 我的其他博客 前言 在安卓设备上安装…

[PM]流程与结构设计

流程图 流程就是为了达到特定目标, 进行的一系列有逻辑性的操作步骤, 由两个及已上的步骤, 完成一个完整的行为过程, 即可称为流程, 流程图就是对这个过程的图形化展示 分类 业务流程图 概念: 描述业务流程的一种图, 通过特定符号和连线表示具体某个业务的处理步骤和过程作…

✈️一文带你入门【NestJS】

✈️引言 在现代Web开发领域,框架和技术的迭代速度令人咋舌。其中,NestJS作为一款基于Node.js的后端框架,以其卓越的设计理念和强大的功能集,迅速吸引了众多开发者的眼球。本文将带你深入了解NestJS的起源、发展,以及…

亚马逊自养号测评环境系统全解析:从注册到下单,一次成号无忧

亚马逊测评的关键在于养号,这是因为测评需要买家账号来操作。而养号不仅仅是让账号能多次使用,更重要的是通过维护让账号更健康、更有价值。很多人容易忽略的是,首次购买(首单)的成功率和它对账号的重要性。首单成功率…

Leetcode刷题——7 滑动窗口 双指针

注&#xff1a;以下代码均为c 1. 两数之和2&#xff08;输入有序数组&#xff09; // 法1&#xff1a;暴力 vector<int> twoSum1(vector<int>& numbers, int target) {vector<int> ans(2);int n numbers.size();for(int i 0; i < n-1; i){if(i ! 0…

递归(四)—— 初识暴力递归之“打印字符串的全排列”

题目1&#xff1a;序列打印一个字符串的全排列 题目分析&#xff1a;结合一实例来理解题目&#xff0c;str “abc”的全排列就是所求得的序列是 strp[0~2]的所有位的排列组合&#xff0c;strNew {“abc”, “acb”, “bac”, “bca”,”cba”,”cab”} 思路1&#xff1a;枚…

旷野之间3 – CTO 应具备的技能

​​​​​​ 随着技术渗透到商业的各个方面,首席技术官的角色变得越来越具有战略性和多面性。虽然深厚的技术技能仍然是基础,但今天的首席技术官还需要具备领导能力、商业敏锐度、沟通能力等优势。 根据我作为 CTO 的个人经验,我将深入探讨现代 CTO 所需的各种能力,包括:…

vue中,图片在div中按照图片原来大小等比例显示

图片在div中按照图片原来大小等比例显示&#xff0c;可以保证web上显示的图片和实际图片形状一样&#xff0c;保留原始图片效果 实现代码如下&#xff1a; <div style"padding: 0; width:400px;height:400px;position: absolute;border: 1px solid #eff2f6;">…

百问网全志D1h开发板红外控制LVGL界面切换

红外控制LVGL界面切换 1. 测试红外功能 1.1 配置设备树 查看原理图&#xff1a; 可以看到红外对应的引脚号是PG16。 进入目录&#xff1a; cd /home/ubuntu/tina-d1-h/device/config/chips/d1-h/configs/nezha/linux-5.4修改board.dts&#xff1a; vim board.dts修改引…

MUNIK解读ISO26262:安全计划

前言 当我们进行功能安全开发时&#xff0c;由于整个项目周期和内容较多&#xff0c;因此需要在项目前期对一些问题提前进行规划&#xff1a;比如功能安全开发具体分为几个阶段&#xff0c;应该怎么去做&#xff1f;对于不同的环节&#xff0c;有哪些人员来执行&#xff1f;资…

在网上申请流量卡审核失败,可能是你的年龄有问题!

在网上申请流量卡审核失败&#xff0c;可能是你的年龄有问题&#xff01; 先上个图&#xff1a; ​ 网上的流量卡并不是随意申请的&#xff0c;而是填写申请信息后由运营商进行审核&#xff0c;审核通过后才会发卡&#xff0c;如果你提交的订单没有审核通过&#xff0c;那么大…

体积大的快递怎么寄便宜?如何寄件寄包裹更省钱?

大学毕业了&#xff0c;面对即将到来的工作生活&#xff0c;小李不得不把宿舍里的大包小包打包寄回家。可是&#xff0c;当他真正开始打包行李时&#xff0c;才发现这可不是一件简单的事&#xff1a;衣服、被子、书籍、杂物……这些东西加起来体积不小&#xff0c;想要省钱寄快…

HippoRAG如何从大脑获取线索以改进LLM检索

知识存储和检索正在成为大型语言模型(LLM)应用的重要组成部分。虽然检索增强生成(RAG)在该领域取得了巨大进步&#xff0c;但一些局限性仍然没有克服。 俄亥俄州立大学和斯坦福大学的研究团队推出了HippoRAG&#xff0c;这是一种创新性的检索框架&#xff0c;其设计理念源于人类…