曉柚崽崽!
ETL(Extract, Transform, Load)工程師主要使用的開(kāi)發(fā)語(yǔ)言是SQL和編程語(yǔ)言,如Java,C#,Python等。其中SQL語(yǔ)言用于數(shù)據(jù)抽取和轉(zhuǎn)換,而編程語(yǔ)言則用于構(gòu)建ETL流程,實(shí)現(xiàn)數(shù)據(jù)處理和轉(zhuǎn)換。具體選擇什么語(yǔ)言取決于具體項(xiàng)目的需求,ETL工程師必須熟悉SQL和多種編程語(yǔ)言,以便根據(jù)需要使用合適的語(yǔ)言來(lái)實(shí)現(xiàn)
pisces850318
技術(shù)方面:需要學(xué)習(xí)使用數(shù)據(jù)源、目標(biāo)端工具的基本使用(如 oracle MySQL hive等);需要學(xué)習(xí)etl工具的安裝配置常用錯(cuò)誤解決(如 kettle DataStage infa sqoop datax等)
理論方面:懂得數(shù)倉(cāng)分層架構(gòu),維度建模等。
從ETL的字面來(lái)看,它主要包含三大階段,分別是數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)加載。
1.數(shù)據(jù)抽取
這個(gè)階段的主要目標(biāo)是匯總多種數(shù)據(jù)源,為下一步的轉(zhuǎn)換做準(zhǔn)備。
2.數(shù)據(jù)轉(zhuǎn)換
這個(gè)階段是ETL的核心環(huán)節(jié),也是最復(fù)雜的環(huán)節(jié)。它的主要目標(biāo)是將抽取到的各種數(shù)據(jù),進(jìn)行數(shù)據(jù)的清洗、格式的轉(zhuǎn)換、缺失值填補(bǔ)、剔除重復(fù)等操作,最終得到一份格式統(tǒng)一、高度結(jié)構(gòu)化、數(shù)據(jù)質(zhì)量高、兼容性好的數(shù)據(jù),為后續(xù)的分析決策提供可靠的數(shù)據(jù)支持。
3.數(shù)據(jù)加載
這個(gè)階段的主要目標(biāo)是把數(shù)據(jù)加載至目的地,比如數(shù)據(jù)倉(cāng)庫(kù)中。通常的做法是,將處理好的數(shù)據(jù)寫(xiě)成特定格式(如parquet、csv等)的文件,然后再把文件掛載到指定的表分區(qū)上。也有些表的數(shù)據(jù)量很小,不會(huì)采用分區(qū)表,而是直接生成最終的數(shù)據(jù)表。
了解了ETL這部分的工作主要做什么,接下來(lái)再來(lái)說(shuō)作為ETL工程師需要具備哪些技能,這些也就是需要學(xué)習(xí)的重點(diǎn)——
1、精通SQL語(yǔ)言,具備存儲(chǔ)過(guò)程開(kāi)發(fā)能力,能熟練進(jìn)行SQL查詢優(yōu)化;
2、熟悉Hive數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì),了解數(shù)據(jù)倉(cāng)庫(kù)模型及思想、維度建模思想,了解數(shù)據(jù)倉(cāng)庫(kù);
3、熟悉Hadoop、Spark、Flink、Kafka等相關(guān)技術(shù);
4、熟練Python、Java中至少一種語(yǔ)言;
5、熟悉Mysql、Nosql等常見(jiàn)數(shù)據(jù)庫(kù)。
優(yōu)質(zhì)工程師考試問(wèn)答知識(shí)庫(kù)