【Azure 架构师学习笔记】- Azure Databricks (15) --Delta Lake 和Data Lake

本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Databricks】系列。
接上文 【Azure 架构师学习笔记】- Azure Databricks (14) – 搭建Medallion Architecture part 2

前言

ADB 除了UC 这个概念之外,前面【Azure 架构师学习笔记】- Azure Databricks (12) – Medallion Architecture简介中也提到了lakehouse, 那么现在再深入一下了解ADB 的lakehouse。同时看看Data Lake和Delta Lake之间的区别与联系。
Data Lake是一个中央存储库,存储和处理原始数据
Delta Lake则是一个开源的,针对数据存储的“表结构”。对比起Data Lake, 它通过支持ACID,架构演变数据版本控制等多个特性来提升数据存储中的各种能力。
Data Lake 是一个通用术语,描述了数据存储方法。
Delta Lake 是一种特定的开源技术。数据使用delta lake技术存储在delta 表中。使数据更加安全和高性能。这种技术通常就跟lakehouse架构相关联。
在Delta lake中,如果你的data lake包含了非表格数据, 那么还要把它们存进表中。

Data lake

数据湖是把数据环境类比成一个湖(中央存储),有多条河流(数据流)流入到湖中。这些数据流最终都流到同一个地方,无需严格的预定义结构。它的出现主要是应对数据仓库这种需要预定义架构的存储模式。数据仓库对特定的查询进行了性能优化,意味着以牺牲灵活性为代价提高速度。另外由于不同的供应商有专用数据存储格式,意味着你可能会被供应商“绑架”。

相比数据仓库, 数据湖针对灵活性进行优化,对数据存储没有格式要求,同时也支持不需要复杂昂贵的预处理的数据分析。

在这里插入图片描述

数据沼泽

数据湖提供了灵活度和相对低廉的存储价格,各方异构数据都可以简单直接地存储到单一位置。但是当数据不停增长,这样的灵活就可能带来问题,比如文件的版本跟踪,数据架构,数据恢复等。
这种情况将会使得数据湖,退化成数据沼泽。导致下游应用的“数据源”变得不准确或者需要花费大量成本进行清洗才能使用。

Delta Lake

Delta lake 可以运行在已有的data lake 基础架构之上。它把数据以parquet文件格式存储在后台。
从磁盘上看Delta Lake的文件存储将会试一下结构,有文件夹,包含了事务日志,数据的变更记录,delta 表的分区。

your_delta_table/		<-- 	this is the top-level table directory
_delta_log			    <-- 	this is the transaction log which tracks00.json				        all the changes to your data01.json…n.json
file1.parquet			<-- 	these are your Delta table partitions,
file2.parquet				    ordered for maximum query performance
…
fileN.parquet

Delta Lake 相对于 Data Lake的优势

  • ACID: 跟数据库的ACID 类似, 想象一下当你使用集群向Data Lake写入数据,如果此时集群中途崩溃了,数据文件会以损坏或者只有部分存储到datalake上。你需要手动识别并清理这些残缺文件然后重跑。但是对于Delta lake, 则会把整个写操作回退,而不写入到存储上。
  • 性能:Parquet格式文件,在很多大数据应用上都远比其他类型的格式快得多,因为其具有一些如压缩,列存储等特点。同时Delta Lake对其进行了一些改进,使其更加适合lakehouse。
  • 文件搜索:在data lake中读取数据需要先列出所有的文件,非常耗时,特别是云环境这种使用Key-value 存储的文件系统。KV 存储在范围扫描过程中速度远不如其他系统,它更适合精确查找。Delta Lake 则通过预先把路径存储到Parquet的事务日志中,减少全量扫描的开销从而加快文件搜索。
  • 元数据:在Data Lake的parquet 文件存储每个文件关于列的元数据, 这些元数据包含每个行组内列的最大,最小值,每一次查询范围数据都不得不遍历所有文件。在Delta Lake中,对parquet进行了改进把这些元数据独立存储在单个事务日志文件中,减少扫描的范围和数量。
  • 架构演变:由于输入的数据总是在变,你不能总是知道最后数据集的架构,或某种原因你需要增减列。在Delta lake中通过write.option(“mergeSchema”,“true”)的方式来实现即可。
    除此之外,还有包括版本控制等优点,就不一一列举。

小结

下一文将介绍一下DataBricks在Delta方面的知识。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA 高速接口Aurora8B/10B 协议详解与仿真

FPGA 高速接口Aurora8B/10B 协议详解与IP仿真 1 摘要 Aurora 8B/10B 是一种用于高速串行通信的协议&#xff0c;通常用于 FPGA 设计和其他数字通信应用。即一种编码方案&#xff0c;旨在在传输数据时提供可靠性、时钟恢复和错误检测。主要用于在点对点串行链路间移动数据的可…

【Linux-网络】深入拆解TCP核心机制与UDP的无状态设计

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长&#xff0c;行则将至 目录 &#x1f4da;引言 &#x1f4da;一、UDP协议 &#x1f4d6; 1.概述 &#x1f4d6; 2.特点 &#x1…

一文学会Spring

一、Spring简介 Spring的优点 Spring是一个开源免费的框架、容器Spring是一个轻量级的框架&#xff0c;非侵入式的控制反转IOC、面向切面AOP支持事务 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器 二、IOC 2.1 IOC本质 控制反转IOC&#xff0c;是一种设计思想…

AWR microwave office 仿真学习(三)各类传输线模型学习

目录 引言Phase Spec: Coupled Lines (Closed Form): CLINPhysical Spec: Coupled Lines, Grounded Shield, Improved Accuracy (Closed Form): CLINPPhysical Specification, Floating Shield (Closed Form): COAXElectrical Specification, Grounded Shield (Closed Form): C…

TrustRAG:通过配置化模块化的检索增强生成(RAG)框架提高生成结果的可靠性和可追溯性

TrustRAG旨在风险感知的信息检索场景中提高生成内容的一致性和可信度。用户可以利用私有语料库构建自己的RAG应用程序,研究库中的RAG组件,并使用定制模块进行实验。论文展示了TrustRAG系统在摘要问答任务中的应用,并通过案例研究验证了其有效性。总体而言,TrustRAG通过语义…

pgsql行列转换

目录 一、造测试数据 二、行转列 1.函数定义 2.语法 3.示例 三、列转行 1.函数定义 2.语法 3.示例 一、造测试数据 create table test ( id int, json1 varchar, json2 varchar );insert into test values(1,111,{111}); insert into test values(2,111,222,{111,22…

计算机视觉算法实战——人脑解码(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域简介 人脑解码&#xff08;Brain Decoding&#xff09;是神经科学与计算机视觉交叉领域的一个重要研究方向&#xff0c;旨在…

[Computer Vision]实验六:视差估计

目录 一、实验内容 二、实验过程 2.1.1 test.py文件 2.1.2 test.py文件结果与分析 2.2.1 文件代码 2.2.2 结果与分析 一、实验内容 给定左右相机图片&#xff0c;估算图片的视差/深度&#xff1b;体现极线校正&#xff08;例如打印前后极线对&#xff09;、同名点匹配…

【Mac】git使用再学习

目录 前言 如何使用github建立自己的代码库 第一步&#xff1a;建立本地git与远程github的联系 生成密钥 将密钥加入github 第二步&#xff1a;创建github仓库并clone到本地 第三步&#xff1a;上传文件 常见的git命令 git commit git branch git merge/git rebase …

从0搭建Tomcat第二天:深入理解Servlet容器与反射机制

在上一篇博客中&#xff0c;我们从0开始搭建了一个简易的Tomcat服务器&#xff0c;并实现了基本的HTTP请求处理。今天&#xff0c;我们将继续深入探讨Tomcat的核心组件之一——Servlet容器&#xff0c;并介绍如何使用反射机制动态加载和管理Servlet。 1. Servlet容器的作用 S…

文件上传漏洞:upload-labs靶场11-20

目录 pass-11 pass-12 pass-13 pass-14 pass-15 pass-16 pass-17 pass-18 pass-19 pass-20 pass-11 分析源代码 &#xff0c;发现上传文件的存放路径可控 if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_ext substr($_FILES[upload_file][name],st…

【音视频】视频基本概念

一、视频的基本概念 1.1 视频码率&#xff08;kb/s&#xff09; 视频码率是指视频文件在单位时间内使用的数据流量&#xff0c;也叫码流率。码率越大&#xff0c;说明单位时间内取样率越大&#xff0c;数据流进度也就越高 1.2 视频帧率&#xff08;fps&#xff09; 视频帧率…

Sqlserver还原备份文件时提示缺少日志文件

Sqlserver还原备份文件时提示缺少日志文件 解决方案&#xff1a;

《2025年软件测试工程师面试》消息队列面试题

消息队列 消息队列&#xff08;Message Queue&#xff0c;简称 MQ&#xff09;是一种应用程序之间的通信方法。 基本概念 消息队列是一种先进先出&#xff08;FIFO&#xff09;的数据结构&#xff0c;它允许一个或多个消费者从队列中读取消息&#xff0c;也允许一个或多个生产者…

前端基础之vuex

是一个专门在Vue中实现集中式状态(数据)管理的一个Vue插件&#xff0c;对vue应用中多个组件的共享状态进行集中式管理(读或写)&#xff0c;也是一种组件间通信的方式&#xff0c;适用于任意组件间的通信 什么时候使用vuex&#xff1f; 1.多组件依赖同一状态 2.来自不同组件的行…

Node.js二:第一个Node.js应用

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 创建的时候我们需要用到VS code编写代码 我们先了解下 Node.js 应用是由哪几部分组成的&#xff1a; 1.引入 required 模块&#xff1a;我们可以使用 requi…

Python学习(十四)pandas库入门手册

目录 一、安装与导入二、核心数据结构2.1 Series 类型&#xff08;一维数组&#xff09;2.2 DataFrame 类型&#xff08;二维数组&#xff09; 三、数据读取与写入3.1 读取 CSV 和 Excel 文件3.2 写入数据 四、数据清洗与处理4.1 处理缺失值4.2 数据筛选4.3 数据排序 五、数据分…

2025东方财富笔试考什么?cata能力测评攻略|答题技巧真题分享

嘿&#xff0c;各位怀揣金融梦想、准备在 2025 年求职浪潮中大展身手的小伙伴们&#xff01; 我是职小豚&#xff0c;在求职指导领域摸爬滚打了 10 年&#xff0c;每年都见证着无数求职者为心仪的岗位全力以赴。 一、东方财富&#xff1a;金融科技界的“数据狂魔” 东方财富&…

Ollama+AnythingLLM安装

一、文件准备 ‌ 1. 安装包获取‌ 从联网设备下载&#xff1a; AnythingLLMDesktopInstaller.exe&#xff08;官网离线安装包&#xff09;‌ deepseek-r1-1.5b.gguf&#xff08;1.5B 参数模型文件&#xff09;‌ 2. ‌传输介质‌ 使用 U 盘或移动硬盘拷贝以下文件至离线设…

java后端开发day27--常用API(二)正则表达式爬虫

&#xff08;以下内容全部来自上述课程&#xff09; 1.正则表达式&#xff08;regex&#xff09; 可以校验字符串是否满足一定的规则&#xff0c;并用来校验数据格式的合法性。 1.作用 校验字符串是否满足规则在一段文本中查找满足要求的内容 2.内容定义 ps&#xff1a;一…