BDCC- 数据湖体系

news2024/11/17 19:47:23

文章目录

  • 数据湖的概念
  • 数据湖 vs 数据仓库 vs Lakehouse
    • ① 业界进展(Databricks 2.0)-湖上建仓
    • ② 业界进展(Snowflake EDW 2.0)-仓外挂湖
  • LakeHouse 的演进
    • (1)Lakehouse 的演进路线
    • (2)Lakehouse 的设计原则
  • 2. 数据湖重要组成部分
    • 1. 数据湖物理存储层
    • 2. 数据湖文件格式
    • 3. 数据湖表格式
      • (1)数据湖表格式的功能特点
      • (2)数据湖表格式-社区活跃度
      • (3)数据湖表格式-读写特性
      • (4)数据湖表格式-表服务
      • (5)数据湖表格式-平台能力
      • (6)数据湖表格式-生态支持
  • 3. 数据湖应用场景
    • 1. DB 数据入仓/湖
    • 2. 近实时 OLAP
    • 3. 近实时 ETL
    • 4. 湖仓一体
  • 4. 数据湖探索
    • 1. Stream Warehouse
    • 2. Fairhouse

在这里插入图片描述


数据湖的概念

数据湖是一种存储系统,底层包括不同的文件格式及湖表格式,可存储大量非结构化和半结构化的原始数据。

数据消费者可以访问该数据进行数据分析,包括 BI、报表和机器学习模型训练。


数据湖 vs 数据仓库 vs Lakehouse

在这里插入图片描述

  • 数据仓库和数据湖的结合形成了 Lakehouse
  • 数据仓库和流结合形成了 Streaming Warehouse
  • 数据仓库、数据湖、流三者结合可能是下一个需要进一步延伸和研究的方向。

Lakehouse 同时具备数据湖和数据仓库的特性,目前这个方向已经逐渐走向成熟。

与数据湖相比,Lakehouse 集成了计算框架和 SQL 查询引擎,添加了数据治理能力,支持 Catalog 表管理和先进的作业编排。

① 业界进展(Databricks 2.0)-湖上建仓

在这里插入图片描述

业界在 LakeHouse 里面有两个方向,一个是湖上建仓,比如 Databricks2.0Lakhouse 系统平台,主要是依赖于 Delta Lake 统一的数据湖存储格式,在此基础上统一了元数据,并基于 Spark 引擎统一提供的批流一体处理能力,实现在数据湖上建设数仓。


② 业界进展(Snowflake EDW 2.0)-仓外挂湖

另外一个是仓外挂湖。业界的发展主要是以 Snowflake 为代表,主要是在它的 EDW2.0 系统里面实现了一个仓外挂湖。比如已经有了 Hive 的数仓存储体系,再引入数据湖的格式,并实现了通过 Hive 对数据湖进行读和写,这种方式就叫做仓外挂湖。

Snowflake 也有一套完整的数据仓库系统,它有自己的计算引擎和存储格式、Cache 等一系列系统,在这些系统之上引入了数据湖的格式,比如引入 Iceberg


LakeHouse 的演进

(1)Lakehouse 的演进路线

在这里插入图片描述

主流的三种开源技术是 HudiIcebergDatabricks,它们分别在 2016 年、2017 年和 2019 年被开源出来。

2021 年 Lakehouse 技术首次进入 Gartner 成熟度曲线,Lakehouse 技术在曲线中处于起步阶段,意味着 Lakehouse 未来会有非常大的发展空间。

Lakehouse 在通用数据基础设施蓝图(2.0)中也处于核心地位,位于存储、查询和计算之间,贯通通用数据基础设施蓝图的上下游。

Hudi是一个用于大数据处理的开源库,支持增量数据处理和实时数据流处理。

Iceberg是一个开源表格式,旨在解决Apache Hive表的限制。

Databricks是一个基于Apache Spark的云端数据处理平台。

Lakehouse则是一种新兴的数据架构,结合了数据湖和数据仓库的优点,旨在提供更好的数据管理和查询能力。

Gartner成熟度曲线是一个用于评估技术成熟度的模型,可以帮助企业了解技术的发展趋势和使用价值。通用数据基础设施蓝图则是一种用于设计企业数据架构的框架,旨在提供一个可扩展、可靠和安全的数据基础设施。


(2)Lakehouse 的设计原则

Lakehouse 的设计原则由国内阿里、腾讯、云粒、数梦、滴普、亚信、比智、甲骨文、巨杉、深算院、新华三等公司在 2020 年共同起草,分为功能性设计要素和非功能性设计要素两类。

其中,

  • 功能性设计要素包括:一体化架构、存算分离、事务和数据一致性、全数据类型。
  • 非功能性设计要素包括:弹性高可用、加强的数据治理、尽量少的数据冗余、高并发支持、运维可观测性、高开放性。
  • 一体化架构:指将数据仓库和数据湖融合在一起,实现数据的统一管理和使用。
  • 存算分离:指将存储和计算分离,以提高计算效率和灵活性。
  • 事务和数据一致性:指保证数据在不同操作之间的一致性,避免数据出现错误或重复。
  • 全数据类型:指支持多种数据类型,包括结构化、半结构化和非结构化数据。
  • 弹性高可用:指系统能够在出现故障或负载增加时自动扩容和恢复,保证系统的可用性和稳定性。
  • 数据治理:指对数据进行管理和监控,确保数据的质量和安全。
  • 数据冗余:指在系统中存储多份相同的数据,以提高系统的可靠性和容错性。
  • 高并发支持:指系统能够同时处理大量请求,保证系统的响应速度和吞吐量。
  • 运维可观测性:指系统能够实时监控和分析运行状态,帮助运维人员及时发现和解决问题。
  • 高开放性:指系统能够与其他系统或应用进行集成和交互,提高系统的灵活性和互操作性。

2. 数据湖重要组成部分

1. 数据湖物理存储层

在这里插入图片描述

数据湖的存储层主要包括大数据生态的 HDFS 文件系统、主流的云原生对象存储。数据湖物理存储需要具备同时支持 HDFS 生态和云原生的生态。


2. 数据湖文件格式

在这里插入图片描述
数据湖文件格式主要包括 Avro、Parquet、ORC 等主流的文件格式。
其中,

  • Avro 是行级别的,有利于写
  • Parquet 和 ORC 是列级别的,更方便读(支持列裁剪和过滤)
    在这里插入图片描述

3. 数据湖表格式

(1)数据湖表格式的功能特点

功能特点主要包括以下几个方面:

  • ① DML 和 SQL 支持

    直接在分布式文件上提供 Merge Into、Update 和 Delete 操作。除了 SQL,有些还支持Scala/Java 和 Python API

  • ② Schema Evolution

    Table format 的一个关键特性,意味着在不破坏任何内容甚至扩大某些类型的情况下添加新列。

  • ③ ACID 事务、回滚、并发控制

    ACID 事务确保所有更改都成功提交或回滚。确保永远不会以不一致的状态结束。有不同的并发控制,例如保证读取和写入之间的一致性。

  • ④ 时间旅行

    数据湖表格式会将存储在数据湖中的大数据版本化并形成多版本。可以访问该数据的任何历史版本,在意外写入或删除错误的情况下回滚数据。

  • ⑤ 文件布局优化

    随着时间的推移摄入的小文件会增加,但查询数千个小文件很慢,文件布局优化可以将文件碎片重新整理为更大的文件,从而在许多方面提高性能。

  • ⑥ 统一批流处理

    数据架构无需在批处理和流式中区分,它们都以相同的表视图对外暴露,复杂性更低,速度更快。无论是从流还是批处理中读取都能获取一致的数据快照。

(2)数据湖表格式-社区活跃度

在这里插入图片描述

Delta Lake、Apache Iceberg 和 Apache Hudi 是目前最突出的开源数据湖 Table Format 产品。

Delta Lake 2.0 在发布之后一路飙升,Star 的活跃数最高。起源最早的是 Hudi,其次是 Iceberg。


(3)数据湖表格式-读写特性

在这里插入图片描述

数据湖表格式在读写上需要关心的几个点:

  • 一是增量查询(Incremental Query),它在构建流数仓或批数仓时是一个非常重要的特性。
  • 二是时间旅行(Time Travel),我们能用它对数据进行回溯和重放,去做数据的回补。
  • 三是并发(Concurrency),不同的 Job 可以同时操作一张表。
  • 四是主键(Primary Keys),有了它可以像传统数据库一样更好地去做更新,比如进行 Upsert 操作。

(4)数据湖表格式-表服务

在这里插入图片描述

表服务主要关心 Compaction 和 Cleaning,还有 Schema Evolution 等能力。


(5)数据湖表格式-平台能力

在这里插入图片描述

平台能力主要关注数据质量检测(Data Quality Validation)、数据写入监控指标(Monitoring)的成熟度等。

(6)数据湖表格式-生态支持

在这里插入图片描述


3. 数据湖应用场景

1. DB 数据入仓/湖

在这里插入图片描述

  • 第一种是像 MySQL 这种传统数据库通过 Binlog 发布到消息队列 Pulsar,再通过计算引擎去消费它,并存储到数据湖。
  • 第二种是通过 FlinkCDC 的 Connector 组件写入到数据湖。
  • 第三种是通过 DTS 这种数据传输服务写入到数据湖里面,这样做的好处是能够将 T+1 数据新鲜度提升到 5 分钟。

2. 近实时 OLAP

在这里插入图片描述

主要是通过消费 MQ 里面的数据,通过 Flink 或者 Spark 计算引擎对数据进行加工和处理,写入到数据湖。通过 Presto、StarRocks 等 OLAP 引擎去进行实时查询,用来支撑分钟级别的查询场景。


3. 近实时 ETL

在这里插入图片描述

主要特点是利用数据湖的增量、多版本查询、TimeTravel 等能力进行构建。

  • 首先通过计算引擎消费 MQ 数据并把依次写入到 ODS 层、DWD 层、DWS 层,DWD 层可以通过流读 DWS 层写入到 DWD 层,DWS 亦是如此。
  • 最后通过 DWS 层把数据写入到我们需要分析的服务里面。

在这里插入图片描述


4. 湖仓一体

在这里插入图片描述

湖仓一体是在构建近实时 ETL 场景的基础之上,按照完整的数据仓库分层模型去建设数仓。因为数据湖组件实现了批流一体的存储,再通过批流一体的计算引擎,把数据写入到第三方的结果数据库中,从而提供 API 或者其它的服务的能力,去构建湖仓一体。


4. 数据湖探索

1. Stream Warehouse

在这里插入图片描述
现在的湖仓只能做到近实时、分钟级,如果想做到像 MQ 一样实时的级别,就需要借助 MQ 的能力。

Stream Warehouse 的实现上会有两种方式。第一种是在 MQ 中引入湖组件,第二种是两者的缝合,第三种是湖组件中引入 MQ。

以第一种 MQ 中引入湖组件为例,使用 Pulsar 作为 MQ,生产端和消费端会产生相应的数据写入到 Ledger 中,通过 Ledger 持久化所需要的消息文件。中间过程是已经关闭的 Ledger 数据会进行 Offloader 离线读取,写入到 Hudi 这样的湖组件中。热备的数据继续走 Ledger(MQ 体系),冷备的数据通过 Hive 或者 Presto 去读 Hudi,从而达到同时兼顾实时的场景。


在这里插入图片描述
Stream Warehouse主要是 Flink 社区提出的,主要包括两个组件:LogStore 和 FlieStore。LogStore 主要是使用 MQ 消息中间件(Pulsar),FlieStore 主要是使用一种 LSM 的文件格式。写的时候双写 LogStore 和 FlieStore,读的时候通过先读 FlieStore,再读 LogStore 方式去回放和流读数据湖的数据。


2. Fairhouse

在这里插入图片描述

Fairhouse 其实是 Sundeck 提出的一个新的框架或体系,大概会在 2025 年初步完成实现。相比于 LakehouseFairhouse 的架构变成了三层,原来 Lakehouse 的 Query Engines 这一层拆分成计算引擎层和 API 层。

比如原来通过 Trino SQL+ Trino Engine 去访问数据湖的方式,变成了调用 Trino SQL 的 API,然后由计算引擎层决定是用 Spark 引擎或 Velox 引擎去执行,对计算引擎的选择更加智能,这样做会更加公平。

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

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

相关文章

基于matlab的长短期神经网络LSTM的电力负荷预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的电力负荷预测 MATALB代码 效果图 结果分析 展望 参考论文 背影 电力负荷预测的实质是从已知的电力系统,经济,社会,气象等情况出发,根据历史负荷变化规律…

CSDN 周赛 48 期

CSDN 周赛 48 期 工作日参赛1、题目名称:最后一位2、题目名称:天然气订单3、题目名称:排查网络故障4、题目名称:运输石油小结 工作日参赛 说实话,今天是周末,但是今天也是工作日,老顾已经预计到…

Tossim 教程

系列文章目录 TinyOS 系列文章【一】:TinyOS 配置教程 TinyOS 系列文章【二】:Tossim 教程 文章目录 系列文章目录前言1. Tossim 简介2. TOSSIM 仿真2.1. 编译 TOSSIM2.2. 基于 Python 的仿真2.3. 调试语句2.4. 网络配置 总结 前言 本文主要用于记录在…

打破广播电视行业前端摄录设备依赖进口局面,BOSMA博冠全新国产8K摄像机重新定义广播世界

《世界广播电视》杂志曾经预测,2025年全球将有1000个超高清频道在播出。中国广电总局提出,到2025年底,标清频道基本关停,省级电视台要基本具备超高清电视制播能力。视频超高清已成为一个国际趋势。中国有14亿人口,是全…

蓝牙设备节点协议栈基础知识

蓝牙设备节点协议栈基础知识 一:TTY(虚拟控制台,串口以及伪终端设备组成的终端设备) Android/Linux 几乎所有的外设都以”设备节点”的形式存在 例如PC插入串口,会识别成COM1/COM2…在linux下面则以/dev/ttyXXX的形式存在,如/dev…

国家信息安全水平考试中NISP一级网络安全证书介绍

1、什么是NISP? 国家信息安全水平考试(National Information Security Test Program,简称NISP),是由中国信息安全测评中心实施培养国家网络空间安全人才的项目。 2、考取NISP一级认证的同学就业岗位和薪资标准有那些呢&#xf…

Docker创建镜像,建立网桥,容器制作虚拟机

新建基础镜像,希望能够SSH,安装java,用户,声明22端口等等;拷贝基础hadoop安装文件 新建Dockerfile FROM centos:7.9.2009RUN rm -f /etc/localtime && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/local…

【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)

Windows使用C Visual Studio链接云数据库PostgreSQL 一、前置条件二、安装PostgreSQL工具三、编译libpqxx库四、Visual Studio配置测试**如果对您有帮助,关注收藏!** 关注 “测试开发自动化” 公众号,获取更多学习内容 一、前置条件 下载lib…

MQTT 开放基准测试规范:全面评估你的 MQTT Broker 性能

引言 我们很高兴地宣布:由 EMQ 提供的 MQTT 开放基准测试规范现已正式发布! 该测试规范包含了实用的典型使用场景、一套衡量 Broker 性能的主要指标,以及一个模拟负载和收集测试结果的工具,可以帮助开发者评估 MQTT Broker 的可…

让同为2.4G的ZigBee与Wi-Fi相容的解决方案解析

2.4G (WIFI,BT,ZIGBEE,普通2.4G 无线) 4种2.4G 无线通信协议。 普通2.4G 无线 最便宜。 众所周知,小米的智能套装包含的4件套,人体传感器、门窗传感器、无线开关与多功能网关采用的是基于NXP的一颗工业级ZigBee射频芯片–JN5168进行组网通讯。而多功能网…

office实操技能01:修改微软Office页面的(非背景的)浅绿底色、设置默认字体和主题颜色、取消页眉横线、PPT默认的等线字体

目录 1 处理word中默认中文字体是等线的问题 2 处理word中没有设置背景色,但页面底色是浅绿色的问题 3 修改office的主题颜色 4 删除页眉横线 5 处理PPT中的等线字体 这篇博文主要介绍两个使用技能: 技能1:修改word的默认等线字体技能2&…

( “树” 之 BST) 653. 两数之和 IV - 输入二叉搜索树 ——【Leetcode每日一题】

二叉查找树(BST):根节点大于等于左子树所有节点,小于等于右子树所有节点。 二叉查找树中序遍历有序。 653. 两数之和 IV - 输入二叉搜索树 难度:简单 给定一个二叉搜索树 root 和一个目标结果 k,如果二叉…

关于Java注解的一些理解 小结

目录 1. 常用注解和理解 2. 自定义注解 2.1 案例背景 2.2 设计思路 3 总结 1. 常用注解和理解 注解在我的理解下,就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相对应的处理。 可能有些抽象,简单…

Web3中文|好莱坞新星如何成就电影业?

Web3 技术已经被用于电影行业,以建立社区并将利基内容代币化。NFT 将是好莱坞的下一个新星。 【利基(niche)是指针对企业的优势细分出来的市场,这个市场不大,而且没有得到令人满意的服务。产品推进这个市场&#xff0c…

DATAFAKER 使用方法记录

DATAFAKER 使用方法记录 win10 64位 Python 3.10.11 参考网址 datafaker的使用–详细教程 https://blog.csdn.net/A15517340610/article/details/105623103 https://github.com/gangly/datafaker python 版本 It is compatible with python2.7 and python3.4 也就是说 他…

开箱即用的ChatGPT替代模型,还可训练自己数据

一、普遍关注是什么? OpenAI 是第一个在该领域取得重大进展的公司,并且使围绕其服务构建抽象变得更加容易。然而,便利性带来了集中化、通过中介的成本、数据隐私和版权问题。 而数据主权和治理是这些新的LLM服务提供商如何处理商业秘密或敏…

Vue(数据绑定、el和data多种写法、理解MVVM、数据代理)

一、数据绑定 1. vue中有两种数据绑定(通过开发者工具进行查看) 1. 单项绑定(v-bind)数据只能从data流向页面 在输入框中中输入vue实例中的数据没有变化 2. 双向绑定(v-model)数据能从data流向页面&#x…

【Java 数据结构】二叉树的遍历 (递归和非递归实现)

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

大数据分析查询_Impala介绍_对HDFS_Hbase直接查询_速度快_组成架构_执行原理---大数据之Impala工作笔记0001

官网的地址:Impala (apache.org)https://impala.apache.org/ https://impala.apache.org/ 官网的地址: 首先我们看一下什么是impala,可以看到Impala是cloudera公司,也就是做Hadoop付费版的公司, 提供的,基于Hive的,因为他跟hive共用元数据,meta,他可以提供对HDFS,Hbase的SQL…

好家伙,阿里新产Java性能优化(终极版),涵盖性能优化所有操作

上月公司来了一位大佬,入职不到一周就把公司现有项目的性能优化了一遍,直接给公司节省了一半的成本。 一问情况,才知道这位仁兄也是一路被虐过来的。去年年底被裁,本以为自己技术还行,看了一段时间面经,复…