Spark 集群进行 ETL 的架构介绍

news2024/11/24 18:50:11

一 什么是ETL

ETL(extract提取、transform转换、load加载)。ETL负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后,进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘提供决策支持的数据。

二 使用Spark开发ETL系统的优势

  • 由于海量的日志记录、交易记录,单机进行ETL变得越来越困难。搭建一套具备大规模数据处理能力的ETL系统成为大数据分析系统中不可或缺的环节。由于Spark在大数据处理能力上的高效率、及其简单易用的API、同时对各种数据库的访问都实现了良好的支持,使用Spark来开发搭建ETL成为一个不错的选择。
  • 另外Spark DataFrame提供了详细的数据结构信息(即schema),使得Spark SQL可以清楚地知道该数据集中包含哪些列,每列的名称和类型各是什么。同时SPark DataFrame提供了丰富的操作API且可以直接基于DataFrame进行SQL操作,成为了ETL存储中间数据的首选。
  • 部署简单,只需要使用spark-submit命令提交worker即可。

三 相关架构和功能实现

在此只介绍一些常用且使用spark开发容易实现的功能。

3.1 数据清洗、转换:

  • 数据合并:多表关联合并,字段合并

  • 数据拆分:按一定规则进行数据拆分

  • 数据解析提取:利用Spark的UDF、UDAF、UDTF等特性,自定义数据语义解析函数。

3.2 数据加载

增量ETL:

  1. 使用时间戳作为增量字段,减小每次ETL的数据规模、提高数据ETL的效率。
  2. 使用自增序列值做增量ETL,系统自动记录上次ETL过程的截至序列值作为下一次ETL的增量序列值进行ETL。

全量ETL:

删除目标表数据,将源数据全部插入,同时对原始目标表数据备份。

3.3 异常处理

在ETL的过程中,必不可少的要面临数据异常而导致的ETL过程失败的问题,处理办法:

  1. 对于网络中断等外部原因造成的异常,设定尝试次数,
  2. 日志输出,记录ETL错误过程、执行的错误信息,Web方式查询及邮件通知。

四 相关组件、模块介绍

这里写图片描述

ETL_ON_SPARKEngine作为整个ETL的核心,主要承担一下几方面的职责:
1、负责从Hbase中读取配置库的配置数据,并制定任务调度计划。

2、解析数据获取语句,从数据源读取数据,以Spark DataFrame的形式暂存在Spark集群的内存中。从MySQL、Hive等结构化的数据库中读取数据比较好理解,就是一条Sql语句,最多在使用几个自定义函数。从hbase,MongoDB等半结构化的数据库中获取数据时,由于原始数据的字段具有层次关系、或者以Json等格式存在,需要进行字段的拆分、Json数据展平等过程。

3、对源Spark DataFrame进行字段转换与字段映射,生成一个新的Spark DataFrame。在这一步主要进行字段名称转换、字段类型转换、字段合并重组等操作。

4、将新的Spark DataFrame写入目标数据源中。

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

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

相关文章

论文速读|通过 SERL 算法优化轻量级双足机器人结构

论文地址:https://arxiv.org/pdf/2408.15632 这篇论文展示了SERL算法在双足机器人结构参数设计中的有效性,提供了推进该领域的重要见解。通过结合强化学习运动控制策略和进化算法,SERL算法成功识别出在指定设计空间内最能满足任务要求的结构…

GO语言性能分析

Go语言基准测试与pprof工具性能分析详解 在现代软件开发中,性能优化是一个重要的环节。Go语言提供了强大的工具来进行基准测试和性能分析,其中 testing 包用于基准测试,而 pprof 工具用于性能分析。本文将详细讲解如何使用这些工具来进行性能…

如何快速构建RTMP直播推送业务场景?

大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前、编码后数据对接,功能强大,性能…

美术|基于java+vue的美术外包管理信息系统(源码+数据库+文档)

美术管理信息系统 目录 基于javavue的美术资源管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能模块 管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农…

基于JAVA+SpringBoot+Vue的前后端分离的图书馆管理系统

基于JAVASpringBootVue的前后端分离的图书馆管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#…

【408 数据结构】第2章 线性表

文章目录 线性表考纲线性表的定义和基本操作1. 定义2. 线性表的基本操作 线性表的顺序表示1. 顺序表的定义2. 顺序表基本操作的实现初始化插入-时间复杂度O(n)删除-时间复杂度O(n)按值查找-时间复杂度O(n) 线性表的链式表示1. 单链表的定义2. 单链表基本操作的实现单链表的初始…

计算机毕业设计选题推荐-自驾游攻略管理系统-Java/Python项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

usb-ss 与 pcie 协议欣赏 --- linux kernel 欣赏

我们先来看usb ss phy , 然后看pcie phy. 我们先来看一下 usb ss phy 的第一条初始化通路. 这是基础设施的构建,这对应着系统启动时usb ss phy一系列稳定性问题 . 一看到probe函数,好啊,它是一切的根. 所谓的无源之水无本之木,这…

C++设计模式——Memento备忘录模式

一,备忘录模式的定义 备忘录模式是一种行为型设计模式,它允许将对象的状态保存在外部,并在需要时恢复。 备忘录模式允许在不破坏封装性的前提下,捕获并存储一个对象的内部状态,并在需要时将其恢复到之前的状态。 在…

IT前端好用的工具集

在线抠图网站 https://www.remove.bg/ 将iconfont转成css显示 https://transfonter.org/ 免费的在线图片压缩 https://tinypng.com/ JSON在线格式化工具 https://www.sojson.com/ 国内人工智能kimi.moonshot工具 https://kimi.moonshot.cn/chat/crft7a6sdv14grouufs0 自动…

2024年录屏神器大盘点,轻松捕捉屏幕精彩

现在讲解一些操作越来越便捷了,我 一般都是用录屏工具来边录制操作边讲解,这样可以更方便对方了解操作步骤。这次我就分享几款免费录屏工具一起来试试吧。 1.福晰录屏软件 链接:www.foxitsoftware.cn/REC/ 对于初次尝试录屏的新手来说&…

java语言发展史

Java语言的发展史是一部丰富多彩的科技演进史,它从一个简单的项目逐渐成长为全球范围内广泛使用的高级编程语言。下面,我将带您简要回顾Java的发展历程。 起源:Oak阶段(1991-1995) Java的前身是Oak,由詹姆斯…

【软考】设计模式之责任链模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点7. 缺点8. java示例 1. 说明 1.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。2.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为…

【漏洞复现】易天智能eHR CreateUser 任意用户添加漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

81页PPT产业园5G多功能智慧灯杆整体规划设计方案

学习9000多份智慧城市,智慧医院,智能制造,数字化转型,新质生产力,算力,大模型,AIGC,工业互联网,数字孪生......持续更新热点行业解决方案,公号智慧方案文库。…

计算机网络 --- 【2】计算机网络的组成、功能

目录 一、计算机网络的组成 1.1 从组成部分看 1.2 从工作方式看 1.3 从逻辑功能看 1.4 总结 二、计算机网络的功能 2.1 数据通信 2.2 资源共享​编辑 2.3 分布式处理 2.4 提高可靠性 2.5 负载均衡 一、计算机网络的组成 1.1 从组成部分看 我们举例分析计算机网络从…

Mistral.rs开源大语言模型(LLM)推理平台兼容OpenAI API,通过HTTP服务器和Python绑定

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

十、组合模式

组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组合成树形结构来表示“部分-整体”的层次关系。组合模式能够让客户端以统一的方式对待单个对象和对象集合,使得客户端在处理复杂树形结构的时候,可以以…

读者来信:《人机环境系统智能》读后感

一、什么是智能? 当“人工智能”火爆出圈乃至登堂入室,上升为国家战略层面后,尽管我们每天都把人工智能挂在嘴上,但好像似乎忘了问一句:什么是智能?经过一番在哲学上对控制论、信息论、系统论在哲学上的追根…

MES实施困难点简述

调研数据显示,企业认为多部门协调难度大、各类数据采集难度大、定制化程度高是MES系统实施过程中最为突出的三个难点,比例分别达到52%、48%、46%。其他如对MES认识不足、难以准确把握需求、企业相关人才比较匮乏、与其他系统边界难以划分等也是实施过程中…