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