tft每日頭條

 > 科技

 > etl與數據庫區别

etl與數據庫區别

科技 更新时间:2024-06-26 23:28:47
什麼是ETL?

ETL(Extract, Transform and Load)是從不同的源系統中提取數據,然後轉換數據(如應用計算、連接等)并最終将數據加載到數據倉庫系統中的過程。ETL 的完整形式是提取、轉換和加載。

很容易認為創建數據倉庫隻是從多個來源提取數據并加載到數據倉庫的數據庫中。這與事實相去甚遠,需要複雜的 ETL 過程。ETL 過程需要來自包括開發人員、分析師、測試人員、高層管理人員在内的各種利益相關者的積極投入,并且在技術上具有挑戰性。

為了保持其作為決策者工具的價值,數據倉庫系統需要随着業務的變化而變化。ETL 是數據倉庫系統的重複活動(每天、每周、每月),需要敏捷、自動化和有據可查。

為什麼需要ETL?

在組織中采用 ETL 的原因有很多:

  • 它可以幫助公司分析其業務數據以做出關鍵業務決策。
  • 事務型數據庫無法回答 ETL 示例可以回答的複雜業務問題。
  • 數據倉庫提供公共數據存儲庫
  • ETL 提供了一種将數據從各種來源移動到數據倉庫中的方法。
  • 随着數據源的變化,數據倉庫會自動更新。
  • 精心設計和記錄的 ETL 系統對于數據倉庫項目的成功幾乎是必不可少的。
  • 允許驗證數據轉換、聚合和計算規則。
  • ETL 過程允許在源系統和目标系統之間比較樣本數據。
  • ETL 過程可以執行複雜的轉換并且需要額外的區域來存儲數據。
  • ETL 有助于将數據遷移到數據倉庫。轉換為各種格式和類型以遵循一個一緻的系統。
  • ETL 是一個預定義的過程,用于訪問和操作源數據到目标數據庫中。
  • 數據倉庫中的 ETL 為業務提供了深刻的曆史背景。
  • 它有助于提高生産力,因為它無需技術技能即可編碼和重複使用。
數據倉庫中的 ETL 過程

ETL 是一個 3 步過程

etl與數據庫區别(數據倉庫系列5-ETL是什麼)1

ETL流程

步驟 1) 提取

在 ETL 架構的這一步中,數據從源系統中提取到暫存區。在暫存區進行轉換(如果有),以便源系統的性能不會降低。此外,如果将損壞的數據直接從源複制到數據倉庫數據庫中,回滾将是一個挑戰。暫存區提供了在提取的數據進入數據倉庫之前對其進行驗證的機會。

數據倉庫需要集成不同的系統、DBMS、硬件、操作系統和通信協議。來源可能包括大型機等遺留應用程序、定制應用程序、ATM 等接觸點設備、呼叫交換機、文本文件、電子表格、ERP、來自供應商、合作夥伴等的數據。

因此,在物理提取和加載數據之前,需要一個邏輯數據映射。該數據映射描述了源數據和目标數據之間的關系。

三種數據提取方法:

  1. 完全提取
  2. 部分提取 - 沒有更新通知。
  3. 部分提取 - 帶有更新通知

無論使用何種方法,提取都不應影響源系統的性能和響應時間。這些源系統是實時生産數據庫。任何放緩或鎖定都可能影響公司的底線。

在提取期間完成了一些驗證:

  • 将記錄與源數據協調
  • 确保沒有加載垃圾郵件/不需要的數據
  • 數據類型檢查
  • 删除所有類型的重複/碎片數據
  • 檢查所有鑰匙是否到位
步驟 2) 轉型

從源服務器提取的數據是原始數據,不能以其原始形式使用。因此,需要對其進行清理、映射和轉換。事實上,這是 ETL 過程增加價值和更改數據以生成有洞察力的 BI 報告的關鍵步驟。

它是重要的 ETL 概念之一,您可以在其中對提取的數據應用一組函數。不需要任何轉換的數據稱為直接移動傳遞數據

在轉換步驟中,您可以對數據進行自定義操作。例如,如果用戶想要數據庫中沒有的銷售收入總和。或者,如果表中的名字和姓氏在不同的列中。可以在加載之前連接它們。

etl與數據庫區别(數據倉庫系列5-ETL是什麼)2

數據集成問題

以下是數據完整性問題:

  1. 同一個人的不同拼寫,如 Jon、John 等。
  2. 有多種表示公司名稱的方法,例如 Google、Google Inc.
  3. 使用不同的名稱,如克利夫蘭、克利夫蘭。
  4. 可能存在針對同一客戶的不同應用生成不同賬号的情況。
  5. 在某些數據所需的文件中仍為空白
  6. 在 POS 收集的無效産品作為手動輸入可能會導緻錯誤。

在此階段完成驗證

  • 過濾 – 隻選擇某些列加載
  • 使用規則和查找表進行數據标準化
  • 字符集轉換和編碼處理
  • 測量單位的轉換,如日期時間轉換、貨币轉換、數字轉換等。
  • 數據阈值驗證檢查。例如,年齡不能超過兩位數。
  • 從暫存區到中間表的數據流驗證。
  • 必填字段不應留空。
  • 清潔(例如,将 NULL 映射到 0 或将 Gender Male 映射到“M”和将女性映射到“F”等)
  • 将一列拆分為多列并将多列合并為一列。
  • 轉置行和列,
  • 使用查找來合并數據
  • 使用任何複雜的數據驗證(例如,如果一行中的前兩列是空的,那麼它會自動拒絕處理該行)
步驟 3) 加載

将數據加載到目标數據倉庫數據庫是 ETL 過程的最後一步。在典型的數據倉庫中,需要在相對較短的時間内(夜間)加載大量數據。因此,加載過程應該針對性能進行優化。

在加載失敗的情況下,恢複機制應配置為從故障點重新啟動而不會丢失數據完整性。數據倉庫管理員需要根據當前的服務器性能監控、恢複、取消加載。

加載類型:

  • 初始加載— 填充所有數據倉庫表
  • 增量負載——在需要時定期應用正在進行的更改。
  • 完全刷新 —擦除一個或多個表的内容并重新加載新數據。
負載驗證
  • 确保關鍵字段數據既不缺失也不為空。
  • 基于目标表測試建模視圖。
  • 檢查組合值和計算的度量。
  • 維表和曆史表中的數據檢查。
  • 檢查有關加載的事實和維度表的 BI 報告。
最佳實踐 ETL 流程

以下是 ETL 流程步驟的最佳實踐:

永遠不要嘗試清理所有數據:每個組織都希望所有數據都幹淨,但他們中的大多數還沒有準備好為等待或沒有準備好等待。清理所有數據隻會花費太長時間,因此最好不要嘗試清理所有數據。

永遠不要清洗任何東西:總是計劃清理一些東西,因為構建數據倉庫的最大原因是提供更幹淨、更可靠的數據。

确定清理數據的成本:在清理所有髒數據之前,确定每個髒數據元素的清理成本很重要。

為了加速查詢處理,有輔助視圖和索引:為了降低存儲成本,将彙總數據存儲到磁盤磁帶中。此外,需要在要存儲的數據量與其詳細使用之間進行權衡。在數據粒度級别進行權衡以降低存儲成本。

概括:
  • ETL 代表提取、轉換和加載。
  • ETL 提供了一種将數據從各種來源移動到數據倉庫中的方法。
  • 在第一步抽取中,數據從源系統抽取到暫存區。
  • 在轉換步驟中,對從源中提取的數據進行清理和轉換。
  • 将數據加載到目标數據倉庫是 ETL 過程的最後一步。

參考guru99

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved