【ETL】ETL----如何决定是否采用ETL工具
原文鏈接:https://blog.csdn.net/cormier_an/article/details/12349533?utm_source=blogxgwz1
ETL工具還是手工編碼
(購買工具集還是自己寫程序?)
在《智能企業》雜志的一篇精彩的文章(2003.5.31,Ralph Kimball編輯)中,Gary Nissen對這個問題總結概括后,回答是:“看情況”。我們展開來分析一下Gary的觀點。
基于ETL工具的優勢
? 根據某個ETL工具廠商的說法:“一個有價值的工具目的不在于能夠解決瑣碎的問題,而是要將不可能的事情變得可能。”
? 開發過程簡單、快速、低成本。如果項目足夠大或足夠復雜,工具的成本會顯得微不足道。
? 了解業務知識但不精通編程的技術人員也能夠有效使用ETL工具。
? 很多ETL工具內部集成了元數據資料庫,這樣,源系統、目標數據庫以及其他BI工具的元數據既可以同步到這個元數據資料庫中。
? 大多數ETL工具在每個處理流程會自動產生元數據,從而強制所有的開發人員必須遵循一致的元數據驅動的方法論。
? 大多數ETL工具都有內置的調度器,幫助生成文檔、簡化創建過程以及變更管理。如果系統發生故障,ETL 工具會負責處理全部復雜的依賴關系以及差錯控制。
? ETL 工具的元數據資料庫能夠自動的產生數據沿襲(便于反查)和數據依賴分析(便于前查)。
? ETL工具為大多數源和目標系統設有預置的連接器。在技術層面,ETL工具應當處理能夠處理全部種類的數據類型轉換。
? ETL工具通常提供內嵌的加密和壓縮功能。.
? 大多數ETL工具處理大數據集時具有較高性能。如果數據量非常巨大,或者在未來幾年可能會非常巨大,那么應該考慮采用ETL工具。
? ETL工具可以跨服務器的復雜的負載均衡,避免服務器死鎖。
? 當底層框架變更時,會對后續流程和應用造成影響,大多數ETL工具可以自動的進行這種“變更-沖擊”分析。
? 在指定的處理模塊中,ETL 工具可以使用編程語言進行擴展。比如,如果其自帶的模塊不能達到要求的功能和性能,就可以在ETL工具的數據流程中添加一個自定義的CRC(循環冗余校驗)算法;或者,將一個自定義的周期算法作為數據質量檢查步驟的一部分加入進去,以判斷某個觀測值是否合理,等等。
手工編碼方式的優勢
? 在手工編碼方式下可使用自動單元檢測工具。比如,JUnit 庫(www.junit.org)是一個著名的、良好支持Java編寫單元測試程序的工具,對其他語言也有一些類似的包。你可以使用某一個腳本語言,比如TCL或者Python來設置測試數據,在ETL過程中運行,然后驗證結果。采用這些自動化測試流程能夠極大的提高QA人員的工作效率和最終提交版本的質量。
? 面向對象的編程技術可以幫助你保持差錯報告、有效性和元數據更新的轉換一致性。
? 如果建立了自己的元數據訪問接口,手工編碼方式可以更直接的管理元數據。
? 對ETL系統的簡要需求分析可以指導你快速使用基于文件的流程,而非數據庫的存儲過程。基于文件的處理流程要更加直接,編碼更簡單,測試更容易,也更便于理解。
? 可以不必考慮用戶許可證問題。
? 可充分利用內部的編程人員。
? 基于某個工具的開發使你只局限于某個工具廠商的工具及其特殊的腳本語言。手工編碼方式的系統可使用通用的編程語言。(公平的講,所有ETL工具在各自的模塊中都與標準的編程語言隔離開。)
? 手工編碼方式可以提供無限的靈活性,幾乎可以完成任何想做的事情,當然前提是你確實需要這樣。很多情況下,一種獨特的方法或一種特定的語言可以提供非常的優勢。
這里我們還可以為采用ETL工具提出新的理由:ETL工具自動完成文檔的能力更強,可維護性更高,尤其是IT 人員流失較嚴重的情況下。而反方的觀點是,如果ETL開發小組有很強的軟件開發能力,并且管理良好,文檔和維護性不應當是一個大問題。
使用已證實的技術
建立數據倉庫時許多初始成本是無法避免的。比如必須購買一些專用的服務器:至少一臺數據庫服務器,一臺BI服務器,通常還有一臺專用的ETL服務器。同時還需要數據庫的許可證,BI工具的用戶許可證。在開始一個新的項目時可能還需要購買一些咨詢服務以及其他的一些成本。建立數據倉庫的這些成本是必須要花費的。
但是,有一種成本通常被認為是可有可無,并經常作為成本消減的目標——這就是購買一個專門的ETL工具。不用ETL工具實現數據倉庫是可能的,在此也沒有假定用戶必須使用或不使用ETL 工具。但是,從長遠上看,購買ETL工具對于建立和維護數據倉庫來講是降低成本的。使用已經證明的ETL技術有一些特別的優勢:
? 一次定義,多次使用。通過共享并重用業務規則和結構化程序,保持數據倉庫中數據的一致性。
? 沖擊分析。判斷哪些表、列、過程會由于某些修改而受到影響。
? 元數據資料庫。輕松地創建、維護和發布數據沿襲,繼承數據建模工具中的業務定義,在BI工具中展現元數據。
? 增量聚合。動態更新聚合表,只將最新的和修改過的數據加入到聚合表中,而無需在每次數據加載時重建聚合表。
? 管理批處理加載。減少Shell腳本,執行條件加載,加載統計,自動Email通知等等。
? 輕松連接到多種復雜數據源,如SAP和主機系統等。
? 并發執行多線程操作。
? 供應商經驗,包括針對維度模型的成功經驗和數據倉庫支持方面的記錄跟蹤。
與能夠用到ETL工具的很多高級特性相比,購買一個ETL工具更重要的理由是可以幫助避免走太多的彎路。這些ETL工具的設計基于一個目的:準確執行用戶想要完成的工作——加載數據倉庫。大多數工具已經發展成為能夠支持從不同的異構數據源抽取數據、完成復雜的數據轉換、加載維度數據倉庫的穩定、強大的ETL引擎, 在ETL配置中不要加入新的、未經測試的產品。像月度儀表盤這樣的功能盡管很吸引最終用戶,但若放在后臺就太不計后果了。保守一些,等待ETL產品的成熟。與那些具有良好記錄的廠商配合,確保在將來的5年中會不斷的支持和完善這些產品。
作者:Cormier-an
來源:CSDN
原文:https://blog.csdn.net/cormier_an/article/details/12349533
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的【ETL】ETL----如何决定是否采用ETL工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【ETL】ETL介绍与ETL工具比较
- 下一篇: 【SQL】SQL(基础查询)、SQL(关