8种ETL算法汇总大全!看完你就全明白了云社区

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。

>算法应用场景概览

以上共计累积了8种ETL算法,其中主要分成4大类,增量累加、拉链算法是更符合数据仓库历史数据追踪的算法,但现实中基于业务及性能考虑,往往存在全删全插、增量累全算法的数据表应用。

即Delete/Insert实现逻辑;

>应用场景

主要应用在维表、参数表、主档表加载上,即适合源表是全量数据表,该数据表业务逻辑只需保存当前最新全量数据,不需跟踪过往历史信息。

>算法实现逻辑

1.清空目标表;

2.源表全量插入;

>ETL代码原型

--1.清理目标表

TRUNCATETABLE<目标表>;

--2.全量插入

INSERTINTO<目标表>(字段***)

SELECT字段***

FROM<源表>

***JOIN<关联数据>

WHERE***;

即Upsert实现逻辑;

主要应用在参数表、主档表加载上,即源表可以是增量或全量数据表,目标表始终最新最全记录。

1.利用PK主键比对;

2.目标表和源表PK一致的变化记录,更新目标表;

3.源表存在但目标表不存在,直接插入;

--1.生成加工源表

CreatetempTable<临时表>***;

INSERTINTO<临时表>(字段***)

WHERE***

;

--2.可利用MergeInto实现累全能力,当前也可以采用分步Delete/Insert或Update/Insert操作

MergeINTO<目标表>AsT1(字段***)

Using<临时表>asS1

on(***PK***)

whenMatchedthen

updatesetColx=S1.Colx***

whenNotMatchedthen

INSERT(字段***)values(字段***)

即Append实现逻辑;

主要应用在流水表加载上,即每日产生的流水、事件数据,追加到目标表中保留全历史数据。流水表、快照表、统计分析表等均是通过该逻辑实现。

1.源表直接插入目标表;

--1.插入目标表

>拉链表背景知识

l概念

拉链表是一张至少存在PK字段、跟踪变化的字段、开链日期、闭链日期组成的数据仓库ETL数据表;

l益处

根据开链、闭链日期可以快速提取对应日期有效数据;

对于跟踪源系统非事件流水类表数据,拉链算法发挥越大作用,源业务系统通常每日变化数据有限,通过拉链加工可以大大降低每日打快照带来的空间开销,且不损失数据变化历史;

l示例,提取指定日期有效数据

提取2020年2月5日当日有效数据

Select*

From<目标表>

Where开始日期<=date'2020-02-05'

And结束日期>date'2020-02-05';

最终提取到数据:

全历史拉链,跟踪源表全量变化历史,若源表记录不存在,则说明数据闭链;根据PK新拉一条有效记录。

1.提取当前有效记录;

2.提取当日源系统最新数据;

3.根据PK字段比对当前有效记录与最新源表,更新目标表当前有效记录,进行闭链操作;

4.根据全字段比对最新源表与当前有效记录,插入目标表;

--1.提取当前有效记录

Insertinto<临时表-开链-pre>(不含开闭链字段***)

Select不含开闭链字段***

Where结束日期=date'<最大日期>';

--2.提取当日源系统最新数据

<源表临时表-cur>

--3今天全部开链的数据,即包含今天全新插入、数据发生变化的记录

InsertInto<临时表-增量-ins>

From<源表临时表-cur>

where(不含开闭链字段***)notin

(Select不含开闭链字段***

From<临时表-开链-pre>

);

--4今天需要闭链的数据,即今天发生变化的记录

Insertinto<临时表-增量-upd>

From<临时表-开链-cur>

--5更新闭链数据,即历史记录闭链(删除-插入替代更新)

DELETEFROM<目标表>

WHERE(PK***)IN

(SelectPK***From<临时表-增量-upd>)

AND结束日期=date'<最大日期>';

INSERTINTO<目标表>

From<临时表-增量-upd>;

--6插入开链数据,即当日新增记录

INSERTINTO<目标表>.

Select不含开闭链字段***,date'<数据日期>',date'<最大日期>'

From<临时表-增量-ins>;

增量拉链,目的是追踪数据增量变化历史,根据PK比对新拉一条开链数据;

1.提取上日开链数据;

2.PK相同变化记录,关闭旧记录链,开启新记录链;

3.PK不同,源表存在,新增开链记录

--2.提取当日源系统增量记录

--3.提取当日源系统新增记录

Insertinto<临时表-增量-ins>

where(***PK***)notin

(select***PK***from<临时表-开链-pre>);

--4.提取当日源系统历史变化记录

innerjoin<临时表-开链-pre>

on(***PK等值***)

where(***变化字段非等值***);

--5.更新历史变化记录,关闭历史旧链,开启新链

update<目标表>AST1

SET<***变化字段S1赋值***>,结束日期=date'<数据日期>'

FROM<临时表-增量-upd>ASS1

WHERE(<***PK等值***>)

ANDT1.结束日期=date'<最大日期>'

SELECT不含开闭链字段***,date'<数据日期>',date'<最大日期>'

FROM<临时表-增量-upd>;

--6.插入全新开链数据

FROM<临时表-增量-ins>;

主要是利用业务字段跟踪增量数据中包含删除的变化历史。

2.提取源表非删除记录;

3.PK相同变化记录,关闭旧记录链,开启新记录链;

4.PK比对,源表存在,新增开链记录;

5.提取源表删除记录;

6.PK比对,旧开链记录存在,关闭旧记录链;

--1.清理目标表《待续...》

主要是利用业务字段跟踪全量数据中包含删除的变化历史。

7.PK比对,提取旧开链存在但源表不存在记录,关闭旧记录链;

--1.清理目标表,《待续...》

主要将流水表数据转化成拉链表数据。

借助源表业务日期字段,和目标表开链、闭链日期比对,首尾相接,拉出全历史拉链;

1.根据数据仓库最佳实践,所有数据表通常还会包含一些控制字段,即插入日期、更新日期、更新源头字段,这样对于数据变化敏感的数据仓库,可以进一步追踪数据变化历史;

2.ETL算法本身是为了更好服务于数据加工过程,实际业务实现过程中,并不局限于传统算法,即涉及到更多适应业务的自定义的ETL算法。

华为开发者空间发布

让每位开发者拥有一台云主机

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

THE END
1.C语言排序算法大全C语言实现12种排序算法 C语言实现12种排序算法 1.冒泡排序 思路:比较相邻的两个数字,如果前一个数字大,那么就交换两个数字,直到有序。 时间复杂度:O(n^2), 稳定性:这是一种稳定的算法。 代码实现: voidbubble_sort(intarr[],size_tlen) { size_ti=0,j=0;https://blog.csdn.net/yishuihanq/article/details/135970066
2.Python算法大全Python 算法大全 这个库涵盖了多种算法和数据结构的介绍,比如: 排序算法(冒泡排序、希尔排序、插入排序、桶排序、合并排序、快速排序、堆排序、选择排序等)、 查找算法(线性查找、二分查找、插值查找等) 加密算法(凯撒加密、RSA、ROT13 等) 机器学习 图https://www.jianshu.com/p/62b166812a5f
3.算法大全算法大全 算法大全https://www.360doc.cn/article/78267756_1112818623.html
4.算法大全算法大全 算法大全http://www.360doc.com/content/24/0131/18/78267756_1112818623.shtml
5.(PDF)经典算法大全YiHuaQin解法字串搜寻本身不难,使用暴力法也可以求解,但如何快速搜寻字串就不简单了,传统的字串搜寻是从关键字与字串的开头开始比对,例如 Knuth-Morris-Pratt 演算法 字串搜寻,这个方法也不错,不过要花时间在公式计算上;Boyer-Moore字串核对改由关键字的后面开始核对字串,并制作前进表,如果比对不符合则依前进表中的值https://www.academia.edu/35548539/%E7%BB%8F%E5%85%B8%E7%AE%97%E6%B3%95%E5%A4%A7%E5%85%A8
6.经典算法大全收集51种经典算法初学者必备天秤libra《经典算法大全》是一款IOS平台的应用。里面收录了51种常用算法,都是一些基础问题。博主觊觎了好久,可悲哀的是博主没有苹果,所以从网上下了老奔的整理版并且每个都手敲了一遍。 虽然网上也有博客贴了出来,但是自己写写感觉总是好的。现在分享个大家。 代码和运行结果难https://www.cnblogs.com/libra-yong/p/6390303.html
7.算法大全(C,C++)开发技术常见的几种算法,也许你能用的到.一、数论算法 二、图论算法三、背包问题https://www.coder100.com/index/index/content/id/2063143
8.经典算法大全(各类算法解析)经典算法大全(各类算法解析) 评分: 经典算法大全各类算法解析 1.河内之塔 2.Algorithm Gossip: 费式数列 3. 巴斯卡三角形 4.Algorithm Gossip: 三色棋 5.Algorithm Gossip: 老鼠走迷官 算法 2010-09-12 上传 大小:1313KB 所需: 41积分/C币 立即下载 常见各类算法的教程https://www.iteye.com/resource/xyz97965-2690257
9.经典算法大全.pdf数据结构与算法经典算法大全.pdf 129页内容提供方:188***8634 大小:1.09 MB 字数:约10.44万字 发布时间:2019-05-10发布于浙江 浏览人气:1065 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)经典算法大全.pdf 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览https://max.book118.com/html/2019/0510/6202231235002030.shtm
10.算法算法:数据结构 算法设计中的算法 计算机基础知识中的算法 什么问题都可以归类到数学上面 数据结构上面 任何问题都可以转换为数据结构的基本结构上面 先想到数学解决方法(算法),再想到数据结构,然后去求解 做…https://zhuanlan.zhihu.com/p/518193680
11.算法大全线性规划算法大全第01章__线性规划,有需要的下来看看。 算法 线性规划 下载并关注上传者 开通VIP,低至0.08元下载/次 下载资料需要登录,并消耗一定积分。 声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者https://m.elecfans.com/article/399157.html
12.知道网络最新百度算法更新大全青岛知道网络【知道网络】最新百度算法更新大全 百度搜索引擎为提高访客浏览自身抓取数据的体验度,保护用户的利益与隐私,也保障网站排名公平的前提下,百度算法应运而生。了解清楚百度算法规则,根据百度算法来运营自己的网站,做好SEO工作,才能让自己的网站在搜索排名中崭露头角。https://www.zhidaowangluo.com/company/1460.html
13.网站运营百度排名优化技术运用百度算法来运营关键词排名2018百度seo最新算法大全 都2018年了,你的seo优化技术有长进没?百度有多种算法,对于seo人来讲,熟悉了解甚至于运用百度算法来操作关键词排名,显得不可或缺。 2018百度seo最新算法大全 都2018年了,你的seo优化技术有长进没?百度有多种算法,对于seo人来讲,熟悉了解甚至于运用百度算法来操作关键词排名,显得不可或缺。https://maimai.cn/article/detail?fid=421958541&efid=0ePOjENyooHBLuss-WyjHQ
14.最新解读百度算法更新大全49条最新解读百度算法更新大全49条 1.1997年,李彦宏提交了一项名为“超级链接文献检索系统和方法”的专利申请。李彦宏提出了一种不同于传统信息检索系统的基于链接的排序方法。从1997年到2000年,李彦宏通过自己的论文和作品逐渐分析和完善了自己的超链接理论,并获得了多项专利。百度创始人李先生还是有几把刷子的。 https://ipkd.cn/webs_1640.html
15.血洗10家大厂“算法”真题:美团+Tencent+字节跳动+小米+阿里+360+一面问了项目, 算法题:一个数组里只有 0 和 1,把 0 换到 1 前面,不能使用统计次数的方法。 扩展:如果有 0,1,2 三个数咋办? 二面项目,算法题:无向图的迪杰斯特拉算法实现。 算法大全:程序员代码面试指南(左程云)+阿里云:70+刷题+解析笔记 https://xie.infoq.cn/article/7c8bb87cc270ddb2fcd1e32d9
16.Python算法新手入门大全几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万。这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各种算法的代码实现。 今天推荐一个Python学习的干货。 几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万。这个项目主要包括两部分http://www.kfayun.com/article/10125
17.图像识别算法大全51CTO博客已为您找到关于图像识别算法大全的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及图像识别算法大全问答内容。更多图像识别算法大全相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/tuxiangshibiesuanfadaquan.html
18.Google算法更新大全前两个星期总结了有官方确认和名称的百度算法更新,对应的,当然也要总结一下Google算法更新。谷歌公布的算法更新更多,不总结一下真是记不清楚。做英文SEO的可以参考,尤其是遇到自然搜索流量在特定时间突然明显下滑,一般是被某种算法惩罚了,对照一下算法上线时间线,也许可以帮助诊断问题所在。 https://www.lusongsong.com/blog/post/9803.html
19.双顶径股骨长判断男女公式大全,掌握正确算法准确率更高网上盛传“双顶径股骨长判断男女公式”,认为怀孕13周左右的女性通过B超检查胎儿的双顶径和股骨长之后,可以通过相应数据计算出结果并推断孩子的性别,比如双顶径减去股骨的结果小于2,表示孕妇怀的是女孩,若双顶径减去股骨的结果大于2,则表示孕妇怀的是男孩。同时还有传言双顶径数据值可以判断孩子是男是女,并且认为怀儿子https://ask.yxbabe.com/article/2495
20.算法稳定币是什么意思?算法稳定币有哪些?稳定币是金融世界的基本计量单位,是整个大厦不可或缺的基石,但是算法稳定币的价值来源在哪里,似乎并没有现实世界中的价值来源。 一听通过算法可以来调整代币的供应量,直觉上就是骗人的,稳定币怎么可以通过算法凭空产生,这肯定是击鼓传花的骗局。发行货币,收取铸币税这种好事一般只有国家的政府才有这样的特权,百姓基于https://www.528btc.com/zhuanti/533852.html
21.sift特征提取算法?三、特征提取算法总结大全? 1 HOG(histogram of Oriented Gradient,方向梯度直方图) 2 SIFT(Scale-invariant features transform,尺度不变特征变换) 3 SURF(Speeded Up Robust Features,加速稳健特征,对sift的改进) 4 DOG(Difference of Gaussian,高斯函数差分) https://tool.a5.cn/article/show/100740.html
22.《正义的算法》免费在线观看全集电视剧电视剧正义的算法剧情简介:实力超群、帅痞魅力的律界明星刘浪(陈柏霖 饰)在即将高升之际,人小鬼大的可爱萌娃刘良良(林格宇 饰)突然的出现,让他原本潇洒自在的生活方寸大乱。事业上被迫与新人律师林小颜(郭雪芙 饰)组成冤家搭档、与律http://www.chunhuibaojie.com/voddetail/15506.html
23.算法,algorithm英语短句,例句大全7.Algorithmic Language & Computers Practise算法语言与计算机操作 8.equilibrium point algorithm for computing计算中的平衡点算法 9.It proves that the developed algorithm has a polynomial upper boUnd at the time, and can also be easily mounted on computers.本算法属多项式算法,计算简单,易于计算机实现。 http://xjishu.com/en/073/y410368.html
24.数组的搜索算法有哪些?C++数组搜索算法大全:线性搜索:遍历数组,时间复杂度 o(n)。二分搜索(仅限有序数组):将数组二分,时间复杂度 o(log n)。哈希表:使用键值快速查找,时间复杂度 o(1)。 数组搜索算法大全 在计算机科学中,数组搜索算法用于在有序或无序数组中找到特定元素。本文将探讨各种数组搜索算法,包括其时间复杂度和实战案例。 https://www.php.cn/faq/802377.html
25.前端必须掌握的五种常用排序算法总结大全javascript技巧前端开发中掌握排序算法对于数据处理至关重要,本文介绍五种基本排序算法,冒泡排序、选择排序、插入排序、快速排序和归并排序,帮助开发者选择合适的方法优化性能,需要的朋友可以参考下+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 前言 在前端开发中,对https://www.jb51.net/javascript/3293598a7.htm
26.hash算法的大全sbso1988hash算法的大全 分类: C/C++ 2013-03-23 16:49:10 原文地址:hash算法的大全 作者:nanye1984 原文已删除 阅读(1110) | 评论(0) | 转发(0) | 0 上一篇:emacs 插件 elpa 介绍 下一篇:没有了 给主人留下些什么吧!~~关于我们 | 关于IT168 | 联系方式 | 广告合作 | 法律声明 | 免费注册 http://blog.chinaunix.net/uid-22891521-id-3539803.html
27.九章算法比类大全校注九章详注比类少广算法大全卷第四 九章详注比类商功算法大全卷第五 九章详注比类均输算法大全卷第六 九章详注比类盈不足算法大全卷第七 九章详注比类方程算法大全卷第八 九章详注比类勾股算法大全卷第九 九章详注比类还源开方算法大全卷第十 附录一 本书主要参考资料 附录二 各卷题目表及各类诗词题目表 http://yuntaigo.com/book.action?recordid=bm56Ym1ha2M5Nzg3NTc2NzE0Nzc3
28.《九章算法比类大全》中的珠算术【摘要】:<正> 《九章算法比类大全》亦称《九章详注算法比类大全》简称《算法大全》,明景泰元年(1450年)浙江仁和(今杭州市)吴敬(字信民)撰。书成后,版毁于火,十存其六。现传本是吴讷重编,弘治元年(1488年)重印。此书在清初已不多见。清初著名数学家梅文鼎(1633-1721)在《勿庵历算全书》中说:“钱塘吴信https://www.cnki.com.cn/Article/CJFDTotal-XLCI200202003.htm
29.13003数据结构与算法考试资料大全自考教材真题答案本栏目提供自学考试13003数据结构与算法各类考试资料,包括数据结构与算法自考教材及购买方式、数据结构与算法复习资料、历年真题及答案、模拟试题、自考题库、搜题答案、考试大纲、备考方法、视频网课等自考13003数据结构与算法考试资料,以供考生们复习使用。https://www.zikaosw.cn/zkkm/5487.html