国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數據倉庫開發技術的重要一環:ETL

華為開發者社區 ? 來源:華為開發者社區 ? 作者:華為開發者社區 ? 2020-09-23 13:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家都知道數據倉庫,是為企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。因此越來越多的企業和管理者對數據倉庫格外關注。做好數據倉庫開發,一靠工具,二靠技術。就工具方面來說,很多云廠商已經提供了相當成熟和完備的解決方案。

以我們華為云舉例,目前華為云的數據倉庫服務 GaussDB(DWS)已經做到了:實時、簡單、安全可信的企業級融合數據倉庫,并可借助DWS Express將查詢分析擴展至數據湖?;谌A為GaussDB產品的云原生服務,也可以兼容標準SQL和PostgreSQL/Oracle生態。所以,在工具完備的情況下,開發者們更關注的應該是技術層面。今天小編要和大家分享的,就是構建數據倉庫的重要一環:ETL。

ETL是將業務系統的數據經過抽取、清洗轉換之后加載到數據倉庫的過程,是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中。目的是將企業中的分散、零亂、標準不統一的數據整合到一起,為企業的決策提供分析依據。

ETL算法概覽

算法應用場景概覽

以上共計累積了8種ETL算法,其中主要分成4大類,增量累加、拉鏈算法是更符合數據倉庫歷史數據追蹤的算法,但現實中基于業務及性能考慮,往往存在全刪全插、增量累全算法的數據表應用。

全刪全插模型

即Delete/Insert實現邏輯;

應用場景

主要應用在維表、參數表、主檔表加載上,即適合源表是全量數據表,該數據表業務邏輯只需保存當前最新全量數據,不需跟蹤過往歷史信息。

算法實現邏輯

1.清空目標表; 2.源表全量插入;

ETL代碼原型

--1.清理目標表 TRUNCATE TABLE <目標表>; -- 2. 全量插入 INSERT INTO <目標表> (字段***) SELECT 字段*** FROM <源表> ***JOIN <關聯數據> WHERE ***;

增量累全模型

即Upsert實現邏輯;

應用場景

主要應用在參數表、主檔表加載上,即源表可以是增量或全量數據表,目標表始終最新最全記錄。

算法實現邏輯

1.利用PK主鍵比對; 2.目標表和源表PK一致的變化記錄,更新目標表; 3.源表存在但目標表不存在,直接插入;

ETL代碼原型

--1.生成加工源表 Create temp Table <臨時表> ***; INSERT INTO <臨時表> (字段***) SELECT 字段*** FROM <源表> ***JOIN <關聯數據> WHERE *** ; -- 2. 可利用Merge Into實現累全能力,當前也可以采用分步Delete/Insert或Update/Insert操作 Merge INTO <目標表> As T1 (字段***) Using <臨時表> as S1 on (***PK***) when Matched then update set Colx = S1.Colx *** when Not Matched then INSERT (字段***) values (字段*** )

增量累加模型

即Append實現邏輯;

應用場景

主要應用在流水表加載上,即每日產生的流水、事件數據,追加到目標表中保留全歷史數據。流水表、快照表、統計分析表等均是通過該邏輯實現。

算法實現邏輯

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

ETL代碼原型

-- 1.插入目標表 INSERT INTO <目標表> (字段***) SELECT 字段*** FROM <源表> ***JOIN <關聯數據> WHERE ***;

全歷史拉鏈模型

拉鏈表背景知識

概念 拉鏈表是一張至少存在PK字段、跟蹤變化的字段、開鏈日期、閉鏈日期組成的數據倉庫ETL數據表;

益處 根據開鏈、閉鏈日期可以快速提取對應日期有效數據; 對于跟蹤源系統非事件流水類表數據,拉鏈算法發揮越大作用,源業務系統通常每日變化數據有限,通過拉鏈加工可以大大降低每日打快照帶來的空間開銷,且不損失數據變化歷史;

示例 提取指定日期有效數據

提取2020年2月5日當日有效數據

Select* From <目標表> Where 開始日期<=date'2020-02-05' And 結束日期 >date'2020-02-05';

最終提取到數據:

應用場景

全歷史拉鏈,跟蹤源表全量變化歷史,若源表記錄不存在,則說明數據閉鏈;根據PK新拉一條有效記錄。

算法實現邏輯

1.提取當前有效記錄; 2.提取當日源系統最新數據; 3.根據PK字段比對當前有效記錄與最新源表,更新目標表當前有效記錄,進行閉鏈操作; 4.根據全字段比對最新源表與當前有效記錄,插入目標表;

ETL代碼原型

--1.提取當前有效記錄 Insert into <臨時表-開鏈-pre> (不含開閉鏈字段***) Select 不含開閉鏈字段*** From <目標表> Where 結束日期 =date'<最大日期>'; ; -- 2. 提取當日源系統最新數據 <源表臨時表-cur> -- 3 今天全部開鏈的數據,即包含今天全新插入、數據發生變化的記錄 Insert Into <臨時表-增量-ins> Select 不含開閉鏈字段*** From <源表臨時表-cur> where (不含開閉鏈字段***) not in (Select 不含開閉鏈字段*** From <臨時表-開鏈-pre> ); -- 4 今天需要閉鏈的數據,即今天發生變化的記錄 Insert into <臨時表-增量-upd> Select 不含開閉鏈字段***,開始時間 From <臨時表-開鏈-pre> where (不含開閉鏈字段***) not in (Select 不含開閉鏈字段*** From <臨時表-開鏈-cur> ); -- 5 更新閉鏈數據,即歷史記錄閉鏈(刪除-插入替代更新) DELETE FROM <目標表> WHERE (PK***) IN (Select PK*** From <臨時表-增量-upd>) AND 結束日期=date'<最大日期>'; INSERT INTO <目標表> (不含開閉鏈字段***,開始時間,結束日期) Select 不含開閉鏈字段***,開始時間,date'<數據日期>' From <臨時表-增量-upd>; -- 6 插入開鏈數據,即當日新增記錄 INSERT INTO <目標表> . (不含開閉鏈字段***,開始時間,結束日期) Select 不含開閉鏈字段***,date'<數據日期>',date'<最大日期>' From <臨時表-增量-ins>;

增量拉鏈模型

應用場景

增量拉鏈,目的是追蹤數據增量變化歷史,根據PK比對新拉一條開鏈數據;

算法實現邏輯

1.提取上日開鏈數據; 2.PK相同變化記錄,關閉舊記錄鏈,開啟新記錄鏈; 3.PK不同,源表存在,新增開鏈記錄

ETL代碼原型

--1.提取當前有效記錄 Insert into <臨時表-開鏈-pre> (不含開閉鏈字段***) Select 不含開閉鏈字段*** From <目標表> Where 結束日期 =date'<最大日期>'; -- 2. 提取當日源系統增量記錄 <源表臨時表-cur> -- 3. 提取當日源系統新增記錄 Insert into <臨時表-增量-ins> Select 不含開閉鏈字段*** From <臨時表-開鏈-cur> where (***PK***) not in (select ***PK*** from <臨時表-開鏈-pre>); -- 4. 提取當日源系統歷史變化記錄 Insert into <臨時表-增量-upd> Select 不含開閉鏈字段*** From <臨時表-開鏈-cur> inner join <臨時表-開鏈-pre> on (***PK 等值***) where (***變化字段 非等值***); -- 5. 更新歷史變化記錄,關閉歷史舊鏈,開啟新鏈 update <目標表> AS T1 SET <***變化字段 S1賦值***>,結束日期 = date'<數據日期>' FROM <臨時表-增量-upd> AS S1 WHERE ( <***PK 等值***> ) AND T1.結束日期 =date'<最大日期>' ; INSERT INTO <目標表> (不含開閉鏈字段***,開始時間,結束日期) SELECT 不含開閉鏈字段***,date'<數據日期>',date'<最大日期>' FROM <臨時表-增量-upd>; -- 6. 插入全新開鏈數據 INSERT INTO <目標表> (不含開閉鏈字段***,開始時間,結束日期) SELECT 不含開閉鏈字段***,date'<數據日期>',date'<最大日期>' FROM <臨時表-增量-ins>;

增刪拉鏈模型

應用場景

主要是利用業務字段跟蹤增量數據中包含刪除的變化歷史。

算法實現邏輯

1.提取上日開鏈數據; 2.提取源表非刪除記錄; 3.PK相同變化記錄,關閉舊記錄鏈,開啟新記錄鏈; 4.PK比對,源表存在,新增開鏈記錄; 5.提取源表刪除記錄; 6.PK比對,舊開鏈記錄存在,關閉舊記錄鏈;

ETL代碼原型

--1.清理目標表《待續...》 TRUNCATE TABLE <目標表>; -- 2. 全量插入 INSERT INTO <目標表> (字段***) SELECT 字段*** FROM <源表> ***JOIN <關聯數據> WHERE ***;

全量增刪拉鏈模型

應用場景

主要是利用業務字段跟蹤全量數據中包含刪除的變化歷史。

算法實現邏輯

1.提取上日開鏈數據; 2.提取源表非刪除記錄; 3.PK相同變化記錄,關閉舊記錄鏈,開啟新記錄鏈; 4.PK比對,源表存在,新增開鏈記錄; 5.提取源表刪除記錄; 6.PK比對,舊開鏈記錄存在,關閉舊記錄鏈; 7.PK比對,提取舊開鏈存在但源表不存在記錄,關閉舊記錄鏈;

ETL代碼原型

-- 1. 清理目標表,《待續...》 TRUNCATE TABLE <目標表>; -- 2. 全量插入 INSERT INTO <目標表> (字段***) SELECT 字段*** FROM <源表> ***JOIN <關聯數據> WHERE ***;

自拉鏈模型

應用場景

主要將流水表數據轉化成拉鏈表數據。

算法實現邏輯

借助源表業務日期字段,和目標表開鏈、閉鏈日期比對,首尾相接,拉出全歷史拉鏈;

ETL代碼原型

--1.清理目標表,《待續...》 TRUNCATE TABLE <目標表>; -- 2. 全量插入 INSERT INTO <目標表> (字段***) SELECT 字段*** FROM <源表> ***JOIN <關聯數據> WHERE ***;

其它說明

1.根據數據倉庫最佳實踐,所有數據表通常還會包含一些控制字段,即插入日期、更新日期、更新源頭字段,這樣對于數據變化敏感的數據倉庫,可以進一步追蹤數據變化歷史; 2.ETL算法本身是為了更好服務于數據加工過程,實際業務實現過程中,并不局限于傳統算法,即涉及到更多適應業務的自定義的ETL算法。

原文標題:8種優秀ETL算法推薦!數據倉庫開發者看過來~

文章出處:【微信公眾號:華為開發者社區】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ETL
    ETL
    +關注

    關注

    0

    文章

    25

    瀏覽量

    10118
  • 數據倉庫
    +關注

    關注

    0

    文章

    65

    瀏覽量

    10972

原文標題:8種優秀ETL算法推薦!數據倉庫開發者看過來~

文章出處:【微信號:Huawei_Developer,微信公眾號:華為開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    篇文章帶你了解什么是物聯網技術?

    和相關的通信協議,以確保數據的可靠傳輸和高效處理。 平臺層:也稱為中間件層,主要負責數據的存儲、處理和分析。包括數據存儲系統(如數據庫、數據倉庫
    發表于 02-09 16:58

    1688庫存API:多倉庫同步,庫存周轉快!

    ? 在電商和供應鏈管理中,高效的庫存管理是企業成功的關鍵。1688平臺提供的庫存API,支持多倉庫同步功能,能顯著提升庫存周轉效率。本文將逐步介紹其技術實現和優勢,幫助開發者理解如何利用API優化
    的頭像 發表于 01-08 14:47 ?245次閱讀
    1688庫存API:多<b class='flag-5'>倉庫</b>同步,庫存周轉快!

    臺積電增長、英偉達獲售與供應鏈的“最后一環”韌性

    “激活”。 專業化服務商正成為關鍵戰略環節,通過全球化服務網絡、前沿協議支持能力及全流程數據追溯體系,應對規?;?、復雜化與合規化的“最后公里”挑戰。因此,供應鏈競爭已從爭奪產能延伸至確保每顆芯片的“完美出廠”,對“最后一環
    的頭像 發表于 12-11 11:20 ?517次閱讀
    臺積電增長、英偉達獲售與供應鏈的“最后<b class='flag-5'>一環</b>”韌性

    恩智浦推出基于S32K3的雙芯片區域控制器解決方案

    區域控制是汽車電子電氣架構演進、向軟件定義汽車邁進的重要一環。為了滿足區域電子控制器開發中對大容量存儲、多IO資源、多通信接口以及更強處理能力的需求,恩智浦基于S32K3,推出了C3雙芯片區域控制器解決方案。
    的頭像 發表于 11-26 16:26 ?1804次閱讀

    鋰電池出口美國做UL還是ETL認證

    UL 標準執行檢測的第三方機構。也就是說: “UL 認證” ≈ “ETL 按 UL 標準發證”,只要依據同標準(如 UL 2054、UL 62133-2),美國海
    的頭像 發表于 10-23 09:38 ?815次閱讀
    鋰電池出口美國做UL還是<b class='flag-5'>ETL</b>認證

    DDR器件管腳說明

    DDR是硬件設計的重要一環,作為名硬件工程師除了對DDR基礎和原理要有了解外,最重要的也就是對DDR控制器的掌握。本文章從DDR外部管腳的角度進行描述,學習DDR的關鍵設計要注意和了解的部分。
    的頭像 發表于 10-10 09:15 ?2755次閱讀
    DDR器件管腳說明

    什么是全國產化導航計算機子卡?它有多重要

    全國產化導航計算機子卡是實現在國防、航天等國家關鍵領域技術自主的重要一環
    的頭像 發表于 09-16 18:02 ?863次閱讀
    什么是全國產化導航計算機子卡?它有多<b class='flag-5'>重要</b>

    米爾RK3576核心板,讓360技術開發更簡單

    控制方面表現突出。 總結:好的平臺,降低360開發門檻要讓360技術更容易、更高效地落地,個功能全面又簡單易用的平臺至關
    發表于 08-06 18:13

    東風新能源車大批量簽約交付

    近期,東風新能源車大批量簽約交付投入網約車市場,攜手合作伙伴共建出行服務新標桿,成為城市綠色出行的重要一環。
    的頭像 發表于 07-31 14:19 ?993次閱讀

    千兆以太網卡——數據采集系統重要一環

    從自動化產線到智能座艙,道路險情測試與監測場景激增,數據采集(DAQ) 市場正路高歌:全球規模預計將從?2025?年的?28?億美元增至?2030?年的?37?億美元,年復合增長率?5.9
    的頭像 發表于 07-24 17:31 ?607次閱讀
    千兆以太網卡——<b class='flag-5'>數據</b>采集系統<b class='flag-5'>重要</b>的<b class='flag-5'>一環</b>

    CANopen轉Profinet網關與伺服器的集成工業自動化領域的重要一環

    在工業自動化領域,構建穩定高效的通信系統對生產流程至關重要。本文探討利用CANopen轉Profinet網關構建包含匯川變頻器的主站通信系統。配置時需在軟件中創建工程并集成網關主站設備,該設備作為通信架構核心,負責網絡管理與控制。
    的頭像 發表于 07-22 13:27 ?569次閱讀

    CANopen轉Profinet網關與伺服器的集成工業自動化技術重要一環

    Profinet
    jf_69310483
    發布于 :2025年07月21日 17:59:07

    UPS電源—公司選UPS電源,這招絕了

    在現代企業中,電力保障是確保業務連續性和數據安全的重要一環。UPS(不間斷電源)作為電力保障的核心設備,其類型多樣,各具特點,選擇適合公司的UPS電源類型顯得尤為重要。下面聊下如何根
    的頭像 發表于 07-02 10:11 ?689次閱讀
    UPS電源—公司選UPS電源,這招絕了

    部隊倉庫管理模式革新,RFID技術倉庫管理更高效

    的“庫房”概念,成為部隊戰斗力生成鏈條中不可或缺的一環。 這系統之根基,在于對物資的全面掌控與高效流轉。它構建了強大的物資譜系,從入庫登記、精準分類、細致編碼,到質量狀態追蹤與庫存位置鎖定,構筑了數據化管理的堅
    的頭像 發表于 06-03 17:44 ?593次閱讀
    部隊<b class='flag-5'>倉庫</b>管理模式革新,RFID<b class='flag-5'>技術</b>讓<b class='flag-5'>倉庫</b>管理更高效

    HarmonyOS5云服務技術分享--賬號關聯開發指南

    ? 大家好!今天我們來聊聊如何在HarmonyOS應用開發中,使用ArkTS(API 12)實現賬號關聯功能。無論是社交應用、游戲還是工具類App,賬號體系都是用戶體驗的重要一環。通過靈活的賬號關聯
    發表于 05-22 16:53