數據倉庫基礎(二)ETL

本文轉載自:http://www.cnblogs.com/evencao/archive/2013/06/14/3135529.html

?

ETL在數據倉庫中具有以下的幾個特點:

數據流動具有周期性:

因為數據倉庫中的數據量巨大,一般采用成熟的ETL工具去完成抽取、轉換、加載,以降低設計開發的和維護的復雜度,使設計開發人員有更多的時間去專注于業務轉化規則。

ETL是數據抽取、轉換、加載的簡寫。它的一般過程是將數據源抽取出來,中間經過數據的清洗、轉換,最后加載到目標表中。ETL的過程一般是批量的。

?

ETL的本質

1.用戶應該理解ETL本質上就是數據從源到目標的過程。

2.大多數的ETL工具價格昂貴,宏觀上一般都適合處理海量的數據,但是在微觀上需要考慮ETL處理的不同情況。

3.元數據時ETL過程的重要體現,藐視了數據源的屬性、數據源到目標庫的轉換規則,數據抽取歷史記錄等。

4.構建一個商業智能系統,設計開發人員更多的人喜歡在ETL開始之前先將所有的業務規則弄清楚。

影響ETL數據質量的關鍵因素:

  • 可能會有一部風數據因為客觀或者人為的原因到時數據格式混亂。
  • 源系統設計存在不合理性
  • 在開發過程中,因為開發人員的錯誤或者設計人員對業務規則描述的問題,同樣會導致數據質量出現問題。

?

保證數據質量的方法:

  首先用戶必須遵守數據倉庫項目中的數據源的質量要求,對業務源數據進行仔細分析,以便對數據源的任何錯誤或不規范的地方有相應的處理方法,如對錯誤進行修改或者舍棄

  其次,在保證數據源的質量之后,在設計ETl過程中,對每一個步驟應該有一個衡量數據質量的方法,需要重視ETL的每一個過程。

  最后,就是規范業務流程,保證ETL正確性,避免誤刪或者重復加載數據。

其中對質量的衡量有幾種方式:

  • 1.定義的數據是否和實際值相同。
  • 2.指標數據是否符合業務規則。
  • 3.數據是否和業務源系統中的信息保持一致。
  • 4.數據時違背自然規律或者不符合常理。

?

主流的ETL工具有 Informatica PowerCenterDatastageETL 是商業智能的核心和靈魂

?

詳解ETL過程:

1.數據抽取

? ?數據抽取就是從源系統中獲取業務數據的過程。數據抽取時需要考慮很多的因素,(抽取時間,收取方式,抽取周期等)數據抽取有以下幾種情況:

? ? ? ? (1)如果業務操作系統數據庫和數據倉庫質檢的數據庫管理系統完全相同,只需要建立相應的連接關系就可以使用ETL工具直接訪問,或者調用相應的SQL語句或者存儲過程。

? ? ? ? (2)若數據倉庫系統和業務操作型數據庫的數據管理器不相同,比較簡單的方式是使用ETL工具導出成文本文件或者Execl文件,然后再進行統一的數據抽取。

? ? ? ? (3)如果需要抽取的數據量非常的龐大,此時必須考慮增量抽取。

2.數據清洗

  數據清洗就是選擇出有缺陷的數據,然后再將他們正確話和規范化,從而達到用戶要求的數據質量標準。

3.數據轉換

數據轉換就是指從業務系統中抽取的源數據,然后再根據數據倉庫模型的需求,進行一系列數據轉換的過程。

數據轉換是ETL過程中復雜度最高的過程,包括對數據不一致性的轉換,業務指標的計算和某些數據的匯總,為決策系統提供數據支持。

ETL轉換過程中可能包含幾個方面:

  • 對空值進行處理:在進行加載是需要將空值替換成某一數據或者直接進行加載。
  • 對數據格式規范化:例如:統一將數值型轉化為字符型
  • 根據業務需求進行字段的拆分和合并
  • 對缺失數據的替換:
  • 根據業務規則對數據進行過濾
  • 根據編碼表進行數據唯一性的轉換:

4.數據加載:

這是ETL的最后一筆,需要保證加載工具必須有高效的性能去完成數據加載,同時還需要考慮加載的時周期和數據加載的策略。

數據加載包括:

時間戳的加載方式,是比較常見的一種加載方式。

全表對比的加載方式、通過讀取日志進行加載的方式、全表刪除后再進行加載的方式。

5.ETL日志

? ? ETL日志非常重要,它記錄了ETL執行過程中的每一步信息。幫助系統維護人員進行監控,當然ETL日志也可以未做數據加載的一個策略。

ETL設計的規范要點:

1.在ETL設計之前,需要根據業務的需求確定所要分析的主題和數據結構。根據數據倉庫的模型,考慮在ETL設計中是否增加預留字段和屬性

2.確定數據的粒度

3.ETL抽取周期的確定。

4.以增量抽取的方式作為ETL設計的重點,減少數據抽取的壓力和抽取時間。

5.通常抽取盒清洗可以分成很多步驟

6.對異常情況進行處理。包括網絡中斷等情況進行處理,保證數據的正確性。

7.對ETL的運行管理和監控措施。

?

ETL的框架結構:

主要包括:ETL調度、抽取策略、轉換策略、加載策略

統一調度室ETL中較為重要的功能。

1.自動調度方式

2.手動調度方式

轉載于:https://www.cnblogs.com/shujuxiong/p/9105751.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251672.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251672.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251672.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSV出力ボタンラッパー(asp.net)[イベントの作り方に役立つ]

為什么80%的碼農都做不了架構師&#xff1f;>>> /// <summary> /// CSV出力ボタンラッパー。 /// </summary> public class CsvOutputButtonWrapper { /// <summary> /// CSV出力ボタン /// </summary> …

結構體變量字節填充

二&#xff1a; &#xff08;1&#xff09;sizeof也可以對一個函數調用求值&#xff0c;其結果是函數返回類型的大小&#xff0c;函數并不會被調用。 &#xff08;2&#xff09;終于搞懂struct結構體內存分配問題了&#xff0c;結構體中各個成員字節對齊遵循以下幾個原則&#…

iOS GoldRaccoon第三方FTP文件夾下載失敗原因

一、問題描述&#xff1a;1.下載失敗報錯&#xff1a; 文件寫入失敗Error DomainNSCocoaErrorDomain Code512 "未能將文件“jquery_1_10_2_min.js”存儲到文件夾“Q20180104153006399”中。" 原因及解決方法&#xff1a;文件夾下均為文件&#xff0c;不包含子文件夾&…

項目UML設計(團隊)

團隊信息 隊名&#xff1a;massivehard 組長&#xff1a;曉輝 隊員&#xff1a;一飛&#xff0c;帥珍&#xff0c;斌豪&#xff0c;錦謀 團隊分工 模塊序號模塊名模塊具體內容1日記編輯添加隨筆2照片選擇選擇照片識別3消息模塊收發消息4個人信息賬號&#xff0c;密碼等負責人分…

安裝asp.net mvc4后mvc3項目編譯報錯

為什么80%的碼農都做不了架構師&#xff1f;>>> 安裝asp.net mvc4之后&#xff0c;之前的mvc3項目編譯時報這個錯“The type System.Web.Mvc.ModelClientValidationRule exists in both c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.M…

SqlServer SqlBulkCopy批量插入 -- 多張表同時插入(事務)

這段時間在解決一個多個表需要同時插入大量數據的問題&#xff0c;于是在網上找了下&#xff0c;查到說用SqlBulkCopy效率很高&#xff0c;實驗后確實很快&#xff0c;10萬條數據只要4秒鐘&#xff0c;用ef要用40秒。但是我的還需兩張表同時插入&#xff0c;且需要用到事務&…

一介書生,僅此而已

喜歡寫文章&#xff0c;所以很少發隨筆。 嘛~其實是一開始就搞錯隨筆和文章的場景了&#xff0c;遷移太麻煩&#xff0c;有時間自己做個個人博客好了~~轉載于:https://www.cnblogs.com/restartyang/p/7710907.html

POJ 3608 Bridge Across Islands 《挑戰程序設計競賽》

為什么80%的碼農都做不了架構師&#xff1f;>>> POJ 3608 Bridge Across Islands跨島大橋&#xff1a;在兩個凸包小島之間造橋&#xff0c;求最小距離&#xff1f;3.6與平面和空間打交道的計算幾何 凸包 這題原始數據已經是凸包&#xff08;convex polygons&#x…

抓包(Charles工具入門)

一、charles工具簡單使用 1、錄制操作 錄制請求、清空錄制請求&#xff1a; 兩種展示請求的視圖方式&#xff1a; 2、錄制請求的簡單分析 &#xff08;1&#xff09;請求的總覽頁面Overview&#xff1a;可查看請求路徑、請求方式、請求時間等有關該請求的內容 &#xff08;2&am…

探秘創造力

為什么80%的碼農都做不了架構師&#xff1f;>>> 創造力&#xff0c;在很多行業和領域都被視為神奇的存在&#xff0c;大家都希望自己的創造力能夠無限&#xff0c;感覺創造力已經被神話了。其實&#xff0c;一個簡單問題可能很少人能夠明確&#xff1a;”創造力是天…

2017.10.23解題報告

預計分數&#xff1a;100600160 實際分數&#xff1a;100800180 T1 題目描述 現在有一個字符串&#xff0c;每個字母出現的次數均為偶數。接下來我們把第一次出現的字母a和第二次出現的a連一條線&#xff0c;第三次出現的和四次出現的字母a連一條線&#xff0c;第五次出現的和六…

Chrome Android 60.X+ 不能自動播放audio音頻的解決辦法

Chrome Android等一些瀏覽器默認限制了自動播放音頻視頻等&#xff0c;需要用戶有點擊的動作后才可以播放。這樣的原因在于很多用戶流量需要付費&#xff0c;而限制了自動播放可以避免用戶在不知情的情況下產生高額的流量費用。 在60.X版本之前&#xff0c;chrome://flags中有一…

(水一下)Linux啟動步驟(面試題)

1.加載并初始化Linux內核2.配置硬件設備3.內核創建自發進程4.由用戶決定是否進入手工引導模式5.init進程執行系統啟動腳本6.進入多用戶模式轉載于:https://blog.51cto.com/12942223/2408649

【WebGL】《WebGL編程指南》讀書筆記——第5章

一、前言 終于到了第五章了&#xff0c;貌似開始越來越復雜了。 二、正文 Example1&#xff1a;使用一個緩沖區去賦值多個頂點數據&#xff08;包含坐標及點大小&#xff09; function initVertexBuffers(gl) {var verticesSizes new Float32Array([0.0, 0.5, 10.0, -0.5, …

ngnix反向代理

https://blog.csdn.net/sherry_chan/article/details/79055211轉載于:https://www.cnblogs.com/lwj820876312/p/9115308.html

框架設計:實現數據的按需更新與插入的改進--用數據對比進一步說明

2019獨角獸企業重金招聘Python工程師標準>>> 在發布完&#xff1a;框架設計&#xff1a;實現數據的按需更新與插入的改進 之后&#xff1a; 有網友表示不理解&#xff0c;于是這里給出一篇簡單的說明對比&#xff0c;表示下改進后好處。 一&#xff1a;場景一&#…

Java異常詳解及如何處理

來源&#xff1a;Java異常詳解及如何處理 簡介 程序運行時&#xff0c;發生的不被期望的事件&#xff0c;它阻止了程序按照程序員的預期正常執行&#xff0c;這就是異常。異常發生時&#xff0c;是任程序自生自滅&#xff0c;立刻退出終止&#xff0c;還是輸出錯誤給用戶&…

端口以及服務常用cmd

netstat -ano 列出所有端口的情況 netstat -aon|findstr "49157" 查出特定端口的情況 tasklist|findstr "2720" 查看是哪個進程或者程序占用了PID端口的程序 打開任務管理器&#xff0c;切換到進程選項卡&#xff…

python學習筆記(二十八)日志模塊

我們在寫程序的時候經常會打一些日志來幫助我們查找問題&#xff0c;這次學習一下logging模塊&#xff0c;在python里面如何操作日志。介紹一下logging模塊&#xff0c;logging模塊就是python里面用來操作日志的模塊&#xff0c;logging模塊中主要有4個類&#xff0c;分別負責不…

TransactionScope 的基本原理簡介

C# 的事務編程 1 Db事務 DbConnection 中創建基于當前連接的 DbTransaction 2 使用TransactionScope ,創建環境事務 一旦創建&#xff0c;在這個環境包含的DbConnection 實例 都會根據連接字符串中的 Sqlserver 連接字符串支持&#xff0c;是否自動附加當前環境事務. 連接字符…