數據集成--ETL工具

背景:不同平臺都可以獲得用戶,這些用戶之間可能是交叉重複,比如你之前在A平臺註冊了,後來你又在B平臺註冊了。而不同的平臺存儲數據的表結構,表字段可能不同。最有代表性的,美團合併了大衆點評,兩家外賣平臺的數據必須整合在一起,才能發揮更大的商業價值----數據集成。

數據集成的兩種架構:ELT 和 ETL

一般來說,數據工程師的工作包括了數據的 ETL 和數據挖掘算法的實現。算法實現可以理解,就是通過數據挖掘算法,從數據倉庫中找到“金子“。

ETL實現數據抽取、轉換、加載這三個過程

抽取是將數據從已有的數據源中提取出來。

轉換是對原始數據進行處理,例如將表輸入 1 和 表輸入 2 進行連接形成一張新的表。

根據轉換髮生的順序和位置,數據集成可以分爲 ETL 和 ELT 兩種架構。

ETL 的過程爲提取 (Extract)——轉換 (Transform)——加載 (Load),在數據源抽取後首先進行轉換,然後將轉換的結果寫入目的地。

ELT 的過程則是提取 (Extract)——加載 (Load)——變換 (Transform),在抽取後將結果先寫入目的地,然後利用數據庫的聚合分析能力或者外部計算框架,如 Spark 來完成轉換的步驟。

目前數據集成的主流架構是 ETL,但未來使用 ELT 作爲數據集成架構的將越來越多。

ELT 和 ETL 相比,最大的區別是“重抽取和加載,輕轉換”,從而可以用更輕量的方案搭建起一個數據集成平臺。一方面更省時,另一方面 ELT 允許 BI 分析人員無限制地訪問整個原始數據,從而使BI對於數據處理更加靈活,更好的支持業務。

ETL 工具有哪些?

開源軟件:Kettle、Talend、Apatar、Scriptella、DataX、Sqoop 等

Kettle 工具的使用

Kettle 是一款國外開源的 ETL 工具,純 Java 編寫,可以在 Window 和 Linux 上運行,不需要安裝就可以使用。

下載地址:https://community.hitachivantara.com/docs/DOC-1009855

在使用 Kettle 之前還需要安裝數據庫軟件和 Java 運行環境(JRE)

Kettle 採用可視化的方式進行操作,來對數據庫間的數據進行遷移。它包括了兩種腳本:Transformation 轉換和 Job 作業。

Transformation(轉換):相當於一個容器,對數據操作進行了定義。數據操作就是數據從輸入到輸出的一個過程。在通常的工作中,我們會把任務分解成爲不同的作業,然後再把作業分解成多個轉換

Job(作業):相比於轉換是個更大的容器,它負責將轉換組織起來完成某項作業。

Transformation 可以分成三個步驟,它包括了輸入、中間轉換以及輸出。

在 Transformation 中包括兩個主要概念:Step 和 Hop。

Step(步驟):Step 是轉換的最小單元。在上面這個轉換中,就包括了表輸入、值映射、去除重複記錄、表輸出這 4 個步驟;

Hop(跳躍線):用來在轉換中連接 Step。它代表了數據的流向。

如何創建 Job(作業):完整的任務,實際上是將創建好的轉換和作業串聯起來。在這裏 Job 包括兩個概念:Job Entry、Hop。

Job Entry(工作實體):Job Entry 是 Job 內部的執行單元,每一個 Job Entry 都是用來執行具體的任務,比如調用轉換,發送郵件等。

Hop:指連接 Job Entry 的線。並且它可以指定是否有條件地執行。

案例 1:如何將文本文件的內容轉化到 MySQL 數據庫中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章