OLTP (On-Line Transaction Processing)

주 컴퓨터와 통신 회선으로 접속되어 있는 복수의 사용자 단말에서 발생한 트랜잭션을 주 컴퓨터에서 처리하여 그 결과를 즉석에서 사용자 단말 측으로 되돌려 보내 주는 처리 형태. 트랜잭션이란, 단말에서 주 컴퓨터로 보내는 처리 단위 1회의 메시지로, 보통 여러 개의 데이터베이스 조작을 포함하는 하나의 논리 단위이다. 예를 들어, 데이터베이스 내의 어떤 표의 수치를 변경하는 경우, 그 표와 관련된 다른 표의 수치도 변경하지 않으면 데이터 무결성(data integrity)을 유지할 수 없다. 이런 경우에는 2개의 처리를 1개의 논리 단위로 연속해서 행해야 하는데, 이 논리 단위가 트랜잭션이다. 1개의 트랜잭션은 그 전체가 완전히 행해지든지, 아니면 전혀 행해지지 않든지 둘 중 하나여야 한다. 그 이유는 1개의 트랜잭션 처리 도중에 그 트랜잭션의 처리를 중지하면 데이터 무결성이 사라질 우려가 있기 때문이다. 이러한 온라인 트랜잭션 처리(OLTP)의 특성에 적합하게 개발된 컴퓨터가 내고장형 또는 무정지형 컴퓨터(FTC)이다. 그리고 이전에는 범용기 중심이던 OLTP 시스템을 유닉스에도 구축하게 되었는데, 유닉스용의 트랜잭션 처리(TP) 모니터가 여러 가지 개발되어 있어서 성능과 가용성을 높이고 있다. 최근에는 업계 표준인 분산 컴퓨팅 환경(DCE)에 대응하는 TP 모니터 제품이 많이 출현하여 유닉스 기계에 기간 업무의 OLTP 시스템을 구축하는 경향이 늘고 있다.



OLTP와 OLAP의 비교


OLTP
은 매일매일의 기업운영을 가능하게 하는 거래처리 시스템이고, OLAP은 다차원 분석에 의해서 기업이 나가야 할 방향을 설정할 수 있는 것이다. OLAP의 목적은 최종사용자가 기업의 전반적인 상황을 이해할 수 있게 하고 의사결정을 지원하는데 있다. OLTP OLAP의 비교항목을 요약하면 다음과 같다.

구분

OLTP

OLAP

데이터의 구조

복잡 (운영 시스템 계산에 적합)

단순(사업 분석에 적합)

데이터의 갱신

순간적/동적

주기적/정적

응답 시간

2, 3 ~ 이내

~ 분까지도 가능

데이터의 범위

과거 30 ~ 90

과거 5 ~ 10

데이터 성격

정규/핵심 업무 데이터,
mission critical
데이터

비정규/read-only 데이터,index 의존

데이터의 크기

Giga Byte

Tera Byte

데이터의 내용

현재 데이터

기록 보관된, 요약/계산 데이터

데이터 특성

거래처리(transaction) 중심

주제(subject) 중심

데이터 액세스 빈도

높음

보통 혹은 낮음

데이터의 사용법

고도로 구조화된 연속 처리

고도로 비구조화 분석 처리

쿼리의 성격

예언 가능, 주기적

예측하기 어렵고, 특수하다


Posted by 알 수 없는 사용자
,
■ OLAP : On Line Analytical Processing
 
OLAP(온라인 분석 프로세싱)은 OLTP에 상대되는 개념으로 코드(1993)주)는 기업의 데이터 모델을 정적모델과 동 적모델로 구분한다음, OLAP을 "동적 모델로부터 정보를 생성, 조작, 활성화(animation), 종합하는 데 필요한 역동적 기업분 석"으로 정의하고 있다, 여기서 정적 모델이란 사용자의 대화식 참여가 거의 없고 정형화된 양식의 보고서생성작업이나 간 단한 질의가 수행되는 모델을 말한다. 여러자지 OLAP에대한 정의를 정의하면
『최종 사용자가 다차원 정보에 직접 접근하여 대화식으로 정보를 분석하고 의사결정에 활용하는 과정』으로 정의하면 적절하겠다. 좀더 그특징을 살펴보면
 
첫째, 분석을 위해 활용되는 정보의 형태는 다차원적주)이라는 사실이다.
다차원정보는 사용자들에 의해 이해되는 기업의 실제 차원(기간, 제품, 부서, 지역등)을 반영한다. 정보의 다차원성은 OLAP시스 템을 다른 시스템과 구분하는 가장중요한 개념으로,OLAP를 다른 말로 표현한다면 바로 "다차원 분석"일 것이다.
 
둘째, 최종사용자는 중간 매개자(전산부서)나 매개체(리포트)없이 온라인 상에서 직접 데이터에 접근한다는 것이다. 가트너 그룹은 정보기술에 의한 정보매개자의 제거는 앞으로의 핵심적인 비지니스 이슈중의 하나라고 말한다. 이러한 의도의 방향은 OLA P의 지향점이라고 정의할수 있다.
 
셋째, 최종사용자는 대화식(interactive)으로 정보를 분석한다는 것이다.
시스템은 사용자의 사고 흐름이 중간에 끊이지 않도록 신속하게 질의 결과를 제시할수 있어야 한다는 의미이다.
 
넷째, OLAP의 목적은 최종사용자가 기업의 전반적인 상황을 이해할수 있게하고 의사결정을 지원하는데 있다. OLTP는 매일 매 일의 기업운영을 가능하게 하는반면, OLAP는 기업이 나가야할 방향을 설정할수 있는것이다.
 
주) 코드는 관계형 모델의 창시자이며 동적모델을 Exegetical Model, Contemplative Model, Formula ic Model로 구분했다.
 
주) 다차원정보는 사용자들에 의해 이해되는 기업의 실제차원을 반영하는 정보이다. 기본적으 로 기업의 업무구조는 다차원적이며, 비지느스 사용자가 필요로하고 활용하는 대부분의 정보는 다차원정보이다. 즉 사용자는 단 순히 '매출액이 얼마인가'라고 묻지 않는다. '이번달 매출액이 지난달에 비해서 얼마나 상승했는가 혹은 하락했는가', '지난 해 같은 달에 비해서 어떠한가', '목표치를 달성했는가', '경쟁사의 매출액과 비교해서는 어떠한가', 등과 같은 정보를 알고 싶어한다. 데이터는 이와같은 배경(Context)을 가질 때 비로소 정보로서 가치가 있다. 정보란 본질적으로 비교를 나타내며, 다차 원 정보는 다양한 각도(차원)에서 이러한 비교를 가능하게한다. 데이터 항목들 사이에 내재된 상호관련성이 높을수록 이러한 상 호관계에 대한 분석은 가치있는 정보가 될것이며, 다차원 모델의 대상이 될것이다.
 
 
▶ OLAP 시스템 분석 - OLAP Server와 웨어하우스
OLAP서버는 데이터 웨어하우스환경에서 사용자에게 다차원 정보를 제공하는 분석용 데이터 마트로 정의할 수 있다. OLAP서버 는 비지니스 룰에 의해 기존의 데이터로 부터 새로운 정보를 만들어 내는 연산엔진이라 할수 있을 것이다.
 
OLAP서버는 많은 측면에서 데이터웨어하우스와는 다른 특성을 갖는다. OLAP은 복잡한 연산과 모델링을 포함하여 기업데이터 의 다차원 분석을 수행한다. OLAP는 이처럼 특화된 분석을 수행하는데 비해, 데이터웨어하우스는 기업의 모든 사용자를 대상으로 이들이 수행할 잠재적인 모든 유형의 질의에 대처하기 위한 정보저장고로서의 역할을 한다. 데이터웨어하우스는 사용자들이 자 신의 업무를 보다 효과적으로 수행할수 있도록, 그리고 좀더 정보에 근거한 의사결정을 할수있도록, 가능한 모든 정보의 저장소( Vertual repository)를 만드는데 있다(Crandall, 1995). 따라서 데이터웨어하우스는 좀더 상세한 혹은 트랜잭션 수준의 데이터까 지 보유할수 있다.
 
데이터웨어하우스는 일반적으로 OLAP시스템이 사용하는 것처럼 복잡한 다차원 분석을 지원하지 못하며, 읽기전용(Read only) 이다. 반면 OLAP시스템은 다음그림처럼 사용자들이 직접 데이터를 갱신하고 분석할수 있도록 허용한다. 예를들어 사용자들은 계 획 데이터, 예산 데이터를 갱신할 수 있다. 많은 OLAP시스템이 미래지향적(future oriented)인 반면, 데이터웨어 하우스는 과거 지향적이며, 추측과 관련된 자료를 포함하지 않는다. 즉 사용자는 OLAP을 통해 기업의 미래에 관한 질문을 수행한다.
 
그림 : 데이터웨어 하우스와 OLAP서버
Eg) '원료가격이 5%인상되고 운송비가 10% 하락한다면, 제품원가에 어떠한 영향을 미치는가"와 같은 질문을 수행하게된다.OLAP에서 사용자는 대화식질의를 수행하며, 질의 결과를 신속하고 일관성 있게 얻기를 기대한다. 반면 데이 터 웨어하우스에서 수행되는 질의는 매우 간단한 질의에서 매우 복잡한 프로세싱을 요구하는 질의에 이르기까지 다양하며, 질의 속도도 질의 유형에 따라 많은 차이가 있다.
 
7
 
OLAP서버는 데이터웨어하우스를 대체하는 개념이 아니며, 보완하는 개념이다. OLAP 시스템은 사용자에게 일관되고 신속한 응답 속도를 제공하기 위해 다차원정보를 물리적인 공간에 잠시 저장할수 있으며(다차원 데이터베이스 접근법 ), 데이터웨어하우스(혹은 데이터마트)로부터 실시간적으로 다차원 데이터 구조를 생성할수 있고, 두가지 기법을 병행살수도 있다.
Posted by 알 수 없는 사용자
,

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 알 수 없는 사용자
,