ETL架构怎么选?全量、增量还是实时流式?

news2024/11/13 7:02:40

一、 ETL :

基本定义:ETL 是将业务系统的数据经过抽取(Extract)、清洗转换(Transform)之后加载(Load)到数据仓库的过程,目的是将企业中分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。

主要组成部分:

1、数据抽取:从不同的数据源(如数据库、文件系统、外部系统等)读取数据。这一步需要定义数据接口,明确每个源文件及系统的每个字段,确定数据抽取的方法(如主动抽取或由源系统推送)、频率(是每日、每月还是其他周期)等。

2、数据清洗与转换:对抽取的数据进行处理,包括处理不完整数据、错误数据、重复数据;进行空值处理、数据标准统一、数据拆分、数据替换等操作,以确保数据的质量和一致性,使其符合目标数据仓库的要求。

3、数据加载:将经过清洗转换后的数据写入到目标数据仓库或其他目标系统中。如果是全量方式,通常采用直接加载的方式;如果是增量,则需要根据业务规则将数据合并到目标系统中。

优势:

1、数据整合:能够整合来自不同数据源的数据,打破数据孤岛,为企业提供统一的数据视图。

2、数据质量有保障:通过数据清洗和转换,提高数据的质量和可用性,为后续的数据分析和决策提供可靠的基础。

局限性:ETL 过程通常比较耗时,特别是在处理大量数据时,可能需要较长的时间才能完成数据的抽取、转换和加载。

二、 批量架构:

工作原理:批量架构是按照一定的时间周期(如每天、每周、每月等)批量处理数据。在每个周期内,系统会一次性读取大量的数据,进行 ETL 操作,然后将处理后的数据加载到目标系统中。例如,每天晚上从业务系统中抽取当天的业务数据,进行清洗转换后加载到数据仓库中。

优势:

1、数据处理效率高:对于大规模的数据处理,批量处理可以充分利用系统的资源,一次性处理大量的数据,避免了频繁的小批量处理带来的资源开销。

2、易于管理和维护:批量处理的流程相对固定,每次处理的数据量和处理逻辑基本相同,因此易于管理和维护。可以通过定期的调度和监控,确保数据处理的顺利进行。

3、对源系统影响小:批量处理通常是在源系统业务空闲时间进行,不会对源系统的正常业务运行产生较大的影响。

局限性:

1、数据时效性差:由于是按照固定的时间周期进行处理,所以数据的时效性较差,无法实时反映源系统的数据变化。在一些对数据实时性要求较高的场景下,批量架构可能无法满足需求。

2、资源占用集中:在批量处理过程中,系统需要在短时间内处理大量的数据,会占用大量的计算资源和存储资源,可能导致系统性能下降。

三、增量架构:

工作原理:增量架构只处理自上次处理以来发生变化的数据。通常通过一些机制来捕获数据的变化,如增量字段、触发器、日志比对等。例如,在源数据库表中添加一个时间戳字段或自增长字段,当数据发生变化时,该字段的值也会相应地改变。ETL 系统通过比较上次处理时记录的字段值和当前的值,来确定哪些数据是新增或修改的数据,然后只抽取这些变化的数据进行处理。

优势:

1、提高数据处理效率:只处理变化的数据,减少了数据处理的量,大大提高了数据处理的效率,特别是在源系统数据量较大且变化频繁的情况下,优势更为明显。

2、实时性较好:相比于批量架构,增量架构能够更及时地反映源系统的数据变化,提高了数据的实时性,能够满足一些对数据实时性要求较高的业务需求。

局限性:

1、初始同步复杂:在首次使用增量架构时,需要先进行一次全量同步,以建立初始的数据状态。然后才能基于这个初始状态进行增量数据的处理。

2、数据一致性维护困难:由于只处理变化的数据,可能会出现数据不一致的情况。例如,如果在增量处理过程中出现错误或中断,可能会导致部分数据没有被正确处理,从而影响数据的一致性。

四、实时流式架构:

工作原理:实时流式架构是对实时产生的数据流进行连续不断的处理。数据以流的形式不断地进入系统,系统立即对数据进行抽取、转换和加载操作,几乎没有延迟。常见的实时流式处理框架有 Spark Streaming、Flink 等。例如,在金融交易系统中,实时流式架构可以实时处理交易数据,及时发现异常交易。

优势:

1、高实时性:能够实时处理数据,及时反映源系统的数据变化,为企业提供实时的数据分析和决策支持。

2、灵活性高:可以根据业务需求实时调整数据处理逻辑,对新进入的数据进行实时处理和分析。

3、能够处理大规模数据:通过分布式计算和并行处理技术,实时流式架构能够处理大规模的实时数据流,具有较高的吞吐量和可扩展性。

局限性:

1、系统复杂性高:实时流式架构需要处理实时数据流的并发、容错、数据一致性等问题,系统的复杂性较高,对技术和开发人员的要求也较高。

2、资源消耗大:为了实现实时处理,系统需要持续地运行和处理数据,会占用大量的计算资源和存储资源。

了解更多数据仓库与数据集成关干货内容请关注>>>FineDataLink官网

免费试用、获取更多信息,点击了解更多>>>体验FDL功能

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

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

相关文章

特色3D打印机stm32迷你8轴双核心主板

我自己设计的3D打印机主板 1. 这是一块迷你的8轴主板, 主板尺寸为100mm*75mm, 使用一个8cm静音风扇散热足够了2. 这是一个带有保护的板子, 驱动上的gpio具有过压保护功能, 能够直接抗住24V的冲击, 意味着一个驱动炸了, 板子不烧, 并且其他的驱动也没事, 主板支持自动关机3. 8…

【2】GD32H7xx 串口Idle + DMA接收不定长数据

目录 1. IDLE中断相关介绍2. D-Cache与DMA同时使用2.1 I-Cache与D-Cache2.2 D-Cache与DMA同时使用时的数据一致性问题2.2.1 CPU读取DMA写入到SRAM的数据2.2.2 DMA读取CPU写入到SRAM的数据 3. Uart Idle DMA收发程序4. 程序测试 1. IDLE中断相关介绍 在 GD32H7xx MCU 中&#…

证书学习(六)TSA 时间戳服务器原理 + 7 个免费时间戳服务器地址

目录 一、简介1.1 什么是时间戳服务器1.2 名词扩展1.3 用时间戳标记顺序1.4 7 个免费TSA时间戳服务器地址(亲测可用)1.5 RFC 3161 标准二、时间戳原理2.1 时间戳服务工作流程2.2 验证工作流程2.3 举个例子2.4 时间戳原理总结三、代码实现3.1 curl 命令请求时间戳3.2 java 代码…

一步一步从asp.net core mvc中访问asp.net core WebApi

"从asp.net core mvc中访问asp.net core WebApi"看到这个标题是不是觉得很绕口啊,但的确就是要讲一讲这样的访问。前面我们介绍了微信小程序访问asp.net core webapi(感兴趣的童鞋可以看看前面的博文有关WEBAPI的搭建),这里我们重点不关心如何…

信捷 XD PLC C语言 FB和FC 不同

信捷 XD PLC 的C语言下 FB和FC 的使用,如果你有困惑,本文可能会帮到你! 调用FB要带后缀_Body的,这个地方很容易忽视和出错。 不同之处FBFC可以在全局变量表中建立此类型对象可以1个,也可以多个不可以参数类型及数量有…

「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现

本篇将带你实现一个滑动选择器应用,用户可以通过滑动条选择不同的数值,并实时查看选定的值和提示。这是一个学习如何使用 Slider 组件、状态管理和动态文本更新的良好实践。 关键词 UI互动应用Slider 组件状态管理动态数值更新用户交互 一、功能说明 在…

共享汽车管理:SpringBoot框架的高效实现

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了共享汽车管理系统的开发全过程。通过分析共享汽车管理系统管理的不足,创建了一个计算机管理共享汽车管理系统的方案。文章介绍了共享汽车管理系统的系…

艾体宝产品丨加速开发!Redis Copilot智能助手上线

我们最近发布了 Redis Copilot,旨在帮助开发者更加高效地使用 Redis 构建应用。提升应用性能,简化构建过程是我们不懈的追求。Redis Copilot 正是为此而生的人工智能助手,助力开发者迅速掌握 Redis 的使用技巧。现在您可以在 Redis Insight 中…

阿里云centos7.9服务器磁盘挂载,切换服务路径

项目背景 1、项目使用的服务器为阿里云centos7.9,默认的磁盘为vda,文件系统挂载在这个磁盘上,项目上使用的文件夹为/home/hnst/uploadPath 2、vda使用率已达到91% 3、现购置一块新的磁盘为vdb,大小为2T 目的 切换服务所使用的…

Electron + Vue3 开发桌面应用+附源码

什么是 Electron? Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的框架。它由 GitHub 开发并维护,允许开发者使用现代 Web 技术创建原生应用程序。Electron 结合了 Chromium 渲染引擎和 Node.js 运行时环境,使得开发…

【Leecode】Leecode刷题之路第44天之通配符匹配

题目出处 44-通配符匹配-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 44-通配符匹配-官方解法 前言 本题与10. 正则表达式匹配非常类似,但相比较而言,本题稍…

单元/集成测试解决方案

在项目开发的前期针对软件单元/模块功能开展单元/集成测试,可以尽早地发现软件Bug,避免将Bug带入系统测试阶段,有效地降低HIL测试的测试周期,也能有效降低开发成本。单元/集成测试旨在证明被测软件实现其单元/架构设计规范、证明被…

Linux案例:DNS服务器配置

Linux案例:DNS服务器配置 实验一:正向解析 服务端配置: [rootserver ~]# setenforce 0 [rootserver ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.70.131/24 ipv4.gateway 192.168.70.2 ipv4.dns 114.114.114.11…

Linux常用的100个命令

掌握常用的Linux常用命令是作为码农的基本素养,无论你从事软件开发或者运维的的哪个细分领域。本文言简意赅,可作为指导书收藏。 Linux常用命令的分类: 基本文件操作权限与用户管理文件搜索与系统状态网络管理压缩与打包系统管理与维护磁盘与…

数据挖掘全景:从基础理论到经典算法的深度探索

1 绪论--1.1 数据挖掘的概念和任务 1. (单选题)目前数据分析与挖掘领域的现实情况描述不正确的是() A. 信息爆炸 B. 数据爆炸 C. 信息贫瘠 D.数据收集能力远远超过人们的分析和理解能力 2. (单选题)你认为下面哪种数据对于数据挖掘算法来说最简单最…

Qt Udp的组播(多播)、广播和单播

UDP通讯的基本概念和特点‌ UDP(User Datagram Protocol,用户数据报协议)是‌TCP/IP协议族中的一种无连接协议,主要用于那些对实时性要求较高而可靠性要求较低的应用场景。UDP的主要特点包括: ‌无连接‌:…

CSS3中动画的使用animation

1.基本使用 2.其他属性 3.复合属性

前端实现json动画(附带示例)

前端实现json动画(附带示例) 使用lottie制作动画。1.json动画2.实现效果3.git仓库4.运行5.json动画天堂6.代码7. 经常使用的方法 使用lottie制作动画。 1.json动画 废话不多说,直接看效果图2.实现效果 3.git仓库 https://gitee.com/chaiach…

Ubuntu实现双击图标运行自己的应用软件

我们知道在Ubuntu上编写程序,最后编译得到的是一个可执行文件,大致如下 然后要运行的时候在终端里输入./hello即可 但是这样的话感觉很丑很不方便,下边描述一种可以类似Windows上那种双击运行的实现方式。 我们知道Ubuntu是有一些自带的程序…

【GPTs】Email Responder Pro:高效生成专业回复邮件

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 💯GPTs指令💯前言💯Email Responder Pro主要功能适用场景优点缺点 💯小结 💯GPTs指令 Email Craft is a specialized assistant for cra…