首页 > 其他分享 >数据湖仓升级 | 破解湖仓“先加载后使用”悖论,用数据虚拟化,走出数据沼泽

数据湖仓升级 | 破解湖仓“先加载后使用”悖论,用数据虚拟化,走出数据沼泽

时间:2024-12-13 15:30:51浏览次数:12  
标签:逻辑 虚拟化 原始数据 Hadoop 访问 湖仓 数据

近年来,大数据领域呈现出令人目不暇接的发展态势。从Hadoop生态系统的多样化,到云厂商将大数据与SaaS模型相结合,这一领域的技术和工具正在以惊人的速度演化。在此背景下,“数据湖”作为一种整合大规模数据的存储与计算解决方案,吸引了众多企业的关注。然而,传统数据湖也面临治理、复杂性以及投资回报等方面的挑战。

本文,我们将介绍“逻辑数据湖”的概念。这是一种架构,其中物理数据湖通过与虚拟层的协同工作扩展其能力。在本系列的后续文章中,我将讨论如何设计逻辑数据湖,以及逻辑数据湖在数据科学家和商业用户中的应用。

数据湖的三大挑战

Hadoop的生态系统正变得越来越复杂,其成熟度和项目数量几乎能够满足各种用例的需求。然而,Gartner预测,Hadoop分发版可能永远无法到达生产力的顶峰。

与此同时,主要云供应商的新产品将SaaS的理念与大数据相结合。例如,HDFS、Amazon S3和Azure数据湖存储之间的界限越来越模糊。像Snowflake和Redshift这样的下一代云MPP(大规模并行处理)几乎与SQL-on-Hadoop系统(如Spark或Presto)难以区分(例如Qubole或Databricks)。显然,我们正处于一个数据管理变革的有趣时期。

然而,在这一不断发展的世界中,“数据湖”这一概念始终是讨论的中心。数据湖是一个可以容纳所有数据的地方,具有几乎无限的存储空间和强大的处理能力。然而,尽管数据湖优势明显,但它也饱受批评。例如,Gartner、Forbes和“数据沼泽”等概念都提及了数据湖面临的一些挑战。以下是其中的三大挑战:

  • “先加载后提问”的悖论

良好的数据治理对可用的数据湖至关重要,但这种策略容易导致数据湖失控,出现多个未受控的重复数据、过时版本和未使用的表。此外,由于数据限制和地方法律的原因,并非所有数据都能被复制到数据湖中。

  • 原始数据的高期望值

通常,在明确预期的结果和收益之前,就创建数据湖和数据管道是一种错误的做法。更好的方式是首先确定数据湖中需要哪些数据、用途是什么,以及需要的数据粒度。

  • 复杂性和技术人才问题

管理本地Hadoop集群或微调基于云的系统是一项复杂的任务。当这些任务落到非技术业务用户手中时,容易导致项目失败。而找到能够成功操作和使用这些集群的人才既困难又昂贵。许多情况下,数据湖仅被数据科学家使用,限制了其潜在价值。

这些挑战降低了数据湖的投资回报率(ROI),延误了项目进度,提高了运营成本,并因最初的高期望引发了挫败感。

数据虚拟化与数据湖

数据虚拟化可以克服这些挑战。事实上,数据虚拟化与数据湖有许多相似之处,因为这两种架构的初衷都是为最终用户提供所有数据的访问权限。它们都旨在通过对大量数据的广泛访问,更好地支持BI、分析,以及诸如机器学习(ML)和人工智能(AI)等新兴趋势。然而,这两种方法在具体实现细节上却截然不同。

图片

这种方法作为一种减少完全持久化架构缺点的方式,得到了越来越多的关注。逻辑数据湖是一种混合方法,它以物理数据湖为核心,在其上添加了虚拟层,从而具备许多优势。逻辑数据湖的基本原则如下:

  • 通过逻辑方法访问所有数据资产,无论其位置和格式如何,且无需复制数据。复制数据成为一种选择,而非必需。

  • 可以定义复杂的派生模型,使用任何连接系统中的数据,同时跟踪其数据血缘、转换和定义。

  • 围绕大数据系统(物理数据湖)为中心,并以更智能的方式利用其处理能力和存储能力。

如何解决传统数据湖的主要问题

逻辑数据湖能够通过以下方式解决传统数据湖的主要问题,并克服前文提到的三大挑战:

1. “先加载,后提问”

  • 在逻辑架构中,数据无需持久化,而是通过连接访问。这意味着无需投入大量初始成本将数据导入逻辑数据湖。

  • 数据虚拟化层可以直接访问数据源中的数据,无需创建多份副本。

  • 当直接访问源数据的性能不理想时,像Denodo平台这样的数据虚拟化技术可以轻松将数据加载到物理数据湖中,从而实现无缝过渡。

2. 对原始数据的高期望

  • 在逻辑系统中,原始数据可以保留在原始数据源中,仅将有用的数据引入系统。数据可以在逻辑模型中进行整理、转换、聚合和组合,只有需要的部分最终被持久化到数据湖中。

  • 对于没有存储数据的源(例如设备和传感器),将流式数据存储到物理数据湖是最佳选择。

3. 复杂性

  • 虚拟层提供了一个简单的SQL引擎,抽象了后端系统的复杂性,便于读取、上传数据和处理复杂查询。

  • 用户友好的数据目录使用户可以轻松访问数据模型、数据血缘、描述和数据预览。

  • 降低了对IT的需求,同时扩大了数据湖的使用范围,吸引更多非技术用户参与。

图片

综上所述,与传统的物理数据湖相比,逻辑数据湖能够缩短开发周期,降低运营成本,并扩大采用范围,从而提升数据湖投资的ROI。

标签:逻辑,虚拟化,原始数据,Hadoop,访问,湖仓,数据
From: https://blog.csdn.net/Denodo/article/details/144449690

相关文章

  • node.js毕设基于hive线上问诊系统数据仓库 论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于线上问诊系统数据仓库的研究,现有研究主要集中在系统的功能实现、用户体验优化等方面。专门针对基于hive构建线上问诊系统数据仓库的研究较少。在国......
  • 记一次数据库查询排序不一致导致的事故
    数据库查询排序不一致事故报告1.引言在数据库开发和维护过程中,查询结果的排序一致性是一个关键的需求。然而,近期在我们的招标系统中发生了一起因数据库查询排序不一致而导致的问题,给系统稳定性和用户体验带来了负面影响。本文将详细还原此次事故的过程,分析问题的根本原因,并提出......
  • C# DLT645 97/07数据采集工具
    电表模拟器 97协议测试07协议测试  privatevoidbtnSend_Click(objectsender,EventArgse){stringaddr=txtAddr.Text.Trim();stringdata=txtDataFlg.Text.Trim();bytecontrol=0x01;switch(cmbControl.SelectedIndex){......
  • 数据结构结课设计——使用随机深度优先搜索完成随机迷宫的生成
     博主在本学期的c语言数据结构课程选择了随机迷宫生成作为结课设计,并运用随机深度优先,下面是我的代码设计思路与代码,  设计思路上迷宫的随机生成问题可以分成两个大步骤来进行:第一步迷宫的随机初始化:通过二维数组来对迷宫进行表示,将迷宫全部设置为1,再通过随机函数将迷宫......
  • MySQL InnoDB 中的数据页
    文章目录1.数据库的存储结构概述1.1表空间(Tablespace)1.2段(Segment)1.3区(Extent)1.4页(Page)2.InnoDB数据页的深入解析2.1数据页的物理结构2.2数据页中的行存储2.3数据页满时的分裂与合并2.4大字段(LOB)的存储机制2.5页分裂与合并的影响3.B+Tree查询逻辑的实现......
  • 达梦数据库系列教程01---数据库备份与还原
    一、备份数据库1、右键服务器管理,打开如下的页面,选配置,再点转换2、归档配置修改,选“归档”,填一个归档目档  3、再次选择“系统管理”,将态管理选中“打开”,再点转换 4、备份---》库备份----》新建备份  二、还原数据库 ......
  • 【深度学习|地学应用之遥感图像切块】海量的遥感数据为深度学习的地学应用提供了基础,
    【深度学习|地学应用之遥感图像切块】海量的遥感数据为深度学习的地学应用提供了基础,那么大幅遥感影像如何输入到深度学习中进行模型训练呢?patch块的生成,附代码【深度学习|地学应用之遥感图像切块】海量的遥感数据为深度学习的地学应用提供了基础,那么大幅遥感影像如何输入......
  • UE4脸部捕捉 LiveLink 数据
     enumclassEARFaceBlendShape:uint8{ //Lefteyeblendshapes EyeBlinkLeft, EyeLookDownLeft, EyeLookInLeft, EyeLookOutLeft, EyeLookUpLeft, EyeSquintLeft, EyeWideLeft, //Righteyeblendshapes EyeBlinkRight, EyeLookDownRight, EyeLookInRight, EyeLookOut......
  • 【java毕设 python毕设 大数据毕设】基于springboot的旧物回收管理系统的设计与实现
    ✍✍计算机编程指导师⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java实战|SpringBoot/SSMPython实战项目|Django微信小程......
  • 【java毕设 python毕设】基于springboot的考务管理系统的设计与实现 【附源码+数据库+
    ✍✍计算机编程指导师⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java实战|SpringBoot/SSMPython实战项目|Django微信小程......