【Azure 架构师学习笔记】- Azure Databricks (22) --Autoloader

本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Databricks】系列。
接上文 【Azure 架构师学习笔记】- Azure Databricks (21) --费用相关

前言

Databricks家里在Apache Spark之上,是企业级的应对大规模数据处理的通用平台, 可以运行在AWS, Azure和GCP 之上。
作为数据处理平台, ETL 必不可少,虽然在特定平台比如Azure上可以通过如ADF来实现数据抽取,但是这样对于云平台间迁移并没有什么帮助。
Databricks自带了一个Autoloader功能,本文将介绍一下这个工具。

ADB上的Autoloader

Autoloader是Databricks中的一个“机制”,用于从data lake中获取数据。它的强处在于不需要配置一些列的触发器来处理data lake中的新数据,而是如其名“auto”地把新文件推到流处理作业中。
Autoloader有几个优势:

  1. 简化过程:简化了ADB 从各种数据源抽取数据到Delta Table的过程。它自动检测特定目录中的新文件
  2. 时效性高:接近实时地,高效地加载到表中。
  3. 可以处理大数据量:同时它还能应对大体量的数据,不像某些数据集成工具,只适合短时、少量的数据处理(因为通常这些工具目标是处理逻辑而不是数据量)。
  4. 易用:不需要写复杂的代码来实现文件发现和数据加载。还能快速适应数据结构的变化。
  5. 支持数据源多:无缝对接Azure生态圈中的数据源, 如Event Hubs,Azure Blob Storage。
  6. 支持预处理:这个大部分的ETL 工具都支持,在这里只是说明它也支持。
  7. 可靠性和一致性:通过事务控制数据的增删改操作。
  8. 支持多种数据格式:包括JSON, CSV, PARQUET, AVRO,ORC,TEXT, BINARY等文件,也广泛支持3种云平台的存储服务。

组件

  • Cloud Files:在Databricks中提供大数据集的分布式文件存储,Autoloader通过CloudFiles管理和存储数据文件的进入。
  • CloudNotification:通过启用事件驱动工作流来监听云存储上的变更。当新文件出现在制定的目录时,cloudnotification触发Autoloader去初始化数据处理。

演示

接下来演示一下简单的使用,首先我们需要有一个ADB,还要有一个ADLS Gen2。 按照前文的配置 【Azure 架构师学习笔记】- Azure Databricks (14) – 搭建Medallion Architecture part 2的环境来配置。

新建一个文件夹raw_data, 然后 把测试数据放进去。

在这里插入图片描述
在notebook中执行下面的代码。

# 无需任何spark.conf配置,直接使用UC
spark.sql("USE CATALOG george_demo")
spark.sql("CREATE SCHEMA IF NOT EXISTS bronze")  # 如果Schema不存在
spark.sql("USE SCHEMA bronze")# Auto Loader配置
adls_path = "abfss://bronze@medallionadls01.dfs.core.windows.net/raw_data/"
schema_path = "abfss://bronze@medallionadls01.dfs.core.windows.net/schemas/"
checkpoint_path = "abfss://bronze@medallionadls01.dfs.core.windows.net/system/checkpoints/"# 流式读取(事件驱动模式)
bronze_stream = (spark.readStream.format("cloudFiles").option("cloudFiles.format", "parquet").option("cloudFiles.schemaLocation", schema_path).option("cloudFiles.useNotifications", "false").load(adls_path)
)# 写入UC托管表(三级命名空间)
target_table = "george_demo.bronze.transactions"  # Catalog.Schema.Table
(bronze_stream.writeStream.format("delta").option("mergeSchema", "true").trigger(availableNow=True).option("checkpointLocation", checkpoint_path).toTable(target_table))

执行前的截图:

在这里插入图片描述

执行代码:
在这里插入图片描述

执行后出现了新的表transactions
在这里插入图片描述
这是一个简单的演示,后续可以通过下图的schedule,或者借助event hub等事件触发来监控和加载新的文件。
在这里插入图片描述

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

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

相关文章

论文略读(2025.3.18-更新中)

关于可控视频生成 I2V3D: Controllable image-to-video generation with 3D guidance Image to Video工作,能够实现给一张图,输出一个视频,且可以控制相机。动态信息来自于用户手工设计(相机移动,人体骨骼驱动&#x…

Excel导出工具类--复杂的excel功能导出(使用自定义注解导出)

Excel导出工具类 前言: 简单的excel导出,可以用easy-excel, fast-excel, auto-poi,在导出实体类上加上对应的注解,用封装好的工具类直接导出,但对于复杂的场景, 封装的工具类解决不了,要用原生的excel导出(easy-excel, fast-excel, auto-poi都支持原生的) 业务场景: 根据…

神策数据接入 DeepSeek,AI 赋能数据分析与智能运营

在 AI 技术迅猛发展的浪潮下,神策数据正在加速推进人工智能在数据分析和智能运营领域的深度应用。近日,神策数据宣布全面接入 DeepSeek,为企业客户带来更加智能化、高效的数据分析与智能运营服务。这一举措展现了神策数据在人工智能方向的探索…

头歌 JAVA 桥接模式实验

目录 任务描述 实现方式 编程要求 测试说明 代码实现 总结 1 任务描述 某软件公司欲开发一个数据转换工具,可以将数据库中的数据转换成多种文件格式,例如 TXT、XML、PDF 等格式,同时该工具需要支持多种不同的数据库。 本关任务&#…

安全无事故连续天数计算,python 时间工具的高效利用

安全天数计算,数据系统时间直取,安全标准高效便捷好用。 笔记模板由python脚本于2025-03-17 23:50:52创建,本篇笔记适合对python时间工具有研究欲的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验&am…

Docker Swarm集群搭建

Docker Swarm集群搭建 1.准备环境 搭建Docker Swarm集群最低需要准备三台设备,且均需要提前安装好Docker。我这里准备了四台机器用于搭建集群,分别是: DockerSwarm-Node1 lemonDockerSwarm-Node1:~$ docker --version Docker version 28.…

Unity教程(二十二)技能系统 分身技能

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…

麒麟银河V10服务器RabbitMQ安装

安装步骤 rabbitMQ依赖于erlang的环境,所以需要先安装erlang,erlang跟rabbitMQ是有版本之间的关联关系的,根据对应的版本去安装下载,保证少出问题。 可以通过官网来查看RabbitMQ和erlang之间的版本对应关系 rabbitMQ和erlang之间…

让“树和二叉树”埋在记忆土壤中--性质和概念

Nice to meet your! 目录 树的介绍: 树的创建: 二叉树的概念和结构: 二叉树的存储结构: 树的介绍: 概念和结构: 不知你们是否在现实中看见过分为两个叉的枯树,大概长这样: 那…

UDP协议原理

UDP协议原理 本篇介绍 在前面使用UDP编程时已经基本了解了UDP的工作模式,也知道了UDP有三个特点: 无连接不可靠面向数据报 但是当时并没有具体谈论为什么UDP有以上三个特点,基于这个原因,本篇就会针对这三个原因进行介绍 UDP…

关于金融开发领域的一些专业知识总结

目录 1. 交易生命周期 1.1 证券交易所 1.1.1 交易前 1) 订单生成(Order Generation) 2) 订单管理(Order Management) 1.1.2 交易执行 3) 交易匹配(Trade Matching) 1.1.3 交易后 4) 交易确认&…

Flutter运行错误:UG! exception in phase ‘semantic analysis‘

最近在Mac Mini M4上通过Android Studio导入Flutter项目并运行,结果一直跑不起来,错误日志如下: 执行命令查看版本信息: flutter doctor --verbose通过输出信息Java version OpenJDK Runtime Environment (build 21.0.41242208…

DeepSeek + Kimi 自动生成 PPT

可以先用deepseek生成ppt大纲,再把这个大纲复制到Kimi的ppt助手里: https://kimi.moonshot.cn/kimiplus/conpg18t7lagbbsfqksg 选择ppt模板: 点击生成ppt就制作好了。

【C#语言】C#中的同步与异步编程:原理、示例与最佳实践

文章目录 ⭐前言⭐一、同步编程:简单但低效的线性执行🌟代码示例🌟执行流程示意图🌟同步编程特点 ⭐二、异步编程:非阻塞的高效执行🌟代码示例🌟执行流程示意图🌟异步编程核心机制&a…

【MySQL数据库】存储过程与自定义函数(含: SQL变量、分支语句、循环语句 和 游标、异常处理 等内容)

存储过程:一组预编译的SQL语句和流程控制语句,被命名并存储在数据库中。存储过程可以用来封装复杂的数据库操作逻辑,并在需要时进行调用。 类似的操作还有:自定义函数、.sql文件导入。 我们先从熟悉的函数开始说起: …

【sgFloatDialog】自定义组件:浮动弹窗,支持修改尺寸、拖拽位置、最大化、还原、最小化、复位

sgFloatDialog <template><div :class"$options.name" v-if"visible" :theme"theme" :size"size" :style"style"><!-- 托盘头部 --><div class"header" ref"header" dblclick.s…

Java后端开发技术详解

Java作为一门成熟的编程语言&#xff0c;已广泛应用于后端开发领域。其强大的生态系统和广泛的支持库使得Java成为许多企业和开发者的首选后端开发语言。随着云计算、微服务架构和大数据技术的兴起&#xff0c;Java后端开发的技术栈也不断演进。本文将详细介绍Java后端开发的核…

搭建ISCSI传输的配置与管理

前提是&#xff1a; windows server2019设置成桥接模式&#xff0c;因为要让虚拟机和主机设置成一个网段&#xff0c;才能通过网络进行新建虚拟磁盘。 1.添加ISCSI角色 安装位置 选择文件和存储服务----------文件和iscsl 服务------------iscsl目标服务器 2.右上角点击任务&a…

晶艺代理,100V3.5A高耐压LA1823完全替换MP9487--启烨科技有限公司

晶艺品牌LA1823是异步降压转换器&#xff0c;COT控制&#xff0c;PFM工作模式, 150KHz/ 250KHz/ 450KHz &#xff0c;开关频率可调节&#xff0c;输入电压4.5~100V&#xff0c;2A平均电流&#xff0c;峰值电流3.5A&#xff0c;采用ESOP8封装。 晶艺LA1823的特性&#xff1a; 4.…

2024年消费者权益数据分析

&#x1f4c5; 2024年315消费者权益数据分析 数据见&#xff1a;https://mp.weixin.qq.com/s/eV5GoionxhGpw7PunhOVnQ 一、引言 在数字化时代&#xff0c;消费者维权数据对于市场监管、商家诚信和行业发展具有重要价值。本文基于 2024年315平台线上投诉数据&#xff0c;采用数…