為什麼建資料倉庫需要使用ETL工具?派可資料2021-06-21 15:14:13

只要涉及到資料來源的資料抽取、資料的計算和處理過程的開發,都是 ETL,ETL 就這三個階段,Extraction 抽取,Transformation 轉換,Loading 載入。

從不同資料來源抽取資料 EXTRACTION ,按照一定的資料處理規則對資料進行加工和格式轉換 TRASFORMATION,最後處理完成的輸出到目標資料表中也有可能是檔案等等,這個就是 LOADING。

再通俗一點講,ETL 的過程就跟大家日常做菜一樣,需要到菜市場的各個攤位買好菜,把菜買回來要摘一下,洗一洗,切一切最後下鍋把菜炒好端到飯桌上。菜市場的各個攤位就是資料來源,做好的菜就是最終的輸出結果,中間的所有過程像摘菜、洗菜、切菜、做菜就是轉換。

在開發的時候,大部分時候會透過 ETL 工具去實現,比如常用的像 KETTLE、PENTAHO、IBM DATASTAGE、INFORNAICA、微軟 SQL SERVER 裡面的 SSIS 等等,在結合基本的 SQL 來實現整個 ETL 過程。

也有的是自己透過程式開發,然後控制一些資料處理指令碼跑批,基本上就是程式加 SQL 實現。

哪種方式更好,也是需要看使用場景和開發人員對那種方式使用的更加得心應手。我看大部分軟體程式開發人員出身的,碰到資料類專案會比較喜歡用程式控制跑批,這是程式思維的自然延續。純 BI 開發人員大部分自然就選擇成熟的 ETL 工具來開發,當然也有一上來就寫程式指令碼的,這類 BI 開發人員的師傅基本上是程式人員轉過來的。

用程式的好處就是適配性強,可擴充套件性強,可以整合或拆解到到任何的程式處理過程中,有的時候使用程式開發效率更高。難就難在對維護人員有一定的技術要求,經驗轉移和可複製性不夠。

用 ETL 工具的好處,第一是整個 ETL 的開發過程可視化了,特別是在資料處理流程的分層設計中可以很清晰的管理。第二是連結到不同資料來源的時候,各種資料來源、資料庫的連結協議已經內建了,直接配置就可以,不需要再去寫程式去實現。第三是各種轉換控制元件基本上拖拉拽就可以使用,起到簡化的代替一部分 SQL 的開發,不需要寫程式碼去實現。第四是可以非常靈活的設計各種 ETL 排程規則,高度配置化,這個也不需要寫程式碼實現。

所以在大多數通用的專案中,在專案上使用 ETL 標準組件開發會比較多一些。

ETL 從邏輯上一般可以分為兩層,控制流和資料流,這也是很多 ETL 工具設計的理念,不同的 ETL 工具可能叫法不同。

控制流就是控制每一個數據流與資料流處理的先後流程,一個控制流可以包含多個數據流。比如在資料倉庫開發過程中,第一層的處理是ODS層或者Staging 層的開發,第二層是 DIMENSION維度層的開發,後面幾層就是DW 事實層、DM資料集市層的開發。透過ETL的排程管理就可以讓這幾層串聯起來形成一個完整的資料處理流程。

資料流就是具體的從源資料到目標資料表的資料轉換過程,所以也有 ETL 工具把資料流叫做轉換。在資料流的開發設計過程中主要就是三個環節,目標資料表的連結,這兩個直接透過 ETL 控制元件配置就可以了。中間轉換的環節,這個時候就可能有很多的選擇了,調 SQL 語句、儲存過程,或者還是使用 ETL 控制元件來實現。

有的專案上習慣使用 ETL 控制元件來實現資料流中的轉換,也有的專案要求不使用標準的轉換元件使用儲存過程來呼叫。也有的是因為資料倉庫本身這個資料庫不支援儲存過程就只能透過標準的SQL來實現。

我們通常講的BI資料架構師其實指的就是ETL的架構設計,這是整個BI專案中非常核心的一層技術實現,資料處理、資料清洗和建模都是在ETL中去實現。一個好的ETL架構設計可以同時支撐上百個包就是控制流,每一個控制流下可能又有上百個資料流的處理過程。之前寫過一篇技術文章,大家可以搜尋下關鍵字 BIWORK ETL 應該在網上還能找到到這篇文章。這種框架設計不僅僅是ETL框架架構上的設計,還有很深的ETL專案管理和規範性控制器思想,包括後期的運維,基於BI的BI分析,ETL的效能調優都會在這些框架中得到體現。因為大的BI專案可能同時需要幾十人來開發ETL,框架的頂層設計就很重要。

為什麼建資料倉庫需要使用ETL工具?IT技術管理那些事兒2020-10-21 15:25:18

資料倉庫,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它是單個數據儲存,出於分析性報告和決策支援目的而建立。既然要獲取全部資料,必然涉及到多系統,各型別資料庫的對接問題,還有資料抽取、整理的問題。

為什麼建資料倉庫需要使用ETL工具?

這時候ETL工具的作用就集中體現出來了,資料的抽取、轉換、載入直到供人們去分析使用,ETL就是資料抽取、轉換、載入的過程。

為什麼建資料倉庫需要使用ETL工具?

有些地方可能選擇的是ELT,先載入在轉換。對數倉來說,ETL首先要考慮業務需求,最後資料落地模型,要體現某種主題。

然後從資料來源考慮哪些欄位是可以用的,在進行ETL。現在ETL工具很多,所以程式設計能力很難在這方面體現出來,對於公司來說,更看重的是ETL的思路。

通俗的想,資料倉庫就像大水池,給水池蓄水需要泵和水管,那ETL就是承擔泵和水管的功能。

為什麼建資料倉庫需要使用ETL工具?

為什麼建資料倉庫需要使用ETL工具?帆軟軟體2020-12-21 15:52:32

為什麼會出現資料倉庫?沒有資料倉庫時,我們需要直接從業務資料庫中取資料來做分析,雖然可以用於分析,但需要做很多額外的調整,在我看來,主要有以下幾個問題:結構複雜,資料髒亂,難以理解,缺少歷史,大規模查詢緩慢。

然後資料倉庫就出現了,各種資料都有結構、有規模地在一起,做決策更有一套。

什麼是ETL?簡單來說,如果把資料分析類比成做菜,ETL相當於備菜。

資料倉庫是單個數據儲存,出於分析性報告和決策支援目的而建立。既然要獲取全部資料,必然涉及到多系統,各型別資料庫的對接問題,還有資料抽取、整理的問題。

這時候ETL工具的作用就集中體現出來了,資料的抽取、轉換、載入直到供人們去分析使用。

通俗的想,資料倉庫就像大水池,給水池蓄水需要泵和水管,那ETL就是承擔泵和水管的功能。

為什麼建資料倉庫需要使用ETL工具?

為什麼建資料倉庫需要使用ETL工具?EmacserVimer2019-04-20 22:02:16

一句話,ETL工具作用不限於資料倉庫(DW),但在資料倉庫生成資料並體現其價值時ETL工具必不可少。

現在是盛行大資料包裝的時代,周遭的人耳濡目染也瞭解一二。於公司層面而言,有前瞻性思維的已經初有成效;想用大資料噱頭來宣傳自己的,會讓其使用者認為他家產品是高大上存在。所以大資料背景下ETL方向的工程師很吃香,幾乎稍有體量的網際網路技術公司都會發布ETL工程師的招聘職位,工資視工作經驗而定。

以個人經歷來講,ETL工具就是將從業務處理資料集、外部資料來源和資料儲存介質產生的元資料上按需求規則抽取資料,然後根據提供靈活的定製規則來清洗資料,之後將控制好質量的資料轉換,最終按照預先定義好的模型,將資料載入到資料倉庫。

有的公司使用ETL工具將萃取出來的資料僅限內部使用,但是也有一些公司會根據自身在行業優勢和業務的平面資料沉澱提供可訂製化資料服務,然後透過統一API平臺根據平臺授權,將資料倉庫的資料透過工廠模式的方法對外提供不同維度資料,從而產生資料價值。通常ETL工具萃取出來的資料是從資料的大時間跨或使用者的大基數資料中提取,從而具有預判和預估價值。

為什麼建資料倉庫需要使用ETL工具?

ETL工具有很多,例如Kettle、DataPipeline、Informatica和Talend都是比較知名ETL工具。但是有些工具也能作為ETL或ELT工具。就好ELK體系中的logstash,可以用它來統一對應用程式日誌進行收集管理,提供強大的日誌管理功能。大資料能手Hadoop生態圈中的kafka也可能充當ETL工具,充當資料通道。

ETL與BI的結合越來越流行,這是對大體量公司自身質量提升重要一環。BI透過合理、高效的分析和處理,為決策者提供可靠的決策依據。兩者相輔相成,作用不可忽視。

為什麼建資料倉庫需要使用ETL工具?喜歡下廚的資料分析師2021-06-28 11:03:16

ETL 是構建資料倉庫的重要一環,使用者從資料來源抽取出所需的資料,經過資料清洗和加工,最終按照預先定義好的模型,將資料載入到目的資料倉庫中去,做各種商業智慧分析或者用於主資料管理體系。我個人比較喜歡的ETL工具有兩款,一款是Kettle,主要是免費,還有一款是智分析,這個功能更加強大,是做ETL的神器,圖形化的介面,加上高效能,非常不錯。

為什麼建資料倉庫需要使用ETL工具?