新型大数据架构之湖仓一体(Lakehouse)架构特性说明——Lakehouse 架构(一)

文章目录

  • 为什么需要新的数据架构?
  • 湖仓一体(Lakehouse)——新的大数据架构模式
    • 同时具备数仓与数据湖的优点
    • 湖仓一体架构
      • 存储层
      • 计算层
    • 湖仓一体特性
      • 单一存储
      • 拥有数据仓库的查询性能
      • 存算分离
      • 开放式架构
      • 支持各种数据源类型
      • 支持各种使用方式
      • 架构简单
      • 数据共享
      • schema 过滤和推演
      • 时间回溯

为什么需要新的数据架构?

数据仓库和数据湖一直是实现数据平台最流行的架构,然而,过去几年,社区一直在努力利用不同的数据架构方法来实现数据平台。
寻找新方法而不是经过充分验证的传统数据架构(如数据仓库或数据湖)的动机主要有两个原因:

  • 传统架构在作为独立系统实现时存在一些限制。
  • 过去几年中社区出现了许多技术进步,云空间内的创新和开源技术的成熟是主要推动力。

公司不断寻求克服传统架构的局限性,并利用新技术来构建可扩展、安全且可靠的平台。公司、独立服务供应商 (ISV) 和系统集成商 (SI) 尝试了不同的方法和创新解决方案来实施此类数据平台。
下面列出了其中一些方法:

  • 结合数据湖和数据仓库两层架构。
  • 利用混合事务/分析处理 (HTAP) 技术,联合使用在线事务处理系统 (OLTP) 和联机分析处理系统 (OLAP) 的工作方式。
  • 构建可以处理非结构化数据以及结构化和半结构化数据的现代云数据仓库。
  • 构建高性能计算引擎,直接在数据湖上执行 BI。

社区多年来的所有这些努力表明需要一种新的架构模式,该模式可以提供以下功能:

  • 支持实施一个可以处理所有数据格式并支持多种用例的统一平台
  • 应提供ACID支持、优秀的BI性能以及数据仓库的访问控制机制
  • 应该像数据湖一样可扩展、经济高效且灵活。
  • 最重要的是,它应该支持构建一个简单开放的数据平台,可以帮助用户轻松消费数据。

这就是过去几年出现的一种新模式——湖仓一体架构。

湖仓一体(Lakehouse)——新的大数据架构模式

新工具、产品和开源技术改变了公司在过去几年中构建大数据系统的方式。这些新技术有助于简化复杂的数据架构,构建更可靠、开放和灵活的数据平台,以支持各种数据存储和数据分析工作。
Lakehouse 是一种新的架构模式,它利用这些技术增强来构建简单且开放的数据平台。如下图所示,LakeHouse的核心是一个带有附加事务层和高性能计算引擎的数据湖。附加事务层帮助它获得类似数据仓库的ACID属性和其他特性。


说明
附加事务层有时也称为元数据层,因为为了保持一致性, 它提供与事务相关的元数据。


同时具备数仓与数据湖的优点

使用 Lakehouse 架构构建的数据平台同时具有数据仓库和数据湖的特性,因此被称为 Lakehouse。下图显示了 Lakehouse 的关键功能,它结合了数据湖和数据仓库的最佳功能。

数据湖的优点

  • 高可用性
  • 存储成本低
  • 可扩展性好
  • 支持各种结构化和非结构化数据存储
  • 支持机器学习模型

数据仓库的优点

  • 支持ACID 事物性
  • 优秀的使用方式
  • 支持更新和删除数据
  • 权限控制简单
  • 支持 SQL 查询
  • 支持 BI 报表生成

Lakehouse 是如何支持数据湖的?
与数据湖一样,lakehouse 使用 Amazon S3、ADLS 或 OSS 等云对象存储,并以 Apache Parquet、Apache Avro 或 Apache ORC 等开放文件格式存储数据。
这种云存储使 Lakehouse 能够拥有数据湖的所有最佳功能,例如高可用性、高耐用性、成本低廉、可扩展性、支持所有数据类型(结构化、半结构化、非结构化)以及支持 AI/ML 用例。

Lakehouse 是如何支持数据仓库的?
与数据湖相比,Lakehouse 有一个额外的组件 - 事务层,它是文件格式之上的附加层,这个额外的层将 Lakehouse 与数据湖区别开。它使 Lakehouse 能够获得数据仓库功能,例如 ACID 合规性、更新/删除支持、更好的 BI 性能和细粒度访问控制。用于实现该事务层的技术称为“open table formats”或“storage frameworks”。

湖仓一体架构

下图是数据湖仓的简单架构图,包括存储层和计算层:

Lakehouse架构由存储层和计算层组成,计算层的数据来源于存储层。

存储层

存储层主要由三个组件组成——云存储、开放的文件格式(open file format)和开放的表格式(open table format)。

云存储
云存储是一种提供实施数据湖和 Lakehouse 平台所需的高可用性、持久性和可扩展性的服务,可以使用亚马逊的 S3 存储或者阿里云的 OSS 对象存储等云服务商提供的对象存储。
公司也可以使用本地 HDFS 存储来实施 Lakehouse,仅使用云对象存储来实现 Lakehouse 是没有必要的。但考虑到成本低、计算与存储分离、易于扩展等特点,建议使用云对象存储作为实现 Lakehouse 的底层基础设施。

开放的文件格式
数据平台可以将不同文件格式的数据存储在云存储中,CSV、JSON 和 XML 等文件格式是最流行的。对于分析平台,最广泛采用的三种文件格式是:

  • Apache Parquet
  • Apache ORC
  • Apache AVRO

这几种都是开源的列式存储格式,很多存储和处理应引擎都会兼容这几种存储格式。

开放的表格式
湖仓 Lakehouse 支持多种表存储格式,目前开源社区比较流行的是下边三种:

  • Apache Iceberg

    Apache Iceberg 是一种开放表格式,可与基于云的数据湖和 Apache Parquet、Apache AVRO 和 Apache Optimized Row Columnar (ORC) 等开放文件格式一起使用,以实现 Lakehouse 架构。它支持时间回溯、schema 推演和 SQL 查询等功能,使 Lakehouse 的构建更快、更容易。

  • Apache Hudi

    Apache Hudi 有助于实现事务数据湖,并可用于为数据湖带来类似数据仓库的功能。它提供 ACID 事务保证、时间回溯和回滚能力以及schema 推演功能。

  • Linux 基金会的 Delta Lake

    Databricks 将 Delta Lake 作为一个内部项目启动,后来在 Linux 基金会下将其开源。它通常被称为用于构建 Lakehouse 架构的开源存储框架。 Delta Lake 为数据湖提供元数据层和 ACID 功能。它还提供时间回溯、schema 推演以及审计跟踪记录等功能。

计算层

Lakehouse 架构的主要优点之一是其开放性以及可由任何兼容处理引擎直接访问或查询的能力。它不需要任何特定的专有引擎来运行 BI 工作负载或交互式分析。这些计算引擎可以是开源的,也可以是专为 Lakehouse 架构设计的专用商业查询引擎。

计算引擎
可以通过Apache Spark、Presto、Trino 和 Hive 等开源计算引擎,进行数据湖数据查询分析。

湖仓一体特性

单一存储

如前面所说,lakehouse 的核心是一个使用云对象存储和附加事务层构建的数据湖。没有像专用数据仓库那样的单独存储来支持 BI 查询,所有消费者都直接从数据湖读取、访问或查询数据。相同的云对象存储支持所有用例,包括 BI 和 AI/ML 工作负载。

拥有数据仓库的查询性能

虽然数据湖使用对象存储保存数据,但是对象存储不适合进行大数据查询和分析,可以通过湖仓一体架构的计算层去查询计算存储层中(对象存储)的数据,拥有类似传统数据仓库的查询性能。

存算分离

Lakehouse 架构将存储和计算分离,这有助于单独扩展存储和计算容量,可以轻松添加更多存储,而无需增加计算容量,如下如所示:

开放式架构

Lakehouse架构使用“开放”方法来实现数据平台。它使我们可以自由地为我们的数据平台使用开源数据格式和开源计算引擎。与传统数据仓库不同,传统数据仓库计算和存储紧密绑定,Lakehouse 架构可以使用与底层存储格式兼容的任何分布式计算引擎。

这这种开放的架构设计可以使数据平台直接从云存储中访问数据,而不需要依赖于供应商绑定的各种软件。

支持各种数据源类型

因为使用的是对象存储,可以支持各种结构化和非结构化的源数据,并且使用的是 ELT 的加载模式,数据源在写入的时候,不会进行 schema 校验,可以快速的接入各种类型的数据源。

支持各种使用方式

因为支持各种类型的数据源接入,Lakehouse 架构除了支持 BI 报表查询,ETL 等,还支持 AI/ML 机器学习模型存储,实时计算等。

架构简单

所有数据都驻留在 Lakehouse 架构中的单个存储层中。由于没有单独的专用仓库,因此它简化了数据架构,并减少了将数据从数据湖移动到数据仓库所需的额外 ETL 管道。

它还避免了与数据集成到数据湖和数据仓库相关的延迟、故障或数据质量问题。

这种具有单存储层的架构有几个优点:

  • 无需额外的工作即可在数据湖和数据仓库之间同步数据。
  • 无需担心数据湖和数据仓库之间数据类型的更改。
  • Lakehouse 中的数据治理变得更加容易,因为我们只需在一处实施访问控制。在两层存储系统中,我们必须维护单独的访问控制机制来访问数据湖和数据仓库中的数据,并确保它们始终同步。
  • ML 工作时可以直接从 Lakehouse 读取数据,直接访问底层 Parquet、Avro 或 ORC 存储文件,而无需将任何聚合数据从数据仓库复制到 Lakehouse。

数据共享

下游数据消费者可以使用自己喜欢的方式直接从云对象存储中获取他们想要的数据,而无需和数据平台绑定,使用平台的工具,这使得数据共享非常简单。
另外数据生产者也不用关心用户改如何获取数据,只需要通过外部共享服务来做权限控制即可,如下图所示:

schema 过滤和推演

Lakehouse 架构在接入数据源时可以定义 schema 来保证写入的数据是要我们想要的类型和格式,但是也可以在写入时不定义 schema,这将可以保存各种格式和类型的数据,只需要在读取时定义 schema 就可以获取我们想要的数据。
这种 schema 推演可以保证数据的时效性,以及不丢失性。

时间回溯

Lakehouse 架构的事物层使其能够维护各种版本的数据,这有助于我们查询各个版本的数据,只需要简单的指定版本号或者时间戳即可。

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

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

相关文章

csdn的编写教程(官方给的)

自定义的目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚…

ubuntu 16.04.7连不上网的解决方案

首先在编辑选项卡里找到虚拟网络编辑器, 点击更改设置 点击添加网络 点击确定 选择桥接模式,自动后点击应用,最后点击确定即可。

4.20+C语言感想,有趣的思考题,case的省略操作,统计位数,终止循环,break和continue语句, 准备下一篇见。

鹏哥C语言感想 一.高级 这可不是什么煎饼,这种食物叫做蓝莓,俗称苹果。生长在撒哈拉沙漠的雨林地带。因外形酷似企鹅,所以我们又喜欢叫他北极熊。你们这些人,连仙人掌都不知道,就不要乱说他是西瓜好吗?再…

嵌入式4-20

客户端 #include <myhead.h> #define SER_IP "192.168.125.244" #define SER_PORT 8888 typedef struct Node { char username[20];struct sockaddr_in cin;struct Node *next; }Node,*Node_p; typedef struct {int flag;char username[20];char data[1024]…

java中File类和输入输出流的用法

目录 针对文件系统进行操作 针对文件内容进行操作 java针对文件操作可以分为两种&#xff1a;1&#xff09;针对文件系统进行操作&#xff0c;如创建文件&#xff0c;删除文件&#xff0c;创建目录&#xff0c;重命名文件等。 2&#xff09;针对文件内容进行操作&#xff0c…

【webrtc】m98 RoundRobinPacketQueue的优先级处理

m98 代码 PacedSender::EnqueuePackets 的调用者可能是多个地方,所以这个要加锁保护。RoundRobinPacketQueue 本身是没有锁的发现m98和新版本不同,参考:【webrtc】m114自己实现的PrioritizedPacketQueuepush和pop都是RtpPacketToSend 但是实际上,内部是封装为QueuedPacket 处…

Darknet框架优化介绍

一、DarkNet框架简介 1.DarkNet的简介 Darknet是一个完全使用C语言编写的人工智能框架&#xff0c;可以使用CUDA的开源框架。主要应用于图像识别领域。 它具有可移植性好&#xff0c;安装间接&#xff0c;查看源码方便等优势&#xff0c;提供了OpenCV等附加选项&#xff0c;还…

基于SSM+Jsp+Mysql的电子商城系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

hackthebox - Redeemer

2024.4.19 TASK 1 Which TCP port is open on the machine? 6379 TASK 2 Which service is running on the port that is open on the machine? redis TASK 3 What type of database is Redis? Choose from the following options: (i) In-memory Database, (ii) Traditiona…

Java -集合-知识点

本文详细介绍了Java中集合的基本概念、常用数据结构和核心特性。通过学习本文&#xff0c;读者可以了解到Java集合框架的核心接口和实现类&#xff0c;掌握各种数据结构在不同场景下的应用方法和优劣势&#xff0c;以及如何使用集合框架提供的方法进行数据操作和处理。同时&…

智慧公厕是如何诞生的?

在城市化进程中&#xff0c;公共卫生设施的建设一直是重要议题之一。而随着科技的不断发展&#xff0c;智慧公厕作为一种创新的解决方案&#xff0c;逐渐成为了现代城市管理的亮点。那么&#xff0c;智慧公厕是如何产生的呢&#xff1f; 一、城市化进程的推动 城市人口的增加和…

[阅读笔记16][Orca-2]Teaching Small Language Models How to Reason

接下来是Orca-2&#xff0c;这篇是微软在23年11月发表的论文&#xff0c;在Orca-1的基础上又进行了一些改进。 作者希望教会Orca-2各种推理策略&#xff0c;例如逐步思考、回忆然后回答、先回忆再推理再回答、直接生成回答等等策略。并且Orca-2应该能针对不同任务应该使用最合适…

使用PHP开发体育赛事直播平台,有这些缺点和优点

"东莞梦幻网络科技"作为体育直播平台开发领域的领导者&#xff0c;选择使用PHP开发体育赛事直播平台的现成源码&#xff0c;为什么会选择该语言&#xff0c;背后的选择理由可以从该技术的优点和缺点中找到答案。 一、优点1、易学易用与快速开发&#xff1a;PHP语言语…

为电路提供参考电压(基准电压) - 齐纳二极管的使用

在电路中通常需要用到参考电压&#xff0c;即提供一个恒定的精确的电压值。比如稳压电路、比较器电路、微控制器的Vref&#xff0c;这些电路都需要提供参考电压。很多厂家都提供了参考电压芯片&#xff0c;不过最简单最省钱的方式是使用齐纳二极管。 齐纳二极管 齐纳二极管也是…

OSI网络七层协议 ——(随手笔记)

1.OSI OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互连。 一般都叫OSI参考模型&#xff0c;是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架&#xff08;物理层、数据链路层、网络层、传输层、会话层、表示层…

【MATLAB基础绘图第21棒】绘制比例弦图 (Chord Diagram)

MATLAB绘制比例弦图 Chord Diagram 1 简介1.1 弦图简介1.2 比例弦图简介 2 MATLAB绘制比例弦图2.1 数据准备2.2 基本绘制2.3 添加方向箭头2.4 添加绘图间隙2.5 添加刻度2.6 修改标签2.7 颜色设置2.8 弧块及弦属性设置2.8.1 弧块属性设置2.8.2 弦属性设置 2.9 字体设置 参考 1 简…

python数据分析pyecharts【饼状图、直方图、词云、地图】

目录 饼状图 直方图 词云 地图 饼状图 from pyecharts.charts import Pie from pyecharts import options as optsdata {神农架林区: 2.6016,恩施州: 3.0729,十堰市: 3.4300,宜昌市: 3.4555,襄阳市: 4.0543,咸宁市: 4.1145,荆门市: 4.1777,潜江市: 4.2574,黄冈市: 4.40…

C++智能指针(二十)

一.RAII&#xff08;Resource Acquisition Is Initialization&#xff09; RAII资源获取即初始化&#xff0c;RAII的思想就是在构造时初始化资源&#xff0c;或者托管已经构造的资源。在析构的时候释放资源。一般不允许复制或赋值&#xff0c;并且提供若干的资源访问的方法。比…

OpenHarmony其他工具类—lua

简介 Lua是一种功能强大、高效、轻量级、可嵌入的脚本语言。 支持过程编程、面向对象编程、函数编程、数据驱动编程和数据描述。 下载安装 直接在OpenHarmony-SIG仓中搜索lua并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的lua库代码存在以下路径&#…

C# 将 TextBox 绑定为 KindEditor 富文本

目录 关于 KindEditor 绑定设计 部署 KindEditor 实现代码 小结 关于 KindEditor KindEditor 基于JavaScript 编写&#xff0c;可以与众多WEB应用程序结合。KindEditor 依靠出色的用户体验和领先的技术提供富文本编辑功能&#xff0c;是一款非常受欢迎的HTML在线编辑器。…
最新文章