【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介
本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Databricks】系列。
接上文 【Azure 架构师学习笔记】- Azure Databricks (11) – UC搭建
前言
使用ADB 或者数据湖,基本上绕不开一个架构“Medallion”, 它使得数据管理更为简单有效。ADB 通过把数据分为“金”,“银”,“铜” 三层来实现Medallion架构。同时搭配UC,使得medallion更加健壮,安全和合规。
除了Medallion, 还有一些概念如data warehouse, data lake, 和data lakehouse。
- Data lake: 是一个中央存储库,以原始格式存储任意规模的结构化和非结构化数据。与传统存储相比,这样可以减少很多前期转换开销。其核心优势之一就是灵活性,另外还有对大量大数据处理工具的支持。
- Data lakehouse:跟data lake的名字非常相似,在data lake中的数据,在展现给最终用户前,通常都需要进行处理。 但是data lake的目标是存储,而非处理。data warehouse可以提供处理,但需要预先范式化、模式化再存储,同时存储的量一般有限。基于这两种不足,最好的办法就是优势整合,保留data lake的强大存储功能和data warehouse的数据处理功能,从而出现了data lakehouse。
- ETL/ELT:两者区别在于先转换然后存储(TL)还是先存储再转换(LT)。ETL 往往需要先转换成预定格式再存储,随着数据集成过程的量和速度要求,在大数据领域ETL非常容易出现性能瓶颈,且费用昂贵。而ELT如果搭配lakehouse,则可以很好地平衡性能与开销。
问题
上面提到了lakehouse和ELT 的好处,但是这更多集中于收集和存储,那么如何管理和组织数据呢?
传统的数据仓库环境,数据通过下图的流程完整数据准备。
在datalake中,数据以原始格式存储,但是实际上你需要对数据进行使用,而不是简单存储。这种几乎随意式的直接存储很难马上用于数据使用(主要是分析),因此还是需要进行清晰(clean),转换(transform)。
由于量大,分析复杂,传统的数据仓库处理方式如果直接应用在data lake上,会导致如时间久,资源消耗大,数据组织困难导致结果不准确等情况。这时候Medallion 架构就应运而生。
它为湖仓一体化而定制。主要目标是在从源到最终使用的过程中逐步增加结构和数据质量。
ADB Medallion
下图是来自于Databricks官网的架构图,Medallion的核心在于3个层(layer):Bronze,Silver, Gold, 也就是铜、银、金。 Medallion就是奖牌的意思。
Bronze (铜)
Bronze 层充当外部源系统的数据的初始登陆点。这层的数据反映了原始状态的源系统结构,并带有元数据信息,如加载日期/时间和进程 ID。这层的管理重点是变更数据捕获,支持源数据的历史存档,维护数据血缘,还有审计跟踪,并允许在必要时进行重新处理,而无需从源系统重新读取。
Silver (银)
下一层是 Silver 层。在这层中,来自 Bronze 层的数据经过一系列作,达到 一种叫做“Just-enough” 状态。提供包含基本业务实体、概念和事务的 “企业视图”。
Gold (金)
最后一层是 Gold 层。Gold 层中的数据通常被结构化到特定于主题领域的数据库中,以供使用。此层专用于报告,并采用非规范化、读取优化的数据模型,具有最少的联接。它是应用数据转换和质量规则的最终阶段。
在这三层里面, 铜是原始存储外加元数据信息,金是最终用于展示的数据集,跟传统的数据仓库类似。重点在于银这一层。
这一层是转换后的数据, 它存储了不同源系统数据转换成统一视图后的结果。但是之所以叫做“Just-enough”,是因为它又并不完全转换,而是最小转换,包含:
- 数据清洗,是识别和纠正数据集中的错误、不一致和不准确之处以提高其分析和可靠性的过程。这是数据准备过程中的关键步骤,通常在数据分析或集成之前执行。涉及的一些常见任务包括:删除重复项、更正拼写错误、标准化数据格式(尤其是日期和地址)、处理缺失值等。
- 数据验证:数据验证是通过各种验证技术确保数据准确、一致和可靠的过程。它通常包括根据已知的质量控制措施验证数据、确认数据符合公司数据治理策略、通过交叉引用不同的数据源或应用业务规则和逻辑来解决不一致问题、标准化和规范化数据以及处理异常值。
- 数据合规:数据合规是指确保数据符合特定标准、格式或要求的过程。它涉及转换和标准化数据,以使其与特定数据模型、架构或系统保持一致和兼容。
- 有目的地进行数据匹配:为了提供统一的企业视图,来自不同来源的数据最终必须进行整合和集成。为了使数据可整合,您必须将来自不同来源的数据汇集在一起,识别和确定不同数据集或来源的记录之间的关系,并将它们转换为一致且连贯的格式。
通过这些处理之后, silver中的数据已经变得有意义且可用于后续整合。但是一般来说,数据后进一步处理就不需要在这一层进行了,否则会出现过度预处理,最终使其成为了gold层。
Medallion 是一个设计模式,而不是数据模型,也就是说它更多是一个指引,然后在特定环境中(这主要指云环境)按需实现。比如用ADB+ADLS 来实现。
小结
介绍了什么是Medallion之后,接下来将使用ADB 来实现它。
相关文章:
【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (11) – UC搭建 前言 使用ADB 或者数据湖,基本上绕不开一个架构“Medallion”, 它使得数据管理更为简单有效。ADB 通过…...
Golang——内存(内存管理、内存逃逸、垃圾回收 (GC) 机制)
大家好,这里是编程Cookbook。本文详细介绍Go内存相关的内容,包括内存管理、内存逃逸、垃圾回收 (GC) 机制的三色标记,写屏障。 文章目录 Go 的内存管理mspan && arenasarenasmspan mcachemcentralmheap内存分配逻辑内存回收逻辑优势内…...
关系型数据库的技术思路
一、网络协议 需要根据TCP协议设计一个客户端和服务器之间的命令响应协议。 1、服务端回复声明 2、客户端发送登录包 3、服务端返回登录结果 4、登录成功后进入命令阶段,否则退出。 二、每个连接用一个线程 服务器为每个客户端连接开启一个线程。 三、需要文件的随机…...
web安全——分析应用程序
文章目录 一、确定用户输入入口点二、确定服务端技术三、解析受攻击面 一、确定用户输入入口点 在检查枚举应用程序功能时生成的HTTP请求的过程中,用户输入入口点包括: URL文件路径 通常,在查询字符?之前的URL部分并不视为用户输入入口&am…...
数据库事务的基本要素(ACID)
数据库事务的基本要素(ACID) 在数据库管理系统(DBMS)中,事务(Transaction)是一个或多个数据库操作的集合,这些操作要么全部成功,要么全部失败。事务的目标是保证数据的一…...
server.servlet.session.timeout: 12h(HTTP 会话的超时时间为 12 小时)
从你提供的配置文件(应该是 Spring Boot 的 application.yml 或 application.properties 文件)来看,以下部分与会话超时时间相关: server:servlet:session:timeout: 12h # timeout: 30cookie:name: VENDER_SID会话超时时间的…...
Docker数据卷容器实战
数据卷容器 数据共享 上面讲述的是主机和容器之间共享数据,那么如何实现容器和容器之间的共享数据呢?那就是创建 创建数据卷容器。 命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载…...
基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南
基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南 基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南 基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南一、注册火山引擎账号二、RAG技术核心原理三、环境与工具准备1. 核心组件2. 依赖配…...
Java内存的堆(堆内、堆外)、栈含义理解笔记
一、核心概念区分 1. 内存中的堆(Heap)与栈(Stack) 栈内存 ▸ 用途:存储方法调用、局部变量、基本类型数据(如 int a 1) ▸ 特点: 线程私有,每个线程独立分配栈空间。…...
2.7 大模型RAG内容安全合规检查-大模型ACP模拟题-真题
单选题 在RAG应用中,输入内容合规检查的正确顺序是? A. 先处理模型生成,后检查用户输入 B. 先检查用户输入,后处理模型生成 ✅ C. 仅检查用户输入 D. 仅检查模型输出 解析:合规流程应优先过滤用户输入风险࿰…...
C#从入门到精通(35)—如何防止winform程序因为误操作被关闭
前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发的上位机软件运行起来以后,一般在右上角都有一个关闭按钮,正常情况下点击关闭按钮就能关闭软件,但是不排除我们不想关闭软件,但是因为不…...
特斯拉 FSD 算法深度剖析:软件层面全解读
一、引言 特斯拉的 FSD(Full Self-Driving)系统作为自动驾驶领域的前沿成果,其软件层面的算法设计至关重要。本文将从软件的角度,深入探讨特斯拉 FSD 所采用的算法,包括感知、规划、控制等多个方面,以期为…...
中央一号文件里的三维革命:数字孪生如何重构智慧乡村生态?
2024年中央一号文件提出"建设宜居宜业和美乡村",这一目标背后离不开数字技术的支撑。在浙江某数字乡村试点,凡拓数创通过三维建模还原整村风貌,路灯能耗、垃圾分类、古建保护等数据在虚拟空间中实时跳动。管理人员坦言:…...
DeepSeek 助力 Vue3 开发:打造丝滑的页眉(Header)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
一个原教旨的多路径 TCP
前面提到过 ECMP 和 TCP 之间的互不友好,pacing 收益和中断开销的互斥,在事实上阻碍了 packet-based LB 的部署,也限制了交换机,服务器的并发性能,同时潜在增加了 bufferbloat 的概率,而适用 packet-based …...
DDD 架构之领域驱动设计【通俗易懂】
文章目录 1. 前言2. MVC 对比 DDD3. DDD 分层架构4. 完整业务流程 1. 前言 官方回答:DDD是一种应对复杂业务系统的设计方法,通过将软件设计与业务领域紧密结合,帮助开发人员构建清晰、可维护的领域模型。在复杂的业务系统中,它能…...
蓝桥杯15届JavaB组6题
一开始用的dfs,但是好像是因为数据量太大,数据错误,而且会超时,然后使用bfs dfs的代码(自留): import java.util.*;public class F15 {public static void main(String[] args) {Scanner sc n…...
Python 爬虫与网络安全有什么关系
Python爬虫和网络安全之间存在密切的关系。爬虫是一种用于自动化从网络上获取信息的程序,而网络安全是保护计算机网络和系统免受未经授权的访问、攻击和数据泄露的实践。本文将探讨Python爬虫与网络安全之间的关系以及如何在爬虫开发中注意网络安全。 爬虫的作用和…...
如何判断数据是否使用AES加密以及如何使用AES解密
在现代软件开发中,数据加密是保护敏感信息的重要手段。AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,因其安全性和高效性而被广泛应用。本文将介绍如何判断数据是否使用AES加密,并详细讲解如何使用…...
C++ Primer 泛型算法结构
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
java给钉钉邮箱发送邮件
1.开通POP和IMAP 2.引入pom <dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version> </dependency>3.逻辑 String host "smtp.qiye.aliyun.com"; String port "…...
交安ABC-公路水运工程企业安全员ABC如何报名?报名要哪些条件?
交安ABC的报名方式及报名条件如下: 报名方式 1. 企业注册:企业要进入交通运输部公路水运工程施工主要负责人和安全生产管理人员信息管理系统,注册企业账户,提交企业相关信息,填写企业资料。 2. 发送审核ÿ…...
软件测试丨Docker与虚拟机架构对比分析
Docker 与虚拟机(VM)在架构上有显著区别,主要体现在资源利用、性能、隔离性和启动时间等方面。以下是两者的主要架构区别: 1. 架构层次 Docker: 主机操作系统:Docker 直接运行在宿主机的操作系统上。Docker 引擎&…...
Gatling介绍
Gatling:基于Scala的高性能负载测试工具 一、Gatling 简介 Gatling 是一个开源的 HTTP 压力测试工具,专为高并发场景设计,支持 HTTP/HTTPS、WebSocket、Kafka 等协议。其基于 Scala 的脚本语法简洁高效,支持实时报告生成和分布式…...
Shot Studio for macOS 发布 1.0.2
Shot Studio 是一个 macOS 的 app,专门为开发者设计,主要用于各大 app 应用商店的预览图设计。 提供了非常多的模板,也预设了很多尺寸。可以直接一键使用 在 1.0.2 这个版本中新增了: 文本渐变 图层:边框、颜色、圆…...
基于Spring Boot的乡村养老服务管理系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
Harbor服务需要crt证书,而下载是nginx的证书pem,应该怎么处理
1. 明确文件用途 shgbitai.com.key:SSL 私钥文件(与 Apache/Nginx 通用)。shgbitai.com.pem:已合并的证书文件(通常包含域名证书 中间证书链)。 Nginx 的证书通常以 .pem 或 .crt 为后缀,而 …...
Hadoop第一课(配置linux系统)
1、让hadoop用户,有root权限,如果可以不输密码更好: (1)先登入root用户 (2)visudo命令进入配置文件 (3)找到 root ALL(ALL) ALL这一行,在该行下面增加:hadoop ALL(ALL) ALL (:set nu可以显示行号ÿ…...
Java+Vue+uniapp微信小程序校园自助打印系统(程序+论文+讲解+安装+调试+售后)
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在当今时代,网络与科学技术正以前所未有的速度迅猛发展,这股强大…...
QT 中的元对象系统(二):元对象实现原理QMetaObject
目录 1.元对象系统的构成 2.QObject和QMetaObject的关系 3.Qt 元对象模型QMetaObject 3.1.基本信息 3.2.类信息classinfo 3.3.类构造函数constructor 3.4.枚举信息 enumerator 3.5.类方法method 3.6.类属性peoproty 4.MOS(Meta Object System)示例 5.总结 1.元对象系…...
C++:指针函数与函数指针
文章目录 概述什么是指针函数(Pointer Function)什么是函数指针(Function Pointer)总结: 概述 什么是指针函数(Pointer Function) 指针函数是指返回类型为指针的函数。即,函数返回…...
用HTML5+CSS+JavaScript实现新奇挂钟动画
用HTML5+CSS+JavaScript实现新奇挂钟动画 引言 在技术博客中,如何吸引粉丝并保持他们的关注?除了干货内容,独特的视觉效果也是关键。今天,我们将通过HTML5、CSS和JavaScript实现一个新奇挂钟动画,并将其嵌入到你的网站中。这个动画不仅能让你的网站脱颖而出,还能展示你的…...
【MySQL篇】表的操作
1,创建表 语法: create table ( field1 datatype, field2 datatype, field3 datatype )charset 字符集 collate 校验规则 engine 存储引擎; 说明: field表示列名datatype表示列的类型charset字符集,如果没有指明,则…...
CCF-CSP历年真题大全附题解python
2023012的真题 202312-1 仓库规划 5415. 仓库规划 - AcWing题库高质量的算法题库https://www.acwing.com/problem/content/5418/ 解题思路: 其实就是对比(x.y,z.....)需要找到一个每个元素都大于这个坐标得坐标,本题可以直接…...
Mysql——约束与多表查询
一、约束 1.1定义 约束是对表中的数据进行限制的一套规则,用于防止用户向数据库中输入无效数据。它可以保证表中的数据满足特定业务规则和逻辑,从而维护数据的准确性和可靠性。 1.2作用 数据完整性 :约束可以确保数据在插入、更新或删除时符…...
如何看待 Kaiming He 最新提出的 Fractal Generative Models ?
何恺明团队提出的分形生成模型(Fractal Generative Models) 引发了广泛关注,其核心思想是通过递归调用生成模型模块构建自相似结构,类似数学中的分形概念(如雪花结构),从而高效生成高分辨率数据(如图像)。 Fractal Generative Models即分形生成模型,是一种新型的生成…...
【大模型系列篇】如何解决DeepSeek-R1结构化输出问题,使用PydanticAl和DeepSeek构建结构化Agent
今日号外:🔥🔥🔥 DeepSeek开源周:炸场!DeepSeek开源FlashMLA,提升GPU效率 下面我们开始今天的主题,deepseek官方明确表示deepseek-r1目前不支持json输出/function call,可…...
Metal 学习笔记五:3D变换
在上一章中,您通过在 vertex 函数中计算position,来平移顶点和在屏幕上移动对象。但是,在 3D 空间中,您还想执行更多操作,例如旋转和缩放对象。您还需要一个场景内摄像机,以便您可以在场景中移动。 要移动…...
Android-创建mipmap-anydpi-v26的Logo
利用 Android Studio 自动创建 创建新项目:打开 Android Studio,点击 “Start a new Android Studio project” 创建新项目。在创建项目的过程中,当设置Target SDK Version为 26 或更高版本时,Android Studio 会在项目的res目录下…...
DOM 事件 HTML 标签属性速查手册
以下是一份 DOM 事件 & HTML 标签属性速查手册,涵盖常用场景和示例,助你快速查阅和使用: 一、DOM 事件速查表 1. 鼠标事件 事件名触发时机适用元素示例代码click元素被点击任意可见元素button.addEventListener(click, () > { ... …...
差旅费控平台作用、功能、11款主流产品优劣势对比
本文将对比以下11款主流费控系统:合思、喜报销、泛微费控报销系统、经贝管家、每刻报销、SAP Concur、Expensify、Zoho Expense等。 随着全球化和企业跨地区运营的不断发展,企业差旅管理已逐渐成为许多公司面临的管理挑战之一。从差旅申请到费用报销的全…...
常用的配置文件格式对比(ini,toml,yaml,json,env,settings.py)及应用程序修改自身配置并保留注释
代码与环境配置解耦 git分支的代码应做到“环境无关”:代码本身不硬编码任何环境特定的配置(如数据库连接、密钥、API地址),而是通过外部机制动态注入。 配置与代码分离:将配置信息存储在代码库之外(如环…...
MySQL 存储过程详解
文章目录 1. 存储过程定义1.1 基本概念1.2 核心特点1.3 存储过程 vs 函数 2. 工作原理与示意图2.1 执行流程2.2 示意图 3. 使用场景3.1 复杂业务逻辑3.2 批量数据处理3.3 权限控制3.4 性能优化 4. 示例与说明4.1 基础示例:创建存储过程4.2 带输出参数的存储过程4.3 …...
使用DeepSeek/chatgpt等AI工具辅助网络协议流量数据包分析
随着deepseek,chatgpt等大模型的能力越来越强大,本文将介绍一下deepseek等LLM在分数流量数据包这方面的能力。为需要借助LLM等大模型辅助分析流量数据包的同学提供参考,也了解一下目前是否有必要继续学习wireshark工具以及复杂的协议知识。 pcap格式 目…...
源码压缩包泄露
##解题思路 因为网站的文件都放在www下面,所以直接访问/www.zip就可以得到网页的源码压缩包 在fl000g.txt这个文件中看到一个flag{flag_here}不像是真的flag,尝试提交ctfshow{flag_here},果然提交失败 打开文件属性之类的,也没有…...
TCP/IP 5层协议簇:数据链路层(交换机工作原理)
目录 1. 数据链路层 2. 帧 3. 工作在数据链路层的设备 4. 交换机工作原理 1. 数据链路层 数据链路层(2层Data Link Layer):传输单元是帧、这层工作的主要设备二层交换机、网卡 2. 帧 帧的结构如下:帧最大1518字节 如下&…...
TCP/IP的分层结构、各层的典型协议,以及与ISO七层模型的差别
1. TCP/IP的分层结构 TCP/IP模型是一个四层模型,主要用于网络通信的设计和实现。它的分层结构如下: (1) 应用层(Application Layer) 功能:提供应用程序之间的通信服务,处理特定的应用细节。 典型协议&am…...
【分布式理论11】分布式协同之分布式事务(一个应用操作多个资源):从刚性事务到柔性事务的演进
文章目录 一. 什么是分布式事务?二. 分布式事务的挑战三. 事务的ACID特性四. CAP理论与BASE理论1. CAP理论1.1. 三大特性1.2. 三者不能兼得 2. BASE理论 五. 分布式事务解决方案1. 两阶段提交(2PC)2. TCC(Try-Confirm-Cancel&…...
Linux: 已占用接口
Linux: 已占用接口 1. netstat(适用于旧系统)1.1 书中对该命令的介绍 2. ss(适用于新系统,替代 netstat)3. lsof(查看详细进程信息)4. fuser(快速查找占用端口的进程)5. …...
HWUI 和 Skia
📌 HWUI 和 Skia 的关系 Skia 是 Android 的底层 2D 图形库,提供 CPU 和 GPU 渲染能力,支持 OpenGL、Vulkan、Metal 等后端。HWUI 是 Android UI 组件的 GPU 渲染引擎,主要用于 加速 View、动画、阴影等 UI 元素的绘制。HWUI 依赖…...