解析湖仓一体的支撑技术及实践路径

news2024/9/19 12:10:39

自2021年“湖仓一体”首次写入Gartner数据管理领域成熟度模型报告以来,随着企业数字化转型的不断深入,“湖仓一体”作为新型的技术受到了前所未有的关注,越来越多的企业视“湖仓一体” 为数字化转型的重要基础设施。

01

数据平台的发展历程

需求催生技术革新,在存储海量数据需求的推动下,数据平台架构持续演进,经过数十年的发展,主要经历了数据库、数据仓库、数据湖三个阶段。湖仓一体是数据平台发展的重要趋势。

第一阶段:数据库

诞生于20世纪60年代,主要用于OLTP场景。代表产品: Oracle、SQL Server、Mysql等

第二阶段:数据仓库

20世纪90年代代数据仓库理论被提出,主要用OLAP场景分析。传统数仓有Clickhouse、Greenplum等,云数仓有AWS redshift、Snowflake等。

第三阶段:数据湖

2010年数据湖概念被提出,随着三大开源数据湖技术的成熟,数据湖产品加速落地。代表产品有亚马逊-S3、LakeForation,阿里云-数据湖构建DLF、数据开发治理Dataworks、对象存储OSS、开源大数据平台EMR等。

02

数据湖、数据仓库特性分析

数据仓库主要用于解决单个关系型数据库架构,无法支撑庞大数据量的数据存储问题,很好地解决了TB到PB级别的数据处理问题,但是由于数据仓库仍以结构化数据为主,无法解决业务增长带来的半结构化、非结构化数据的存储、处理问题,且其整个建设过程需要遵循一系列规范,比如标准化的数据集成模式和存储格式、统一的数据仓库分层分域模型以及指标体系建设等,带来了数据仓库建设存储成本高、维护开发难度大、扩展能力受限制等问题。 

数据湖的出现很好解决了数据仓库建设存在的一系列问题,将数据管理的流程简化为数据入湖和数据分析两个阶段。数据湖支持各种 类型数据的统一存储。数据分析则以读取型(schema on read)形式,极大提升分析效率。然而数据湖对多样类型数据的支持以及灵活高效的 分析方式,带来了数据治理难的问题,比如因为缺乏治理导致数据质量下降、数据不可用等,很容易退化形成数据沼泽。 

结论:数据仓库和数据湖是两套相对独立的体系,各有优劣势,无法相互替代

△数据湖与数据仓库对比表

03

湖+仓混合业务架构

为满足存储多种数据类型、多场景分析等业务诉求,企业采用混合部署模式,数据湖、数据仓库、关系型数据库等多种架构并存,其中数据湖和数据仓库通过ETL进行数据交换。

数据湖和数据仓库是两套独立的体系,其中数据湖基于 Hadoop 技术生态 (HDFS、Spark、Flink 等技术)来实现,主要用于支撑多源异构的数 据存储,执行批处理、流处理等工作负载。数据仓库主要基于 MPP 或 者关系型数据库来实现,主要支撑结构化数据在 OLAP 场景下的 BI 分析和查询需求。

△湖+仓混合架构图

“数据湖+数据仓库”混合架构满足了结构化、半结构化、非结构化数据高效处理需求,解决了传统数据仓库在海量数据下加载慢、数据查询效率低、难以融合多种异构数据源进行分析的问题,但也存在明显的四大弊端。一是数据冗余,增加存储成本。二是两个系统间额外的 ETL(抽取、转化、加载)流程导致时效性差。三是数据一致性保障低,增加数据校验成本。四是混合架构复杂,开发运维难度大、成本高。

04

湖仓一体实践路径

“数据湖+数据仓库”混合架构是技术向业务妥协的一个产物,并不是真正意义的湖仓一体平台。2020年Databrics提出“湖仓一休”概念。湖仓一体是指融合数据湖与数据仓库的优势,形成一体化、开放 式数据处理平台的技术。通过湖仓一体技术,可使得数据处理平台底 层支持多数据类型统一存储,实现数据在数据湖、数据仓库之间无缝 调度和管理,并使得上层通过统一接口进行访问查询和分析。具备的能力包括:

  • 多模存储:多样数据统一存储

  • 架构统一:统一资源调度、存储管理、计算引擎、查询接口

  • 性能优越:数据加工链路缩短资源复用性增加、时效性提高

  • 场景多元:多样化业务场景和极致用户体验

△湖仓一体架构技术架构图 

总体来看,湖仓一体通过引入数据仓库治理能力,既可以很好地解决数据湖建设的数据治理难问题,也能更好地挖掘数据湖中的数据价值,将高效建仓和灵活建湖两大优势融合在一起,提升了数据管理效率和灵活性。

企业需求的驱动下,数据湖与数据仓库在原本的范式之上向其限制范用扩展,逐渐形成了“湖上建仓”与“仓外挂湖”两种湖仓一体实现路径。湖上建仓和仓外挂湖虽然出发点不同,但最终湖仓一体的目标标一致。

△两种实现路径对比表

湖上建仓

定义:是指基于云存储或第三方对象存储的云数据湖架构,或者基于开源 Hadoop 生态体系并以 DeltaLake、Hudi、Iceberg 三大开 源数据湖作为数据存储中间层实现多源异构数据的统一存储,以统一调用接口方式调用计算引擎,最终实现上下结构的湖仓一体架构。

原理:以数据湖为基石,在数据湖中引入数据仓库的数据治理能力,实现数据湖到湖仓一体的进化。

实现方案:基于云存储或第三方对象存储的云数据湖架构,基于开源Hadoop生态体系扩展。

仓外挂湖

定义:是指以 MPP 数据库为基础,使用可插拔架构,通过开放接口对接外部存储实现统一存储,在存储底层共享一份数据,计算、 存储完全分离,实现从强管理到兼容开放存储和多引擎。

原理:以MPP数据库为核心,使用可插拔架构,通过开放接口对接外部存储实现统一存储。

实现方案:基于云原生MPP数据库构建。

05

亿信华辰湖仓一体解决方案

湖仓一体的核心是实现数据湖和数据仓库中的数据、元数据的无缝打通,并可自由流动。亿信华辰结合多年的BI和数仓实施经验,综合传统数据仓库和现代数据湖两种技术特点,推出了仓湖一体解决方案。该建设方案涵盖数据存储、数据集成、数据交换、数据共享等多个方面,综合数据湖、数据仓库两种技术演进方向,为企业用户提供云原生仓湖一体解决方案,构建企业数字化新基座。

亿信华辰仓湖一体数据中心定位于为企业提供易于部署、开发、运维的数据底座平台,平台提供的能力包括:数据的统一分类存储,数据采集加工的流程自动化,可视化的数据开发,提供多样化的数据共享访问标准接口等等。建设内容包括数据采集、数据处理、数据建模、数据交换四大方面。

湖仓一体行业正处在发展初期,总的来看湖仓一体并不是一个纯技术攻关工作,而是技术逐步融合、整合的过程,其本质是异构数据平台走向一体化的过渡阶段。亿信华辰基于客户需求和技术演进趋势持续创新,为企业客户提供仓湖一体解决方案,致力于构建企业数据资源共享池,让企业业务的创新更敏捷,业务洞察更准确,加速释放数据价值。

以上部分内容引用CCSA TC601《湖仓一体技术与产业研究报告》

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

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

相关文章

kubernetes高性能存储-piraeus简介

piraeus简介 Piraeus 是面向 Kubernetes 的高性能、高可用性、简单、安全且与云无关的云原生存储解决方案,号称性能和稳定性都优于 Ceph/OpenEBS/Longhorn 等项目。Piraeus 对应的商业产品为LINSTOR 。 众所周知,本地存储具有高性能的优势,…

基于Python 简易实现接口测试自动化

目录 实现思路 统筹脚本 请求封装 日志封装 结果比对 结果邮件 用例获取及数据格式化 请求url转换 测试用例excel结构 测试报告 邮件接收结果 资料获取方法 实现思路 使用excel管理用例用例信息,requests模块发送http请求,实现了记录日志&…

科聪控制系统六大行业典型应用案例合集

01. 纺织行业 科聪移动机器人通用控制系统赋能无人接丝AGV实现丝盘自动化上下料 应用难点:无人接丝AGV是纺织行业无人工厂重要环节之一,这个环节对机器人到点精度要求非常高,无人接丝AGV的到位精度,必须确保“丝级”的准确无误&…

geeemap学习总结(2)——地图底图应用

1. 加载库中已有图层 import os os.environ[HTTP_PROXY] http://127.0.0.1:8001 os.environ[HTTPS_PROXY] http://127.0.0.1:8001 # 设置中心位置/地图层级/图层加载高度,加载图层 import geemap Mapgeemap.Map(center[40, 100], zoom4, height600) Map# 添加已经…

Javascript 正则

基本语法 定义 JavaScript种正则表达式有两种定义方式 构造函数 var regnew RegExp(<%[^%>]%>,g);字面量 var reg/<%[^%>]%>/g;g&#xff1a; global&#xff0c;全文搜索&#xff0c;默认搜索到第一个结果接停止i&#xff1a;ingore case&#xff0c;忽略…

Linux(进程地址空间)

进程地址空间 程序地址空间进程地址空间 程序地址空间 在Linux环境下&#xff0c;我们可以对上述程序空间地址进行验证&#xff1a; 运行程序&#xff0c;可以看到&#xff0c;我们就可以很好看出程序的地址空间的排布了&#xff1a; 进程地址空间 严格来说&#xff0c;我们…

免费商用图片素材网站,4K高清无水印。

推荐6个图片素材网站&#xff0c;免费下载&#xff0c;还可以商用&#xff0c;希望对大家有帮助。 菜鸟图库 美女图片|手机壁纸|风景图片大全|高清图片素材下载网 - 菜鸟图库 网站主要是为新手设计师提供免费素材的&#xff0c;素材的质量都很高&#xff0c;类别也很多&#x…

NGINX组件(rewrite)

一、location匹配的规则和优先级&#xff08;*&#xff09; URI&#xff1a;统一资源标识符&#xff0c;是一种字符串标识&#xff0c;用于标识抽象的或者是物理资源&#xff1b;如&#xff1a;文件、图片、视频等 nginx中的URI匹配的是&#xff1a;网址”/“后的路径 如&…

17 spring项目——登录拦截器

经实验发现&#xff0c;当访问拦截器拦截的地址的时候都会经过拦截器。在拦截器中&#xff0c;返回true则放行&#xff0c;允许访问该地址&#xff1b;返回false&#xff0c;则拦截&#xff0c;不允许访问该地址&#xff0c;但可以在return前去设置要跳转的地址。 拦截器可以拦…

【二分】CF1623 C

Problem - 1623C - Codeforces 题意&#xff1a; 思路&#xff1a; 肯定是二分&#xff0c;我们去二分最小值&#xff0c;然后check的时候最小值要大于mid check的时候要让最小值尽可能大 注意到我们不需要去管最大值&#xff0c;只需要最小值尽可能大就好了&#xff0c;因…

Creo散热处理结构设计--阵列操作

问题描述&#xff1a; 在某一平面掏孔以散热&#xff0c;如何快速的绘制多孔并掏空处理 解决方式&#xff1a; 采用阵列操作。 1&#xff09;绘制圆、拉伸处理 2&#xff09;选择需要阵列的单元&#xff0c;选择阵列操作&#xff0c;在弹出的界面选择方向&#xff0c;按照…

BigDecimal(double)和BigDecimal(String)有什么区别?

面试回答 有区别&#xff0c;而且区别很大。 因为double是不精确的&#xff0c;所以使用一个不精确的数字来创建 BigDecimal&#xff0c;得到的数字也是不精确的。如 0.1 这个数字&#xff0c;double 只能表示他的近似值。 所以&#xff0c;当我们使用 new BigDecimal(0.1) 创建…

SwiftUI 兼容 Light Dark

1. Assets 右键 New Color Set 2. 起个合适的颜色名称&#xff0c;修改一下 demo_bgcolordemo_card_bgcolordemo_text_color 3. Show Me The Code // // light_dark_demo.swift // bill2 // // Created by 朱洪苇 on 2023/8/10. //import SwiftUIstruct light_dark_demo: …

机器学习---自编码器

自编码器过程 输入一个图片&#xff0c;经过encoder变成一个向量&#xff0c;再通过decoder将这个向量反向生成输入的图片。 这里我们希望输入和输出越接近越好。这个过程我们称为重建。 特点&#xff1a;不需要任何的标注资料。 在2006年这个思想就被提出来了&#xff1a; …

消息队列比较

、ActiveMQ 优点&#xff1a;单机吞吐量万级&#xff0c;时效性ms级&#xff0c;可用性高&#xff0c;基于主从架构实现高可用性&#xff0c;消息可靠性较低的概率丢失数据。 缺点&#xff1a;官方社区现在对ActiveMQ5.X维护越来越少了&#xff0c;高吞吐量场景较少使用。 2、K…

《Linux从练气到飞升》No.10 冯洛依曼体系结构

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

rust关于项目结构包,Crate和mod和目录的组织

rust 最近开始学习rust语言。感觉这门语言相对java确实是难上很多。开几个文章把遇到的问题记录一下 rust关于包&#xff0c;Crate 关于包&#xff0c;Crate这块先看看官方书籍怎么说的 crate 是 Rust 在编译时最小的代码单位。如果你用 rustc 而不是 cargo 来编译一个文件…

Opencv实战(银行卡识别)

目录 模版匹配不同方法对比一个模板匹配多个 直方图及直方图均衡化Mask操作直方图均衡化自适应直方图均衡化 模版匹配 公式 import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline def cv_show(img,nam…

win10 + VS2022 安装opencv C++

最近需要用到C opencv&#xff0c;看了很多帖子都需要自己编译opencv源码。为避免源码编译&#xff0c;可以使用VS来配置opencv C。下面是主要过程&#xff1a; 目录 1. 从官网下载 opencv - Get Started - OpenCV 2. 点击这个exe文件进行安装 3. 配置环境变量 4. VS中的项…

【数据结构与算法】多路查找树

多路查找树 二叉树的问题分析 二叉树的操作效率较高&#xff0c;但也存在问题。 二叉树需要加载到内存的&#xff0c;如果二叉树节点少&#xff0c;没什么问题&#xff0c;但是如果二叉树的节点很多&#xff08;比如 1 亿&#xff09;&#xff0c;就存在如下问题&#xff1a…