etl介绍与etl工具比较_ETL万岁
etl介紹與etl工具比較
提取轉(zhuǎn)換負(fù)載是從一個(gè)數(shù)據(jù)系統(tǒng)中提取數(shù)據(jù)并加載到另一個(gè)數(shù)據(jù)系統(tǒng)中的過程。 涉及的數(shù)據(jù)系統(tǒng)稱為源系統(tǒng)和目標(biāo)系統(tǒng)。
來自源系統(tǒng)的數(shù)據(jù)形狀與目標(biāo)系統(tǒng)不匹配,因此需要進(jìn)行一些轉(zhuǎn)換以使其兼容,該過程稱為Transformation 。 轉(zhuǎn)換是由map / filter / reduce操作完成的。
為了處理數(shù)據(jù)系統(tǒng)之間的不兼容性,需要一些元數(shù)據(jù)。 哪種類型的元數(shù)據(jù)會(huì)有用?
將源數(shù)據(jù)轉(zhuǎn)換成許多不同的形狀以處理各種業(yè)務(wù)用例是非常普遍的,因此對(duì)于源系統(tǒng)使用描述 性元數(shù)據(jù),對(duì)于目標(biāo)系統(tǒng)使用描述性元數(shù)據(jù)是有意義的。
元數(shù)據(jù)在使系統(tǒng)向后和向前兼容方面起著重要作用。
很多時(shí)候僅擁有元數(shù)據(jù)是不夠的,因?yàn)槟承┰?目標(biāo)系統(tǒng)數(shù)據(jù)太大或太小而無法容納。
這是當(dāng)變換變得有趣的情況。 這意味著某些值必須刪除或設(shè)置為NULL或默認(rèn)值,對(duì)此做出正確的決定對(duì)于轉(zhuǎn)換的向后/向前兼容性非常重要。 我想說許多企業(yè)的成功還取決于如何解決這個(gè)問題! 如果正確完成,可以避免許多集成夢(mèng)night。
到目前為止,我們只是在討論單一源系統(tǒng),但是在許多用例中,都需要來自其他系統(tǒng)的數(shù)據(jù)進(jìn)行一些轉(zhuǎn)換,例如將userid轉(zhuǎn)換為name,派生新的列值,查找編碼等等。
添加多源系統(tǒng)會(huì)增加轉(zhuǎn)換的復(fù)雜性,以處理丟失的數(shù)據(jù),陳舊的數(shù)據(jù)等。
隨著數(shù)據(jù)系統(tǒng)的發(fā)展,今天不僅涉及關(guān)系存儲(chǔ),我們還看到鍵值存儲(chǔ),文檔存儲(chǔ),圖數(shù)據(jù)庫,列存儲(chǔ),緩存,日志等。
新數(shù)據(jù)系統(tǒng)也已分發(fā),因此這增加了轉(zhuǎn)換復(fù)雜性的另一個(gè)維度。
我們的舊關(guān)系數(shù)據(jù)庫也可以描述為它是使用ETL模式構(gòu)建的,通過使用更改日志作為數(shù)據(jù)庫所做的一切工作的源
關(guān)于ETL的神話之一是,它是批處理過程,但是隨著Stream處理器(即Spark Streaming,Flink等)和Pub Sub系統(tǒng)(Kafka,Pulsur等)的出現(xiàn),它會(huì)隨著時(shí)間而改變。 這樣可以在事件推送到源系統(tǒng)后立即進(jìn)行轉(zhuǎn)換。
流式流行語不要被太多帶走,不
無論您使用哪個(gè)流處理器或發(fā)布子系統(tǒng),但您仍然必須應(yīng)對(duì)上述挑戰(zhàn)或利用某些新平臺(tái)來解決這一問題。
投資轉(zhuǎn)換/業(yè)務(wù)邏輯,因?yàn)檫@是構(gòu)建可維護(hù)和可擴(kuò)展的成功系統(tǒng)的關(guān)鍵。
使其保持無狀態(tài),元數(shù)據(jù)驅(qū)動(dòng),處理重復(fù)/重試等,更重要的是編寫Tests以在快速變化的時(shí)間內(nèi)對(duì)其進(jìn)行良好的維護(hù)。
下次當(dāng)您對(duì)ETL流程有疑問時(shí)
您處理實(shí)時(shí)還是批量處理?
你的答案應(yīng)該是
這是基于事件的處理。
ETL萬歲
翻譯自: https://www.javacodegeeks.com/2020/04/long-live-etl.html
etl介紹與etl工具比較
總結(jié)
以上是生活随笔為你收集整理的etl介绍与etl工具比较_ETL万岁的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是或运算? 或运算解释
- 下一篇: junit mockito_从工作中清除