數據工程師——ETL

ETL面試題01

一、基礎概念與理論類

1. 請解釋什么是 ETL?它在數據處理流程中扮演什么角色?

答:ETL就是數據抽取、轉化、加載。目的是將分散的數據源集中在一起進行處理分析。

數據抽取:是指各種數據源中抽取數據,包括關系型數據庫(MySQL、Oracle等)、日志文件、Excel、非關系型數據庫、流失數據(kafka)等等,可以是全量抽取也可以是增量抽取。

數據轉化:是指將抽取到的數據進行清洗、格式轉化、數據整合、業務規則計算等等操作,使數據符合目標數據存儲的格式和業務需求,是最為復雜的步驟。

數據加載:將清洗轉化后的高質量數據加載到目標數據存儲中,例如數據倉庫(hive等)、數據湖,可以實現全量加載、增量加載、分區加載等,以供后續分析和應用。

ETL在數據處理流程中有重要作用:它將多個數據源進行整合統一,將數據進行轉化清洗,提升數據的質量,還能夠支持數據分析與業務決策,從數據中發現業務規律與問題,同時ETL工具也可以實現自動化數據流程,保證數據的時效性。

2. ETL 和 ELT 有什么區別?分別適用于哪些場景?

答:這兩者主要是操作步驟順序的不同。

ETL:先將數據轉化后再加載到目標數據存儲當中,轉換依賴ETL工具的計算能力,適合數據量較小的場景。

ELT:先將原數據加載到目標數據存儲后,再將數據進行轉換計算,可以利用目標存儲的分布式計算能力(Spark)進行轉換,更適合海量數據處理。

3. 什么是數據倉庫?它與數據庫的區別是什么?ETL 在數據倉庫中起到什么作用?

答:數據倉庫是一個面向主題的、集成的、非易失的、隨時間變化的數據集合,主要的作用是支持企業的決策分析。

數據倉庫的數據都是圍繞業務主題組織,它集成了多個數據源,例如數據庫、文件、日志等,通常數據一旦進入數據庫,是不會被頻繁修改的,主要是用來查詢分析而不是事務處理。數據會按照時間維度存儲歷史快照,支持趨勢分析。

4. 維度建模中的事實表和維度表有什么區別?各有哪些類型?

答:事實表是業務指標的載體,記錄發生了什么;維度表是業務的上下文信息,用來記錄人物時間地點、如何發生等。二者通過外鍵形成層關聯,形成“星型模型”或“雪花模型”,支撐靈活的多為分析。

事實表:存儲業務過程中可以量化的指標,如銷售額、訂單數,記載業務流水,數據特點是數據量大、更新頻繁。按照數據顆粒度和業務場景可以分為:事務事實表(最常見的訂單事務表)、周期快照表(記錄固定時間點的業務狀態,如每日庫存快照表)、累積快照事實表(從業務過程的開始到結束的全生命周期記錄)、無事實事務表(記錄事件的發生或關系的存在,如瀏覽記錄表)。

維度表:存儲描述性信息,如用戶、時間地點等,數據量少、更新頻率低。按結構和更新方式可分為:常規維度表(如商品維度表)、緩慢變化維度表(處理維度隨時間緩慢變化的場景有需要保留歷史狀態支持回溯,如商品分類調整表)、快速變化維度表(維度屬性頻繁變化,如:商品實時評分)、角色扮演維度表(同一維度在事實表中扮演多個角色,通過不同外鍵區分)、退化維度表(維度直接存儲在事實表中,不單獨創建維度表,通常是事務編號等無復雜描述的字段,例如訂單事實表中的訂單號)

5. 什么是緩慢變化維度(SCD)?常見的 SCD 類型有哪些,分別適用于什么場景?

答:緩慢變化維度就是可能會隨時間緩慢變化的維度,例如年齡、住址變更、商品分類變更等。常見的SCD類型主要是根據業務歷史數據進行設計的,主要是業務對于歷史數據的需求。

直接覆蓋型:不保留歷史數據,直接覆蓋新值,實現簡單節省空間。例如數據錯誤修正,無需保留錯誤值。

新增版本型:屬性變化時,舊記錄保存,新增一條記錄值,通過版本號或者時間戳記錄有效性。完整保留歷史版本,支持任意時間點的回溯。適用于歷史狀態有分析價值和需追蹤屬性的全生命周期的場景。

有限歷史型:在維度表中新增字段存儲最近的一次歷史值,進保留有限的歷史版本,實現簡單,歷史記錄有限,適合只需要比對“當前狀態與上一狀態”的場景,例如商品單價調整,當前單價與上一單價。

歷史表分離型:用兩個表存儲維度數據,主表存儲最新數據,歷史表存儲所有的歷史變更,記錄時間戳。特點是當前數據查詢高效,合適高頻查詢當下與低頻查詢歷史的場景。

混合型:場景復雜,綜合上述類型的特點。

6. 數據清洗的主要目的是什么?常見的數據質量問題有哪些,如何處理?

答:數據清洗的目的是消除原數據中的錯誤、不一致或無用信息,得到高質量、可靠的數據,包括確保數據的準確性、完整性、一致性(格式/邏輯一致)和有效性(符合業務規則),消除冗余或重復數據,減少存儲和計算資源,更貼合業務場景。

常見的數據質量問題:

  • 數據缺失:例如字段為空,可能是數據采集遺漏或系統故障等。可以通過填充、刪除、標記等方式,填充可以采用均值、中位數或者眾數填充,也可以通過時間序列用前后值插值的方式或者用業務邏輯推導,需要根據實際業務進行判斷調整。若是比例較大且無用的字段可以直接刪除或者標記“未知”、”N/A“,保留原始狀態。
  • 數據重復:存在完全相同或核心信息重復的記錄,會導致分析結果偏差。可以通過唯一標識或者組合標識進行去重,或者通過邏輯進行重復記錄合并(記錄的字段存在差異)
  • 數據錯誤(值不符合實際):字段值不符合業務邏輯或常識。可以通過業務規則進行校驗修正,聯系數據源,對于極端值先確認是否為真實業務數據,若有誤可以標記或刪除,格式問題可以直接調整格式。
  • 數據不一致:同一實體的信息在不同的數據源中存在矛盾,可能由于數據源不同步、業務規則不同意、字段定義模糊導致。可以采用統一格式、邏輯校驗、主數據管理等方式確保數據同一。
  • 數據冗余:存在不必要的重復字段或無關信息,可以選擇直接刪除冗余字段,同時規范化存儲。
  • 數據無效:數據不符合業務場景的有效性,例如“已取消的訂單”卻有“發貨時間”。直接過濾無效記錄,通過業務流程校驗,修正邏輯錯誤。

7. 什么是數據血緣?它在 ETL 過程中的作用是什么?

答:數據血緣就是描述數據從源頭產生到最終消費的全生命周期的流轉路徑以及各環節之間的依賴關系的記錄,類似于”家譜“,展示數據從哪里來(源系統、原始表),經過了那些處理(ETL轉換、計算邏輯、過濾規則)、最終到哪里(目標表、報表等)

數據血緣是數據從分散數據到目標存儲的核心流轉過程,可以幫助我們進行問題排查與故障定位,因為ETL涉及到多核環節的流轉,若是最終數據存在異常可以通過數據血緣快速追溯;保障數據質量和合規性;分析步驟變更影響,例如中間某一個環節需要調整,可以快速判斷出下游那些表也會受到影響以及可能存在的風險;便于數據資產管理和跨團隊協作,快速對齊數據定義。

二、工具與技術類

1. 你常用的 ETL 工具有哪些(如 DataStage、Informatica、Kettle、Talend 等)?請介紹一下它們的特點和使用場景。

答:常用的是Kettle工具。主要是因為Kettle開源免費,成本低,而且功能強大,支持多種數據源(數據庫、文件、API、Hadoop等),

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

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

相關文章

Oracle APEX 經典報表中的Checkbox

目錄 1. 建表&投入測試數據 2. 經典報表做成 2-1. 畫面布局如下?編輯 2-2. 報表使用的SQL 2-3. RS列的Heading設定 2-4. Function and Global Variable Declaration 2-5. Execute when Page Loads 2-6. Process 3. 運行效果?編輯 1. 建表&投入…

Codeforces Round 1043 (Div.3)

比賽連接:Codeforces Round 1043 (Div.3) A. Homework 題目鏈接:A - Homework Vlad and Dima have been assigned a task in school for their English class. They were given two strings aaa and bbb and asked to append all characters from bbb …

GPS欺騙式干擾的產生

我們在GNSS抗干擾天線的選型、測試方法以及為什么不能做RTK?(抗干擾內容全集)中提到的抗干擾天線,針對的是GPS壓制式干擾。對于GPS欺騙式干擾,抗干擾天線是無能為力的。 簡單來說,壓制式干擾是通過發射強功…

[PV]AXI R/W/RW帶寬計算的tcl腳本

AXI R/W/RW帶寬計算的tcl腳本 我基于前述的axi_read_bw_per_id.tcl腳本進行了修改,使其支持: 讀通道(Read Channel):計算基于rvalid && rready的有效周期(已在前述實現)。 寫通道(Write Channel):計算基于wvalid && wready的有效周期,考慮wstrb的ac…

阿里云AnalyticDB同步數據至華為云taurusdb

1 概述 AnalyticDB和taurusdb都是高度兼容mysql協議的數據庫,從現有的AnalyticDB官方數據同步方案來看,只有FlinkSQL合適。 同步方案官方文檔: https://help.aliyun.com/zh/analyticdb/analyticdb-for-mysql/user-guide/flink-subscribes-b…

學習嵌入式之驅動——系統移植(二)

一、uboot常用命令與環境變量1.命令:(1)環境變量操作命令命令功能格式printenv 查看環境變量printenvsetenv新建/修改環境變量setenv 環境變量名 環境變量值saveenv保存環境變量saveenv(2)內存操作命令命令功能格式示例…

EasyExcel 合并單元格最佳實踐:基于注解的自動合并與樣式控制

EasyExcel 合并單元格最佳實踐:基于注解的自動合并與樣式控制 前言 在日常開發中,我們經常需要導出 Excel 報表,而合并單元格是提升報表可讀性的常見需求。本文將介紹如何基于 EasyExcel 實現智能的單元格合并功能,通過自定義注解…

Unity設置UI顯示區域

系列文章目錄 untiy工具 文章目錄 系列文章目錄 ??前言 ??一、效果圖 ??二、制作過程(檢測中心點位置) ??2-1、代碼實現 ??三、優化為檢測整個UI四個角點 ??四、性能優化建議 ??壁紙分享 ??總結 ??前言 思路: 獲取屏幕的寬度和高度,定義中間區域的范圍…

Qt中用于圖像縮放的核??法QPixmap::scaled

QPixmap::scaled是Qt中用于圖像縮放的核??法,其作?和?法如下:?一、核心作用??圖像尺寸調整?根據指定尺寸對圖像進?等?例或?等?例縮放,?持放?和縮?操作。?保持寬高比?通過AspectRatioMode參數控制是否保持原始圖像的寬??。…

SQL Workbench/J:一款免費開源、跨平臺的通用SQL查詢工具

SQL Workbench/J 是一款基于 Java 開發的免費開源、跨平臺的通用 SQL 查詢工具。 SQL Workbench/J 主要專注于 SQL 腳本開發和數據導入導出功能,不提供各種數據庫管理功能。 功能特性 跨平臺:可以在任何安裝了 Java 運行時環境的操作系統上運行&#xf…

DOLO 上漲:Berachain 生態爆發的前奏?

在 Berachain 生態逐漸進入公眾視野之際,Dolomite(簡稱 Dolomite,代幣 DOLO)成為鏈上表現最為突出的明星協議。其代幣價格在短短兩個月內,從 $0.03 飆升至 $0.3,漲幅接近 10 倍。市場不僅將其視作 Berachai…

吉利汽車與芯鼎微成立聯合創新實驗室共譜車規級LCoS顯示新篇章

2025年8月20日,吉利汽車研究院技術規劃中心副主任李莉、光學實驗室負責人李金樺博士等一行四人蒞臨芯鼎微,雙方共同為"吉利汽車-芯鼎微聯合創新實驗室"揭牌,標志著兩家企業在車載先進顯示技術領域邁入深度協同創新的新階段。 在這汽…

NPM組件 @angular_devkit/core 等竊取主機敏感信息

【高危】NPM組件 angular_devkit/core 等竊取主機敏感信息 漏洞描述 當用戶安裝受影響版本的 angular_devkit/core 等NPM組件包時會竊取用戶的主機名、用戶名、IP地址信息并發送到攻擊者可控的服務器地址。 MPS編號MPS-1jf5-s6ix處置建議強烈建議修復發現時間2025-08-14投毒…

docker cuda版安裝 dockercuda版安裝

目錄 1.一鍵安裝docker 測試ok 2.安裝cuda支持 通用的應該沒問題 安裝工具包 配置 runtime: 3.檢查 Docker 是否支持 NVIDIA 運行時 1.一鍵安裝docker 測試ok curl -fsSL https://get.docker.com | sh 2.安裝cuda支持 通用的應該沒問題 也可以搜索安裝 cuda版d…

Spring發布訂閱模式詳解

Spring 的發布訂閱模式(Publish-Subscribe Pattern)是一種基于事件驅動的設計模式,通過 "事件" 作為中間載體實現組件間的解耦。在這種模式中,"發布者"(Publisher)負責產生事件并發布&…

服務器硬件中的磁盤SSD與HDD性能區別,以及分別適用于什么業務?

SSD(固態硬盤)和 HDD(機械硬盤)是服務器中常見的存儲設備類型,兩者在性能、可靠性、成本等方面存在顯著差異。根據這些特性,它們適用于不同的業務需求。以下是詳細的對比與應用場景分析:1. SSD …

AI驅動的SEO關鍵詞優化秘籍

內容概要人工智能技術的飛速發展正重塑SEO關鍵詞優化領域,為從業者帶來全新機遇與挑戰。本文將系統解析AI如何革新關鍵詞策略,覆蓋從語義搜索深度解析到長尾詞智能挖掘的核心環節。通過工具驅動的內容優化路徑,讀者將掌握提升流量轉化率的關鍵…

自然語言處理(NLP)技術的發展歷史

自然語言處理(NLP)作為人工智能的重要分支,其發展歷程跨越了大半個世紀,從早期的規則式嘗試到如今的大模型時代,技術路徑不斷迭代,核心目標始終是實現人機間的自然語言交互。以下從關鍵階段、技術突破和標志…

Swift 解法詳解 LeetCode 361:轟炸敵人,用動態規劃輕松拿下

文章目錄摘要描述題解答案題解代碼分析代碼解析示例測試及結果時間復雜度空間復雜度總結摘要 “轟炸敵人”這道題名字聽起來就很帶感,它其實是一個二維網格搜索問題。我們要找到一個能放置炸彈的位置,讓炸掉的敵人最多。雖然題目看起來復雜,…

如何高效推進將科技創新成果轉化為標準?

2024年10月26日,全國標準信息公共服務平臺正式發布了國家標準《科技成果評估規范》(GB/T 44731-2024 ),并從發布之日起正式實施。這一標準的正式推出,標志著政府在推進科技成果轉化、提升科技服務能力方面邁出了重要一…