当前位置:网站首页>關於ETL看這篇文章就够了,三分鐘讓你明白什麼是ETL
關於ETL看這篇文章就够了,三分鐘讓你明白什麼是ETL
2022-06-24 08:43:00 【派可數據BI可視化】
今天來聊一個技術問題,有關 ETL 的開發。對於做過 商業智能BI 開發的朋友,ETL 並不陌生,只要涉及到數據源的數據抽取、數據的計算和處理過程的開發,都是 ETL。
ETL是什麼
ETL一共有三個階段,分別是Extraction 抽取,Transformation 轉換,Loading 加載。從不同數據源抽取數據 EXTRACTION ,按照一定的數據處理規則對數據進行加工和格式轉換 TRASFORMATION,最後處理完成的輸出到目標數據錶中也有可能是文件等等,這個就是 LOADING。

ETL - 派可數據商業智能BI可視化分析平臺
再通俗一點講,ETL 的過程就跟大家日常做菜一樣,需要到菜市場的各個攤比特買好菜,把菜買回來要摘一下,洗一洗,切一切最後下鍋把菜炒好端到飯桌上。菜市場的各個攤比特就是數據源,做好的菜就是最終的輸出結果,中間的所有過程像摘菜、洗菜、切菜、做菜就是轉換。
ETL怎麼實現
在開發的時候,大部分時候會通過 ETL 工具去實現,比如常用的像 KETTLE、PENTAHO、IBM DATASTAGE、INFORNAICA、微軟 SQL SERVER 裏面的 SSIS 等等,在結合基本的 SQL 來實現整個 ETL 過程。
也有的是自己通過程序開發,然後控制一些數據處理脚本跑批,基本上就是程序加 SQL 實現。

ETL - 派可數據商業智能BI可視化分析平臺
哪種方式更好,也是需要看使用場景和開發人員對那種方式使用的更加得心應手。我看大部分軟件程序開發人員出身的,碰到數據類項目會比較喜歡用程序控制跑批,這是程序思維的自然延續。純 商業智能BI 開發人員大部分自然就選擇成熟的 ETL 工具來開發,當然也有一上來就寫程序脚本的,這類 商業智能BI 開發人員的師傅基本上是程序人員轉過來的。
用程序的好處就是適配性强,可擴展性强,可以集成或拆解到到任何的程序處理過程中,有的時候使用程序開發效率更高。難就難在對維護人員有一定的技術要求,經驗轉移和可複制性不够。

ETL - 派可數據商業智能BI可視化分析平臺
用 ETL 工具的好處,第一是整個 ETL 的開發過程可視化了,特別是在數據處理流程的分層設計中可以很清晰的管理。第二是鏈接到不同數據源的時候,各種數據源、數據庫的鏈接協議已經內置了,直接配置就可以,不需要再去寫程序去實現。第三是各種轉換控件基本上拖拉拽就可以使用,起到簡化的代替一部分 SQL 的開發,不需要寫代碼去實現。第四是可以非常靈活的設計各種 ETL 調度規則,高度配置化,這個也不需要寫代碼實現。
所以在大多數通用的項目中,在項目上使用 ETL 標准組件開發會比較多一些。
ETL設計理念是什麼
ETL 從邏輯上一般可以分為兩層,控制流和數據流,這也是很多 ETL 工具設計的理念,不同的 ETL 工具可能叫法不同。
控制流就是控制每一個數據流與數據流處理的先後流程,一個控制流可以包含多個數據流。比如在數據倉庫開發過程中,第一層的處理是ODS層或者staging 層的開發,第二層是 DIMENSION維度層的開發,後面幾層就是DW 事實層、DM數據集市層的開發。通過ETL的調度管理就可以讓這幾層串聯起來形成一個完整的數據處理流程。

ETL - 派可數據商業智能BI可視化分析平臺
數據流就是具體的從源數據到目標數據錶的數據轉換過程,所以也有 ETL 工具把數據流叫做轉換。在數據流的開發設計過程中主要就是三個環節,目標數據錶的鏈接,這兩個直接通過 ETL 控件配置就可以了。中間轉換的環節,這個時候就可能有很多的選擇了,調 SQL 語句、存儲過程,或者還是使用 ETL 控件來實現。
有的項目上習慣使用 ETL 控件來實現數據流中的轉換,也有的項目要求不使用標准的轉換組件使用存儲過程來調用。也有的是因為數據倉庫本身這個數據庫不支持存儲過程就只能通過標准的SQL來實現。
ETL架構是什麼
我們通常講的商業智能BI數據架構師其實指的就是ETL的架構設計,這是整個商業智能BI項目中非常核心的一層技術實現,數據處理、數據清洗和建模都是在ETL中去實現。

商業智能BI - 派可數據商業智能BI可視化分析平臺
一個好的ETL架構設計可以同時支撐上百個包就是控制流,每一個控制流下可能又有上百個數據流的處理過程。之前寫過一篇技術文章,大家可以搜索下關鍵字 BIWORK ETL 應該在網上還能找到到這篇文章。
這種框架設計不僅僅是ETL框架架構上的設計,還有很深的ETL項目管理和規範性控制器思想,包括後期的運維,基於商業智能BI的商業智能BI分析,ETL的性能調優都會在這些框架中得到體現。因為大的商業智能BI項目可能同時需要幾十人來開發ETL,框架的頂層設計就很重要。
边栏推荐
- Permission model DAC ACL RBAC ABAC
- PHP代码加密+扩展解密实战
- pymysql 向MySQL 插入数据无故报错
- 2021-06-24: find the length of the longest non repeating character substring in a string.
- Redis cluster data skew
- Jenkins自动化部署,连接不到所依赖的服务【已解决】
- Send custom events in QT
- 利用sonar做代码检查
- Rsync for file backup
- 日本大阪大学万伟伟研究员介绍基于WRS系统机器人的快速集成方法和应用
猜你喜欢

K8S部署高可用postgresql集群 —— 筑梦之路

分布式 | 如何与 DBLE 进行“秘密通话”

Vscode install the remote -wsl plug-in to connect to the local WSL

Send custom events in QT
![Fundamentals of 3D mathematics [17] inverse square theorem](/img/59/bef931d96883288766fc94e38e0ace.png)
Fundamentals of 3D mathematics [17] inverse square theorem

uniapp 热更新后台管理

Maya re deployment

A preliminary study of IO model

New technology practice, encapsulating the permission application library step by step with the activity results API

js中通过key查找和更新对象中指定值的方法
随机推荐
leetcode 1268. Search Suggestions System(搜索推荐系统)
Two methods of QT exporting PDF files
[acnoi2022] not a structure, more like a structure
Markdown to realize text link jump
日本大阪大学万伟伟研究员介绍基于WRS系统机器人的快速集成方法和应用
关于ETL看这篇文章就够了,三分钟让你明白什么是ETL
提高INSERT速度
【生活思考】计划与自律
leetcode 1642. Furthest Building You Can Reach(能到达的最远的建筑)
dataX使用指南
ZUCC_ Principles of compiling language and compilation_ Experiment 03 getting started with compiler
Qmenu response in pyqt
(pkcs1) RSA public private key PEM file parsing
The JS macro of WPS implements the separation method of picture text in the same paragraph
[untitled]
uniapp 热更新后台管理
[explain the difference between operation and maintenance and network engineering]
Application of tidb in Netease games
MySQL 因字符集问题插入中文数据时提示代码 :1366
数据库,查询本月借出书的数量,如果高于10本时,显示“本月借出书大于10本”,否则显示“本月借出书小于10本”