ETL이란?

순현이랑 현재랑 2008. 7. 24. 22:50

ETL이란 무엇인가?

  • ETL 정의: ETL은 extract, transform, load를 의미하며, 조직 내외부의 복수의 source들로부터의 data를 data 분석을 위한 data warehouse, data mart 내로 이동시키는 process로서, 추출, 재구성(reformatting), 정제, 통합, 변형 등을 포함한다. Motorola에서는 회사의 지출 총계를 분석하기 위해 ETL을 통해 30개의 다른 procurement system들로부터의 data를 수집하여 global supply chain management data warehouse로 보낸다.
  • 조직에서 필요한 data가 상이한 특성의 system/database들 내에 상이한 형태로 분산되어 있는 문제를 해결하기 위해 - data migration, data integration을 포함하여 - ETL이 사용된다.
  • ETL은 사실의 단일 version에 입각해 business를 운영할 수 있도록 지원한다.
  • ETL의 구현은 간단치 않다. 예를 들면 재무, 인사, SAP 제조 application들을 사용하고 있고 주문에서 결제까지의 process를 분석할 필요가 있는 경우, 이들 system들로부터의 data를 추출하기 위해 ETL이 요구되며, 이는 SAP 제조 application으로부터 배송 및 주문 data를 추출하기 위한 SAP 독자의 ABAP code가 요구됨을 의미한다.
  • ETL의 구현 유형은 내부 개발, 제품 사용, 혹은 두가지의 혼용으로 구분된다. 국내에서는 내부 개발이 여전히 가장 많이 선택되고 있으나, 구현 시의 맞춤화의 이점 대신에 ETL code의 수정 및 유지보수의 부담과 함께 system의 추가와 data량의 증가에 따른 확장성의 문제가 심각해질 수 있다. 제품의 사용은 초기 비용의 부담 대신에 복수의 상이한 database들로부터 data의 추출, 정제, 구성, 변형, target repository 저장 작업들을 일관되고 용이하게 수행할 수 있는 이점이 있다.
  • ETL이 수행되는 곳을 논리적인 의미로 통상 DSA(data staging area)라고 한다.
  • ETL은 data warehousing, business intelligence 프로젝트에서 가장 많은 시간을 차지(60 - 80%)한다.  

사용자 삽입 이미지



ETL Process

Data Access 기술

data의 추출 및 load를 위한 여러 방법들이 있다. 여기에는 업계 표준 driver들과 각 DBMS의
고유 기능/utility들이 포함된다.

  • driver: third-party ETL tool은 대부분 모든 driver들(ODBC와 JDBC Type 1, 2, 3, 4)을
    지원한다. 이 중 성능 및 단순성의 이점으로 JDBC Type 4가 강력히 추천된다.
  • database utility: driver의 성능 한계를 해결하는 방법으로 - 특히 대량의 batch data
    load를 위해 - dblink, Fastload와 같은 database utility가 사용된다. third-party
    ETL tool은 대부분 이들 utility들을 위한 정보(command, parameter)를 자동으로 생성
    하고, load  실행에 포함시킨다.

E: 추출

  • ETL process의 input data는 다양한 source들  - mainframe application,
    ERP application, CRM package, flat file, Excel spreadsheet, message queue 등
    - 로부터 추출될 수 있다.
  • 추출 방법으로는 JDBC(Java Database Connectivity),
    ODBC(Open Database Connectivity) 기술의 이용
    (Data Access 기술 참조),
    독자 code, flat file 생성, CDC(change data capture) 등이 있다.
     

T: 변형

  • 추출 후, data는 target repository로 보내질 수 있도록 구체적인 business logic에
    의해 수정되거나 변형된다.
  • 변형(transformation)은 모든 data가 서로 연결될 수 있도록(예: 송장과 주문) 각 source
    로부터의 data가 mapping, 정제, 일치화 될 때에 발생된다. 일치화 된 후, data는 회전
    시간(cycle time), 총 미불 수취계정 등의 분석을 위해 data warehouse내로 전송,
    load 된다
  • 변형을 수행하는 다양한 방식들이 있으며, 관련 작업도 다양하다. 재구성만 필요되는
    경우도 있으나, 대부분의 ETL operation은 중복을 제거하고 일관성을 확보하기 위한
    정제를 포함한다. 또 target repository에 적합한 형태로 내용을 일관되게 변환시키기
    위해 각 data field를 검사하고 rule을 적용한다(예: 성별의 '남'은 'M', 'male', '1/0'
    으로 표현될 수 있으며, ETL은 그것들을 모두 동일한 것으로 인식하여 target format
    으로 일관되게 변환한다).
  • 추가로 ETL process는 이름과 주소, 전화번호 등을 검증하고 표준화하거나
    다른 system들로부터의 demographic 정보를 포함하는 field들을 추가하여 record를
    확장할 수도 있다.
  • data 통합 및 정제가 과도히 요구되는 경우, ETL 작업의 80%는 T에서 발생된다.

L: 적재

  • 추출, 변형된 data를 target(data warehouse, data mart) database 내에 저장하는
    프로세스이다.
  • load의 수행 방식에는 기본적으로 append, delete/insert, update가 있으며, 이
    를 지원하기 위한 각 DBMS의 고유 기능/utility들이 있다(Data Access 기술 참조).
  • Extrat와 Load를 위해 특화된 기능
    • Incremental Update
    • Change Data Capture
    • Frequent Load
    • Bulk Load
    • Bi-directional(Peer-to-Peer Interface)
    • Near-real-time Data Capture
    • EAI, EII

ETL 약사


컴퓨터 시스템이 단일 체제의 mainframe에서 분산 시스템으로 발전되기 시작하였을 때,
business intelligence가 본격적으로 등장하였고, 최초의 ETL 솔루션이 소개되었으며,
이후 새로운 ETL 세대들로 발전되어 나갔다.

제1세대: ETL의 시작과 Legacy Code의 생성
 최초의 ETL tool은 ETL process들이 수행되던 platform의 operating system을 위한 고유의
code를 생성하였다. 그 당시 data가 주로 mainframe 상에 저장되었기 때문에, 대부분의
제1세대 제품들은 실제로 COBOL을 생성하였다. 이들 제품들은 ETL process들을 생성하는
중앙집중화된 tool을 이용함으로써 또 그 code를 해당 platform에 보급함으로써 ETL process
들을 - 이 일을 위해 수작업으로 프로그램을 작성하는 것보다 - 더 쉽게 만들었다. 성능은
고유의 컴파일된 code의 상속된 성능 덕분에 대단히 우수하였지만, 이들 tool들은 다른
platform 상에서의 심층적인 프로그래밍 지식을 요구하였다. 유지보수 또한 어려웠는 데,
그것은 생성된 code가 해당 다른 platform들에 보급되었고 source와 target 의 유형에 따라
달랐기 때문이었다. 이 architecture는 가능한 최상의 성능을 제공하였는 데, 이는 그 당시
data가 flat file과 hierarchical database로 저장되었고 record-level access가 빨랐기
때문이었다. 이 방식은 mainframe 상에서는 잘 작동하였지만, relational database 상의
대량의 data 관리를 위해서는 별로 성공적이지 않음이 입증되었다.


제2세대: Hub-and-Spoke Engine
 다음으로, 모든 transformation process들을 수행하는 페쇄형 engine에 근거한 제2세대
ETL tool들이 나타났다. 이 접근 방식은 상이한 platform 상의 상이한 language를 사용해
야만 하는 문제를 해결하였고, 단지 하나의 programming language
(ETL tool 자체의 language)의 전문성을 요구하거나 그래픽 환경을 통한 보다 유연하고
용이한 code의 자동 생성을 제공하였다. 그렇지만, 새로운 문제가 발생하였다. 모든
transformation을 수행하는 폐쇄형 engine이 transformation process의 bottleneck이
되었다. target으로 가기 위해 다양한 source들로부터 오는 모든 data는 이 폐쇄형
engine을 통과해야만 했다. 이것을 hub-and-spoke 구현 방식이라고 한다. hub가
필수적인 전송점이 되고 또한 정체점이 되기도 하였다.


제3세대: Data Integration Platform
 이전 두 세대의 각 장점을 활용하면서, 이들로부터 제기된 주요 과제들을 해결하고 또 점
증하는 다양한 사용자 요구들을 수용하기 위해 ETL tool의 새로운 세대가 등장하였다.
이 세대는 전체적으로 보다 세련되고 강화된 고도의 그래픽 환경, 강력한 성능,
data warehouse, data mart의 구축을 지원하는 구현 기능, 개방적이고 확장된 metadata
관리 등의 포괄적인 다양성을 제공하며, 계속적으로 ETL의 추가적 능력들과 기능들을
빠르게 더해가고 있다. database 업체들 또한 이전 세대에서부터 SQL의 능력를 크게
개선하기 위해 많은 노력을 기울여 왔다. 이 개선의 결과로 ETL tool은 고유의 SQL이나
ETL process들에 관련된 database의 language를 통해 고도로 최적화된 ETL process
들을 생성하고 실행하는 일이 가능하게 되었다. 또한 이를 기반으로 database의 파워와
기능을 활용하는 분산 구조의 ELT(extract, load, transform)도 등장하게 되었다. 이렇게
보다 세련된 구조와 기능을 갗추고 다양한 요구들을 발빠르게 수용하고 있는 현재의
ETL tool들은 다목적의 data integration platform을 지향하고 있다.



제1세대

제2세대

제3세대(현재 및 near futhre)

특징

Legacy Code Generator

Hub-and-Spoke Engine

Data Integration Platform

장점

ETL process들을 생성하여 최적화된 code를 해당 platform에 자동적으로 보급.

성능: 고유의 컴파일된 code 덕분에 대단히 우수

ETL 설계 및 code 생성을 위한 그래픽 환경과 그 당시의 SQL로는 가능치 못했던 transformation 기능 제공.

각 platform을 위한 고유의 code를 생성하는 중앙집중의 design tool 제공.

data warehouse, data mart 구축을 지원하는 구현 및 관리 기능 제공.

고유의 SQL을 생성하는 능력을 가진 고도의 그래픽 환경 제공.

Add-on product: data quality 등의 추가.

포괄적(전사적) data integration platform 지향



ETL 제품

ETL 제품은 packaged ETL system과 third-party tool로 구분될 수 있다. third-party tool은
대체로 보다 광범위하고 다양한 이종의 application들 및 data 구조들 간의 통합을 제공한다.


구분

업체

제품

 packaged ETL system

 Microsoft

 SQL Server DTS


 Oracle

 Oracle Warehouse Builder


 IBM

 DB2 Information Integrator


 SAS

 SAS Enterprise ETL Server/ETL Studio 

 third-party tool

 Informatica

 PowerCenter 


 Ascential Software

 Datastage


 Hummingbird

 Hummingbird ETL


 Sunopsis

 Sunopsis 


 Computer Associates

 DecisionBase Transformer 


 DataMirror

 DataMirror Transformer Server 


 Business Objects

 Data Integrator


 Cognos

 DecisionStream


 BMC

 ChangeDataMove


 Pervasive

 Pervasive Data Integrator

third-party tool - 국내

 비티엘글로벌 

 BTL Data Integrator 2


 IDS

 TeraStreamTM


Posted by 알 수 없는 사용자
,