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 | |