1. ETL(Extraction, Transformation and Load)
1) ETL 정의 및 특징
- 데이터의 이동 및 변환 절차와 관련된 업계 표준 용어
- 데이터를 추출 및 변환하여 운영 데이터 스토어(ODS, Operational Data Stor), 데이터웨어하우스(DW, Data Warehouse), 데이터마트(DM, Data Mart) 등에 데이터를 적재하는 작업의 핵심 구성요소
- 데이터 통합(Data Integration), 데이터 이동(Data Migration), 마스터 데이터 관리(MDM, Master Data Management)에 걸쳐 폭 넓게 활용되며 데이터 이동과 변환을 주목적으로 함
- 대용량 데이터를 처리하기 위한 MPP(Massicely Parallel Processing)를 지원할 수 있음
* MPP: 대규모 병렬 처리. 프로그램을 여러부분으로 나누어 여러 프로새서가 각 부분을 동시에 수행시키는 것
2) ETL의 기능
- Extraction(추출): 하나 이상의 데이터 원천(Source)들로부터 데이터 획득
- Transformation(변형): 데이터 클렌징/형식변환/표준화, 톡합 또는 다수 애플리케이션에 내장된 비즈니스 룰 적용 등
- Load(적재): 변형 단계의 처리가 완료된 데이터를 특정 목표 시스템에 적재
3) 작업단계
- Interface: 데이터 원천(Source)으로부터 데이터를 획득하기 위한 인터페이스 메커니즘 구현
- Staging ETL: 수립된 일정에 따라 데이터 원천으로부터 트랜잭션 데이터 획득 작업 수행 후, 획득된 데이터를 스테이징 테이블에 저장
- Profiling ETL: 스테이징 테이블에서 데이터 특성을 식별하고 품질을 측정
- Cleansing ETL: 다양한 규칙들을 활용해 프로파일링된 데이터의 보정 작업을 수행
- Integration ETL: (이름, 값, 구조)데이터 충돌을 해소하고, 클렌징된 데이터를 통합
- Denormalizing ETL: 운영보고서 생성 및 데이터 웨어하우스 또는 데이터 마트에 대한 데이터 적재를 위해 데이터 비정규화 수행
2.ODS(Operational Data Store)
1) ODS 정의 및 특징
- 데이터에 대한 추가 작업을 위해 다양한 데이터 원천(Source)들로부터 데이터를 추출, 통합한 데이터 베이스
- ODS 내의 데이터는 향후 비즈니스 지원을 위해 타 정보 시스템으로 이관되거나, 다양한 보고서 생성을 위해 데이터 웨어하우스로 이관됨
- ODS를 위한 데이터 통합은 일반적으로 데이터 클렌징, 중복제거, 비즈니스 룰 대비 데이터 무결성 점검 등의 작업들을 포함함
- 실시간(Real Time) 또는 실시간 근접(Near Real Time) 트랜잭션 데이터 혹은 가격 등의 원자성(개별성)을 지닌 하위 수준 데이터들을 저장하기 위해 설계됨
2) ODS 구성단계
i. Interface Layer
- 데이터를 획득하는 단계
- 데이터를 획득하기 위한 프로토콜로는 OLEDB(Object Linking and Embedding Database), ODBC(Object Data Base Connectivity), FTP(File Transfer Protocol)등이 사용됨
- 데이터 웨어하우스에 대한 실시간 또는 근접실시간 OLAP질의를 지원하기 위해 실시간 데이터 복제 인터페이스 기술들이 함께 활용됨
* OLAP(Online Analytical Processing): 데이터 웨어하우스 상의 데이터에 대해 다양한 방식으로 다차원 분석을 진행하는 것
ii. Staging Layer
- 트랜잭션 데이터들이 추출되어 하나 또는 그 이상의 스테이징 테이블들에 저장되는 단계
- 이 테이블들은 정규화가 배제되며, 테이블 스키마는 데이터 원천의 구조에 의존적임
- 데이터 원천과 스테이징 테이블과의 데이터 매핑은 일대일 또는 일대다로 구성됨
- 데이터가 스테이징 테이블에 적재되는 시점에 적재 타임스탬프, 데이터 값에 대한 테그 섬 등의 통제 정보들이 추가됨
iii. Profiling Layer
- 범위, 도메인, 유일성 확보 등의 규칙을 기준으로 데이터 품질 점검을 하는 단계
- 선행 자료 또는 조건: 데이터 프로파일링 요건
- [스테이징 테이블의 데이터에 대한 데이터 프로파일링 수행] → [데이터 프로파일링 결과 통계 처리]
→ [데이터 품질 보고서 생성 및 공유] 의 절차를 거침
iv. Cleansing Layer
- 식별된 오류 데이터들을 수정하는 단계
- 선행 자료 또는 조건: 데이터 품질 보고서, 데이터 클렌징 요건
- [클렌징 스토어드 프로시저 실행(예비작업)] → [클렌징 ETL 도구 실행]의 절차를 거침
v. Integration Layer
- 수정 완료한 데이터를 ODS 내의 단일 통합 테이블에 적재하는 단계
- 선행 자료 또는 조거니: 데이터 클렌징 테이블, 데이터 충돌 판단 요건
- [통합 스토어드 프로시저 실행(예비작업)] → [통합 ETL 도구 실행] 의 절차를 거침
vi. Export Layer
- 익스포트 규칙과 보안 규칙을 반영한 익스포트 ETL 기능을 수행해 익스포트 테이블 생성
- 그 후 다양한 DBMS 클라이언트 또는 DM, DW에 익스포트 테이블을 적재하는 단계
- 해당 데이터는 OLAP 비정형 질의에 활용될 수 있음
3. 데이터 웨어하우스
1) 정의 및 특징
- ODS를 통해 정제 및 통합된 데이터가 데이터 분석과 보고서 생성을 위해 적재되는 데이터 저장소
- 주제중심성(Subject Oriented): 실 업무 상황의 특정 이벤트나 업무 항목을 기준으로 구조화되므로, 최종사용자(end user)도 이해하기 쉬운 형태를 지님
- 영속성/비휘발성(Non Volatile): 최초 저장 이후에는 읽기전용의 속성을 가지며, 삭제되지 않음
- 통합성(Integrated): 기관, 조직이 보유한 대부분의 운영시스템들에 의해 생성된 데이터들의 통합본
- 시계열성(Time Variant): 운영 시스템들은 최신 데이터를 보유하고 있지만, DW는 시간 순에 의한 이력 데이터를 보유함
2) 테이블 모델링 기법
i. 스타스키마(조인스키마, Join Schema)
- DW의 스키마 중 가장 단순
- 단일 사실 테이블(Fact Table)을 중심으로 한 다수 차원 테이블(Dimensional Table)들로 구성됨
- 전통적인 관계형 데이터베이스를 통해 다차원 데이터베이스(Multi-Dimensional Database)기능을 구현할 수 있음
- 스타스키마의 사실테이블은 보통 제 3정규형으로 모델링하며, 차원테이블들은 보통 비정규화된 제 2정규형으로 모델링함
- 장점: 스노우 플레이크 스키마에 비해 복잡도가 낮아서 이해하기 쉽고, 쿼리 작성이 용이하고 조인 테이블 개수가 적음
- 단점: 차원 테이블들의 비정규화에 따른 데이터 중복으로 인해 테이블로 데이터를 적재할 때 상대적으로 많은 시간 소요
ii. 스노우 플레이크 스키마
- 스타스키마의 차원 테이블을 제 3정규형으로 정규화한 형태
- 장점: 데이터의 중복이 제거되어 데이터 적재 시 시간이 단축됨
- 단점: 스타스키마에 비해 스키마 구조 복잡성이 증가하므로 조인 테이블의 개수가 증가하고 쿼리 작성의 난이도 상승
4. CDC(Change Data Capture)
1) 정의 및 특징
- 데이터베이스 내 데이터에 대한 변경을 식별해 필요한 후속처리(데이터 전송/공유 등)를 자동화하는 기술 또는 설계기법이자 구조
- 실시간 또는 근접 실시간 데이터 통합을 기반으로 하는 DW 및 기타 데이터 저장소 구축에 폭 넓게 활용
- 스토리지 하드웨어 계층에서부터 애플리케이션 계층에 이르기까지 다양한 계층에서 다양한 기술을 통해 구현될 수 있음
- 단일 정보 시스템 내 다수의 CDC 매커니즘이 구현되어 동작될 수 있음
2) 구현 기법
i. Time Stamp on Rows
- 변경이 반드시 인지되어야 하는 테이블 내 마지막 변경시점을 기록하는 타임스탬프 column을 두고,
마지막 변경 타임스탬프 값보다 더 최근의 타임스탬프 값을 갖는 레코드를 변경된 것으로 식별하는 기법
ii. Version Numbers on Rows
- 변경이 반드시 인지되어야 하는 테이블 해당 레코드의 버전을 기록하는 columns을 두고, 기 식별된 레코드 버전보다 더 높은 버전을 보유한레코드를 변경된 것으로 식별하는 기법
- 레코드들의 최신 버전ㅇ르 기록, 관리하는 '참조 테이블'을 함께 운영하는 것이 일반적
iii. Status on Rows
- 타임 스탬프 및 버전 넘버 기법에 대한 보완 용도로 활용
- 데이터 변경의 여부를 True/False의 Boolean 값으로 저장하는 column상태 값을 기반으로 변경 여부를 판단하는 기법
- 더 높은 버전 넘버 또는 더 최근의 갱신 타임스탬프를 보유한 레코드에 댛나 변경 여부 판단을 사람이 직접 결정할 수 있도록 유보하는 등의 업무규칙을 적용할 수 있음
iv. Time/Version/Status on Rows
- 타임스탬프, 버전넘버, 상태 값의 세가지 특성을 모두 활용하는 기법
- 정교한 쿼리 생성에 활용해 개발에 유연성을 제공 할 수 있음
v. Triggers on Tables
- 데이터베이스 트리거를 활용해 사전에 등록(Subscribe)된 다수 대상 시스템(Target)에 변경데이터를 배포(Publish)하는 형태로 CDC를 구현하는 기법
- 데이터베이스 트리거는 시스템 관리 복잡도 증가, 변경 관리의 어려움, 확장성의 감소를 유발하는 등 전반적인 시스템 유지보수성을 저하시키는 특성이 있어 사용에 주의를 요함
vi. Event Programming
- 데이터 변경 식별 기능을 애플리케이션에 구현하며, 애플리케이션 개발 부담과 복잡도를 증가시키나, 다양한 조건에 의한 CDC메커니즘ㅇ르 구혆라 수 있는 기법
vii. Log Scanner on Database
- 대부분의 DBMS에서 제공하는 트랜잭션 로그에 대한 스캐닝 및 변경내역에 대한 해석을 통해 CDC메커니즘ㅇ르 구현하는 기법
- 각 DBMS에 따라 트랜잭션 로그 관리 메커니즘이 상이해 다수의 이기종 데이터 베이스를 사용하는 환경에서 적용시 작업 규모가 증가될 수 있으니 주의가 필요
- 장점: 데이터베이스와 사용 애플리케이션에 대한 영향도 최소화, 변경 식별 지연시간 최소화, 트랜잭션 무결성에 대한 영향도 최소화, 데이터베이스 스키마 변경 불필요
3) 구현 방식
- 푸시방식: 데이터 원천에서 변경을 식별하고 대상 시스템(Target)에 변경 데이터를 적재해 주는 방식
- 풀 방식: 대상 시스템9Target)에서 데이터 원천을 정기적으로 살펴보고, 필요 시 데이터를 다운로드 하는 방식
5. EAI(Enterprise Application Integration)
1) 정의 및 특징
- 비즈니스 프로세스를 중심으로 기업 내 각종 애플리케이션간의 상호연동이 가능하도록 통합하는 솔루션
- 기업 내 또는 기업 간 상호 이질적 정보 시스템들의 데이터를 연계함으로써 상호 융화 내지 동기화되어 동작하도록 하는 것
- Front-Office 시스템, 기존의 레거시 시스템, 패키지 애플리케이션 등의 형태로 산재되어 있는 애플리케이션을 프로세스 및 메시지차원에서 통합 및 관리
- EAI를 통해 비즈니스 프로세스를 자동화하고 실시간으로 통합 연계할 수 있음
- ETL은 배치 프로세스 중심이며, EAI는 실시간 혹은 근접실시간 처리 중심
2) 데이터 연계 방식
i. 기존의 데이터 연계 방식: Point to Point
- 기준 마스터 데이터의 통합과 표준화가 불가능
- 복잡한 데이터 연계 경로 발생으로 인해 유지보수성이 극도로 저하되고 관리비용 상승
- N개의 연결 대상 노드들이 존재할 경우 연결은 N(N-1)/2개가 발생
ii. EAI의 데이터 연계 방식: Hub and Spoke
- 가운데 지점에 허브 역할을 하는 브로커를 두고, 연결 대상 노드들의 데이터 연계요구를 중계 해줌으로써 노드 간 연결 개수 및 구조를 단순화하는 방식
- 다수 정보 시스템의 데이터를 중앙의 Hub가 연계하고 통합하는 기법
- ETL/CDC는 운영 데이터와 분석을 위한 데이터 베이스가 구분 - 각 연결의 대상이 되는 노드들은 Spoke에 해당
3) 구성요소
- 어댑터(Adapter): 각 정보 시스템과 EAI 허브(Engine)간의 연결성을 확보
- 버스(Bus): 어댑터를 매개로 연결된 각 정보 시스템들 간의 데이터 연동 경로
- 브로커(Broker): 데이터 연동규칙을 통제
- 트랜스포머(Transformer): 데이터 형식 변환을 담당
4) EAI 구현 유형
i. Mediation(intra-communication)
- EAI 엔진이 중개자(Broker)로 동작
- 특정 정보 시스템 내의 데이터 신규 생성 및 갱신, 신규 트랜잭션 완료(Commit)등 이벤트 발생을 식별하여 미리 약속된 정보 시스템에 해당 내용(데이터)을 전달
- Publish / subscribe Model
ii. Federation(inter-communication)
- EAI 엔진이 외부 정보 시스템으로부터 데이터 요청들을 일괄적으로 수령해 필요한 데이터를 전달
- Request / reply Model
5) 활용 효과
- 정보 시스템 개발 및 유지 보수비용 절감
- 기업 정보 시스템의 지속적 발전 기반 확보
- 협력사, 파트너, 고객과의 상호협력 프로세스 연계
- 웹 서비스 등 인터넷 비즈니스를 위한 기본 토대 확립
- 지역적으로 분리되어 있는 정보 시스템들 간의 데이터 동기화, 그룹 및 지주 회사 계열사들 간 상호관련 데이터 동기화 등을 위한 데이터 표준화 기반 제공
6) EAI vs ESB
구분 | EAI (Enterprise Applicaiton Integration) |
ESB (Enterprise Service Bus) |
기능 | 미들웨어(Hub)를 이용하여 비즈니스 로직을 중심으로 Application을 통합, 연계 |
미들웨어(BUs)를 이용하여 서비스 중심으로 시스템을 유기적으로 연계 |
통합관점 | Application | Process |
로직연동 | 개별 Application에서 수행 | ESB에서 수행 |
아키텍쳐 | 단일 접점인 허브시스템을 이용한 중앙집중식 연결구조 | 버스(Bus)형태의 느슨하고 유연한 연결구조 |
참고. ODS와 DW의 비교
구분 | ODS | DW |
데이터의 내용 | 편재 또는 비교적 최신 데이터 | 오래된 상세 데이터, 현재 상세 데이터, 요약 데이터, 2차로 가공된 고도로 요약된 데이터 등 다양한 구조의 데이터 |
데이터의 양 | 비교적 소규모 데이터 | 대규모 데이터 |
데이터의 갱신 | 지속적으로 갱신되어 현재의 DB상태를 반영(volatile) |
데이터 축적 보관(nonvolatile) |
기술적 요소 | 데이터베이스 처리의 모든 기능을 사용하도록 설계됨 | 단순한 적재(Load)와 접근(Access)중심 |
'통계학 > ADP' 카테고리의 다른 글
[ADP] 분산데이터 저장기술 - 분산파일시스템 (0) | 2025.02.20 |
---|---|
[ADP] 빅데이터 처리기법 (0) | 2025.01.17 |
[ADP] DBMS와 SQL (1) | 2025.01.15 |
[ADP] 빅데이터의 이해 (0) | 2025.01.14 |
[ADP] 데이터의 이해 (2) | 2025.01.12 |