数据仓库的ELT/ETL

ETL 和 ELT 有很多共同点,从本质上讲,每种集成方法都可以将数据从源端抽取到数据仓库中,两者的区别在于数据在哪里进行转换。

01 ETL

ETL – 抽取、转换、加载

从不同的数据源抽取信息,将其转换为根据业务定义的格式,然后将其加载到其他数据库或数据仓库中。另一种 ETL 集成方法是反向 ETL,它将结构化数据从数据仓库中加载到业务数据库中,如我们常用数据仓库加工好的报表,推送到报表系统的数据库中。

数据仓库,ELT和ETL,数据抽取,数据转换,数据加载,数据处理

02 ELT

ELT – 抽取、加载、转换

同样的从一个或多个数据源中抽取数据,然后将其加载到目标数据仓库中,此时不需要进行数据格式的转换。在 ELT 过程中,数据的转换发生在目标数据仓库中。ELT 对远程资源的要求较少,只需要它们的原始数据即可。

数据仓库,ELT和ETL,数据抽取,数据转换,数据加载,数据处理

03 ELT的演变

ELT 已经存在了一段时间,但 Hadoop 等大数据技术出现后,更加活跃了。像以前转换 PB 级原始数据这样的大型任务无法处理,现在可以被分成小作业,进行处理,然后再加载到目标数据库中。同时,处理能力也提高了,尤其是以私有云集群的方式,把处理、加工数据可以在一个数据仓库中完成了。

04 ELT的工作原理

与 ETL 不同,ELT是从多个数据源收集信息,将其加载到数据仓库(或者数据湖)中,然后将其转换为可操作的商业智能的过程。

抽取——在ELT和ETL两种数据管理方法中的原理相似。一般我们会采用增量抽取,对于一些维表数据量比较小的也会采用全量抽取。

加载——这是 ELT 和 ETL 开始不同的地方了。ELT 不是在抽取大量原始数据的过程中将其转换,而是将所有数据都加在到湖仓中,然后统一进行转换,这样做加快了抽取的效率,但也意味着数据变得有用之前还有很多工作要做。

转换——数据湖或数据仓库对数据进行规范化,将部分或全部数据保留在湖仓中,并可用于定制报告。存储海量数据的开销更高,但也是为了后续能够更加快速的进行数据挖掘和报表展现,也就是我们常说的用空间换时间。

05 什么时候我们选择ELT

这取决于公司现有的网络和技术架构、预算以及它已经利用云和大数据技术的程度。如果是有下面三个需求场景时,那么ELT就是正确的选择~

1.当抽取速度是第一选择时

因为 ELT 不必等待数据在抽取过程中进行转换后再加载,那么抽取过程要快得多。

2.当需要随时访问原始数据时

有很多场景,我们需要保留所有历史数据,分析师可以根据时间、销售模式、季节性趋势或任何对业务变得重要的新兴指标进行挖掘。由于数据在加载之前未进行转换,因此您可以访问所有原始数据。比如,数据仓库一般都有一个原始数据层,很多数据科学家更喜欢访问原始数据,而业务用户更喜欢使用分析后的应用层或者模型层数据。

3.当需要随时可扩展数据湖仓时

当您使用 Hadoop 或云数据仓库等数据处理引擎时,ELT 可以利用本机处理能力实现更高的可扩展性。

06 数据湖是不是很好的ELT落脚点

首先,我们思考一下数仓为什么会出现?其实是数据量的飞速增长,以至于当时的数据存储计算引擎,不能很好的满足分析需求;于是数仓概念和经典的理论出现了,很好的解决了当时的问题,用“规范+存储”来解决了当时的问题。

那么现在大数据时代,随着技术的不断发展,很多新技术出现了,大批量的存储和计算不再是那么难了,那么我们放弃数仓那一套是否可行呢?从一哥现在处理的业务看,如果你的业务系统相对较单一,没有几十个业务系统每天往数仓里灌数据,那么数据湖可以满足你的需求,并且对于“数据驱动”更“敏捷”。如果一线的业务系统较复杂,那么现在使用数据湖也会一不小心会变成“数据沼泽”。

数据湖治理策略没有明确前,还不要急着就上数据湖,并不是适用于每个公司的业务场景的!

07 结语

ELT和ETL都有各自的应用场景,可以说现在大数据环境下,很多已经是ELT架构了,所以这也是我近几年一直不看好很多厂商在推“拖拉拽”的ETL工具或者平台,未来肯定是需要一种通用语言来实现所有的ELT过程。

参考

你真的了解数据仓库的ELT和ETL吗?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何实现word一键注音?给一篇word文章快速注音的方法

在日常生活和工作中,我们经常需要处理各种文档,其中不乏包含大量生僻字或需要标注拼音的文本。手动为每一个字添加拼音不仅效率低下,而且容易出错。那么,有没有一种方法可以实现Word文档的一键注音呢?本文将为大家详细…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之九 简单视频卡通画效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之九 简单视频卡通画效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之九 简单视频卡通画效果 一、简单介绍 二、简单视频卡通画效果实现原理 三、简单视频卡通画效果…

Python处理PDF:在PDF文档中插入页眉和页脚

在处理篇幅较长、结构复杂的PDF文档时,页眉和页脚的设计与插入就显得尤为重要。它们不仅扮演着美化文档、提升专业度的角色,更承担了导航指引、信息标注的重要功能。 页眉通常用于展示文档的标题或章节名称,有助于读者在翻阅过程中迅速定位所…

构建强大的物联网平台系统架构:关键步骤与最佳实践

随着物联网(IoT)技术的快速发展和广泛应用,越来越多的企业开始意识到搭建一个强大而可靠的物联网平台系统架构的重要性。一个完善的物联网平台可以帮助企业高效地管理和监控各种连接设备,并实现数据的收集、处理和分析。在本文中&…

【python】图像边缘检测

一、代码 import pyautogui import cv2 import numpy as np import time import os # 获取屏幕尺寸 screen_width, screen_height pyautogui.size() screen_size (1920, 1080) # cv2.namedWindow("Screen Capture", cv2.WINDOW_NORMAL) # cv2.resizeWindow("…

jetbrains全家桶历史版本下载(IDEA/PyCharm...)

IDEA: 其他版本 - IntelliJ IDEA (jetbrains.com)https://www.jetbrains.com/zh-cn/idea/download/other.html PyCharm: 其他版本 - PyCharm (jetbrains.com)https://www.jetbrains.com/zh-cn/pycharm/download/other.html Goland: 其他版本 - GoLand (jetbrain…

OpenHarmony4.0源码解析之媒体框架

媒体框架简介 媒体框架 multimedia_player_framework 主要提供音视频的录制与播放功能。 框架简介 从框架图中可以看出,媒体框架的主要工作模式为通过 Gstreamer 的插件自动化注册及插件组合功能,将其余媒体播放相关的框架功能插件化,配合 …

MAC M1版IDEA热部署JRebel

1、在idea里面安装jrebel插件 2、下载激活工具:ReverseProxy_darwin_amd64 下载地址(Mac早期用户使用Safari下载,不要用Chrome,否则下载之后会把.dms后缀名去掉) 特别注意:M1用户请使用下面的下载&#xff…

基于Vue的宠物领养系统的设计与实现(论文+源码)_kaic

目 录 摘 要 ABSTRACT 1 引言 1.1 课题背景 1.2 设计原则 1.3 论文组织结构 2 系统关键技术 2.1 JSP技术 2.2 JAVA技术 2.3 B/S结构 2.4 MYSQL数据库 3 系统分析 3.1 可行性分析 3.1.1 操作可行性 3.1.2 经济可行性 3.1.3 技术可行性 3.1.4 法律可行性 3.2 系统功能分析 3.3…

RabbitMQ消息模型之Simple消息模型

simple消息模型 生产者 package com.example.demo02.mq.simple;import com.example.demo02.mq.util.ConnectionUtils; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection;import java.io.IOException;/*** author Allen* 4/10/2024 8:07 PM* versi…

C语言 | Leetcode C语言题解之第21题合并两个有序链表

题目: 题解: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {/…

最新Android Studio导入aar包的方法

以前的方式,目前看网上也大多数都是这种方式,导致我本地加的时候一直有问题 但是这样都无法sync以及编译通过,因为方式已经变了 1:将aar文件复制到MyApplication\app\libs下 2:在MyApplication\app\build.gradle下添加…

JS-28-AJAX

一、AJAX的定义 AJAX不是JavaScript的规范,它只是一个哥们“发明”的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。 如果仔细观察一个Form的提交,你就会发现,一旦用户点击“Submit”…

瀑布流布局

瀑布流布局:瀑布流,又称瀑布流式布局,是比较流行的一种页面布局,视觉表现为参差不齐的多栏布局。 问题概述: 一次性生成,不需要再次增加,排序顺序由上倒下,由左到右 解决方案: //…

渗透测试实战——第一站

仅供交流学习使用,请勿用于非法用途 前言:刚学了sql注入,只听理论总感觉没啥用,今天花了一半个多小时,去尝试寻找有漏洞的网站,最终找到了一个;实践是检验真理的唯一标准。 我是通过黑客常用语法…

基于springboot+vue实现的艺术水平考级报名管理系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:spring…

算法题解记录8+++爬楼梯(百日筑基)

题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶…

贪心算法:排列算式

题目描述 给出n数字,对于这些数字是否存在一种计算顺序,使得计算过程中数字不会超过3也不会小于0? 输入描述: 首行给出一个正整数t,(1≤t≤1000)代表测试数据组数每组测试数据第一行一个正整数n,(1≤n≤500)第二行包含n个以空格分隔的数字…

Python+Appium自动化测试(ios+Android)

一、软件安装 安装清单: JDKPythonnode.jsandroid-sdk(作者通过Android Studio安装)iOS-deploybrewlibimobiledevice依赖库ideviceinstallercarthage依赖库 appium-doctor(安装后可在命令行中通过命令:appium-doctor检查还少啥) WebDriverAg…

ClickHouse--17--聚合函数总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 环境1.创建clickhouse表2.插入数据 函数(1)count:计算行数(2)min:计算最小值(3)max:计算最大值(4)sum:计算总和&…