ETL(Extraction, Transformation, Load)
- 데이터 이름과 변환이 주목적이며 다수 시스템들간 데이터 교환에 사용되며,
데이터 웨어하우스 또는 데이터베이스에 데이터를 효과적으로 이동시키기 위해 사용되는 프로세스
데이터를 이동시키기 위한 프로세스 단계는 아래와 같습니다.
1) Extraction(추출) : 하나 또는 그 이상의 데이터 소스들로부터 데이터 획득
소스시스템(원천시스템)은 관계형 데이터베이스, 웹 서비스, 로그 파일 등 다양한 형태의 데이터를 포함할 수 있습니다
2) Transformation(변환) : 추출된 데이터를 원하는 형식으로 변환하기 위해 데이터클렌징 / 형식변환 / 표준화를 수행
데이터의 일관성을 유지하고 비즈니스 규칙을 적용하여 데이터 품질을 향상시키는 작업을 수행할 수도 있습니다.
3) Loading(적재) : 완료된 데이터를 특정목표 시스템에 적재
단계에서는 데이터베이스의 구조에 맞게 데이터를 정리하고 인덱싱하여 저장합니다. 데이터 웨어하우스에 저장된 데이터는 분석, 보고서 작성, 의사 결정 등 다양한 비즈니스 목적으로 활용될 수 있습니다.
ETL은 아래와 같이 정리할 수 있습니다.
"운영데이터 분석을 위한 데이터 웨어하우스 구분"
"대용량 데이터 일괄작업을 통한 정형데이터 통합"
"ETL은 DW,ODS,DM에 대한 적재작업의 핵심요소.
데이터 통합, 이동, 변환, 마스터데이터 관리에 걸쳐 폭넓게 사용중"

0) Interface
- 다양한 이기종 dbms&스프레시트 등 데이터원천으로부터 데이터를 획득하기 위한 인터페이스 메커니즘 구현
1) Staging ETL
- 데이터원천으로부터 트랜잭션 데이터 획득 작업 수행 후, 획득된 데이터를 데이터 위어하우스나 데이터베이스에 직접 로드하기 이전에, 추출한 데이터를 스테이징 테이블에 임시저장
2) Profiling ETL
- 스테이징테이블에서 데이터를 분석하여 데이터의 품질, 무결성, 일관성, 완결성 등을 평가하여 데이터 특징을 식별하고 품질을 측정하는 단계
3) Cleasing ETL
- 추출된 데이터를 정제하고, 오류를 수정하며, 불필요한 데이터를 제거하여 데이터의 일관성과 품질을 개선하는 단계
4) Integration ETL
- 추출 및 가공된 데이터를 원하는 형식으로 변환하여 데이터 웨어하우스나 데이터베이스에 적재하는 단계입니다.
- 적재하는 단계에서 이름, 값, 구조 등 데이터 충돌을 해소하기 위하여 데이터의 구조를 맞추고, 필요한 데이터를 통합하
여 분석과 보고서 작성에 활용할 수 있는 형태로 데이터를 준비
5) De-normalizing ETL
- 운영보고서 생성, 데이터웨어하우스 or 데이터마트 데이터 적재를 위해 정규화된 데이터를 비정규화하는 단계
- 정규화된 데이터 모델은 데이터 중복을 줄이고 일관성을 유지하기 위해 사용되지만,
분석과 집계 작업 시에 성능상의 이점을 얻기 위해 비정규화된 형태로 데이터를 변환하는 작업을 수행할 수 있습니다.
ODS (Operation Data Store)
- 다양한 데이터 원천(Source)들로부터 데이터를 수집, 저장하고 관리하는 곳입니다. 추출, 통합한 데이터 베이스입니다.
다양한 운영 시스템에서 생성되는 데이터를 중앙 집중식으로 저장하여 실시간 또는 거의 실시간으로 업데이트할 수 있는
환경을 제공합니다.
ODS내의 데이터는, 타정보시스템으로 이관되거나 데이터 웨어하우스(Data Warehouse)로 이관됩니다.
ODS의 주요 목적은 다음과 같습니다:
1) 실시간 데이터 업데이트
- ODS는 실시간 또는 거의 실시간으로 데이터를 업데이트할 수 있는 구조를 갖추고 있습니다. 이를 통해 실시간 운영 데이터를 다양한 시스템에서 신속하게 활용할 수 있습니다.
2) 데이터 통합
- ODS는 기업 내 다양한 운영 시스템에서 생성되는 데이터를 중앙 집중식으로 저장하여 통합 관리할 수 있습니다.
이를 통해 다른 시스템 간의 데이터 일관성을 유지하고 데이터 중복을 최소화할 수 있습니다.
3) 운영 지원
- ODS는 주로 운영과 관련된 데이터를 저장하고 활용합니다.
이를 통해 실시간 모니터링, 운영 통계, 성능 분석 등의 운영 활동을 지원하며, 문제 발생 시 빠른 대응이 가능합니다.
4) 데이터 품질 관리
- ODS는 데이터의 품질 관리를 위한 기능을 제공합니다.
데이터 품질 검사, 오류 처리, 데이터 표준화 등의 과정을 통해 데이터의 정확성과 일관성을 유지할 수 있습니다.
ETL, ODS의 공통점과 차이점
ETL은 다양한 데이터 웨어하우스(Data Warehouse), DBMS로부터 데이터획득하여 데이터를 추출, 변환 및 적재하는 과정이 목적이였다면,
ODS는 통합된 데이터를 익스포트 규칙과 보안규칙을 반영한 익스포트 DTL기능을 수행하여,
익스포트 테이블을 생성한 후, 다양한 전용 DBMS클라이언트 or DM, DW에 적재합니다.
1) 차이점
- 목적
: ETL은 데이터 웨어하우스(Data Warehouse) 또는 분석 환경을 위해 데이터를 추출, 변환 및 적재하는 과정입니다. 주로 비즈니스 인텔리전스(Business Intelligence)와 의사 결정 지원을 위한 데이터를 처리합니다.
반면에 ODS는 실시간 운영 데이터를 중앙 집중식으로 저장하고 관리하는 운영 데이터 저장소입니다.
- 구조
ETL은 데이터를 추출하여 다양한 소스에서 변환하고, 최종적으로 데이터 웨어하우스에 로드하는 프로세스입니다. 데이터 추출, 변환 및 적재를 위한 과정을 거칩니다.
ODS는 운영 환경에서 발생하는 실시간 데이터를 저장하고 관리하는 중앙 집중식 데이터 저장소입니다.
- 데이터 처리 시기
ETL은 주로 배치 처리 방식으로 데이터를 처리합니다. 주로 정기적으로 실행되며, 데이터를 추출하고 변환하여 일괄적으로 로드합니다.
ODS는 실시간 또는 거의 실시간으로 데이터를 업데이트할 수 있는 구조를 가지고 있습니다.
2) 공통점
- 데이터 관리
: ETL과 ODS는 모두 데이터 관리를 위한 개념입니다.
ETL은 데이터의 추출, 변환 및 적재를 통해 데이터 웨어하우스로 이동시키는 역할을 수행하며,
ODS는 운영 데이터를 중앙 집중식으로 저장하여 관리합니다.
- 데이터 품질
: ETL과 ODS는 모두 데이터 품질을 유지하고 관리하는데 중점을 둡니다.
ETL은 데이터 추출과 변환 단계에서 데이터 품질을 검사하고 정제하는 작업을 수행합니다.
ODS는 운영 데이터를 통합하여 일관성을 유지하고 데이터 품질 관리를 지원합니다.
- 데이터 통합
: ETL과 ODS는 데이터의 통합을 위해 사용됩니다.
ETL은 다양한 소스에서 추출한 데이터를 변환하여 일관된 형식으로 통합합니다.
ODS는 기업 내 다양한 운영 시스템에서 생성된 데이터를 중앙 집중식으로 저장하여 통합 관리합니다.
인터페이스 단계 프로토콜
- 정기적인 ETL : OLEDB, ODBC, FTP
- 실시간 데이터 획득방식 : 실시간, 근접실시간, OLAP
데이터웨어하우스
- 기업이나 조직에서 다양한 소스에서 추출한 데이터를 통합, 저장하고 분석에 활용하기 위한 중앙 집중식 데이터 저장소
- ODS를 통해 정제 및 통합된 데이터는 데이터분석과 보고서 생성을 위해 데이터웨어하우스에 적재
★데이터웨어하우스 특징
1) 주제중심
2) 영속성 : 읽기전용 속성, 삭제X
3) 통합성 : 데이터를 통합본
4) 시계열성 : 시간순에 의한 이력데이터 보유
데이터웨어하우스를 위한 데이터 모델링 기법
1. 스타 스키마 (Star Schema)
- 스타 스키마는 데이터 웨어하우스에서 가장 간단하고 널리 사용되는 데이터 모델링 기법입니다. 이 모델은 하나의 중심 테이블(사실상 사실 테이블이라고도 함)을 중심으로 여러 개의 차원 테이블로 구성됨
- 사실테이블 : 3정규형으로 모델링
- 차원테이블 : 비정규화된 2정규형으로 모델링
(장점) 복잡도↓ 이해↑ 쿼리작성 쉬움, 조인테이블 갯수↓
(단점) 차원테이블들의 비정규화에 따른 테이블 중복으로, 데이터적재 시 시간소요↑
2. 스노우플레이크 스키마 (Snowflake Schema)
- 스노우플레이크 스키마는 스타 스키마의 확장된 형태로, 차원 테이블(3정규화)을 더 세분화하여 정규화된 구조를 가지는 데이터 모델링 기법
(장점) 데이터중복제거로 적재시간소요↓
(단점) 복잡도↑ 이해↓, 스키마구조 복잡으로 조인테이블갯수↑ 쿼리작성 어려움
CDC (Change Data Capture)
- 운영정보시스템내 정형데이터 변경을 실시간/근접실시간 식별하여 변경된 데이터를 추적하고 해당 변경을 기록 또는 전파하는데 사용됨
- 테이블의 데이터 변경을 알고 싶을때, 데이터의 일관성이 보장되어야 하는 데이터의 경우에 사용
(방식)
1) push방식 - 데이터원천에서 변경식별, 대상시스템에 변경데이터 적재
2) pull방식 - 대상시스템에서 데이터원천을 정시적으로 살펴보아, 필요시 데이터 다운로드
(구현기법)
1) 변경시점기록(TimeStamp On Rows)
2) 버전
3) 컬럼상태값
4) 변경시점 + 버전 + 컬럼상태값
5) 데이터베이스 트리거(사전에 등록된 다수대상 시스템에 변경데이터 배포)
6) 어플리케이션 구현
7) Log Scanner On DB (DBMS제공기능 이용)
EAI (Enterprise Application Integration)
: 기업 또는 기업간 이질적 정보시스템들(애플리케이션, 데이터베이스, 웹서비스 등)의 데이터를 연계함으로써 상호 작용하고 통신할 수 있도록 연결하고 조정하는데 사용됨
EAI의 주요 목적은 아래와 같습니다.
1) 데이터 통합
- EAI는 기업의 다양한 애플리케이션 및 시스템에서 발생하는 데이터를 통합하여 일관된 데이터 환경을 구축합니다. 이를 통해 데이터의 중복, 불일치 및 오류를 최소화하고 비즈니스 프로세스의 효율성과 정확성을 향상시킴
2) 비즈니스 프로세스 흐름
- EAI는 기업 내 다양한 애플리케이션들 간의 연결과 상호 작용을 조정하여 비즈니스 프로세스의 흐름을 원활하게 합니다. 데이터 및 이벤트의 실시간 공유와 통신을 통해 업무 프로세스의 자동화와 통합을 지원
3) 시스템 통합
EAI는 기존의 레거시 시스템과 최신 애플리케이션, 클라우드 기반 서비스 등 다양한 시스템들을 통합합니다.
이는 기업의 IT 환경을 확장, 개선 및 혁신할 수 있는 유연성과 확장성을 제공
4) 데이터 보안과 품질 관리
EAI는 데이터의 통합과 공유 과정에서 보안과 데이터 품질 관리를 중요하게 다룹니다.
데이터의 안전한 전송과 접근 제어, 데이터 일관성 및 정확성을 유지하여 기업의 데이터 보안과 품질을 보장
(기대효과)
- 본사와 공장이 별도의 정보시스템을 보유한 상태에서, 글로벌하게 지역적으로 분리되어 있고,
해당 정보 시스템들 간 데이터동기화가 필요한 경우나 그룹&지주회사 계열사들간 상호관련 데이터 동기화가 필요한 경우
(연계방식)
1) Point to Point (ETL / CDC 방식)
- 필요에 따라 정보시스템들간 데이터 연계로 복잡성 발생 /표준화 불가능 / 유지보수성 저하
2) 허브앤스포크 아키텍처
데이터 연계 & 통합유형 (동기화 기준)
- 일괄(배치)작업
- 비동기식 실시간 통합
- 동기식 실시간 통합(데이터 동기화 시점을 기준)
전통적 데이터 처리기법

대용량 비정형 데이터 처리
1. 고용량 로그데이터(비정형) 수집
ex.플럼(오픈소스데이터 수집시스템)
1) 초고속 수집 성능과 확장성
2) 데이터 전송 보장 메커니증
3) 다양한 수집과 저장 플러그인
4) 인터페이스 상속을 통한 어플리케이션 기능 확장
2. 대규모 분산 병렬 처리
ex)맵리듀스(분산병렬처리), HDFS(분산파일시스템)
1) 선형적인 성능과 용량 확장
2) 고장 감내성
3) 핵심 비즈니스 로직에 집중
4) 풍부한 에코 시스템 형성
3. 데이터 연동(비/정형 데이터간 연계 분석, 데이터를 하둡에 복사, 병렬처리)
ex) 스쿱
4. 대용량 질의 기술
ex) 하이브, 임팔라, SQL on 하둡..
분산데이터 저장기술 (분류기준 : 저장데이터 정형와여부와 데이터 모델)
분산파일시스템
|
GFS
|
|
하둡DFS
|
네임노드, 데이터노드로 구성
|
|
러스터
|
메타데이터서버, 객체저장서버, 클라이언트, 파일시스템
|
|
클러스터 데이터베이스
|
OracleRAC
|
공유 (4노드 RAC구성모델)(가용성/확장성/비용절감)
OracleRAC데이터베이스 서버는 클러스터의 모든 노드에서 실행되며, 데이터는 공유 스토리지에 저장
데이터 파티셔닝 할 필요X, 성능향상 위해 파티셔닝됨.
RAC는 클러스터의 모든 노드에 로드를 고르게 분산.
|
IBM DB2 ICE
|
무공유(CPU 메모리 디스크를 파티션별로 독립적 운영)
에플리케이션은 여러 파티션에 분산된 데이터베이스를 하나의 데이터베이스로 보게됨.
|
|
마이크로소프트 SOL Server
|
무공유, 독립된 서버에서 실행되는 서로 다른 DB간 논리적 결합이며, 네트워크로 연결
각 노드의 데이터베이스 인스턴스 사이에 링크 구성 후, 모든 파티션에 대해 UNION ALL을 이용해 논리적인 VIEW구성
(단)파티셔닝 정책에 맞게 테이블과 뷰 생성, 모든 노드 엑세스
|
|
MySQL
|
무공유
메모리 기반 데이터베이스, 클러스터링 지원
|
|
Key-Value저장소
|
구글빅테이블
|
multi-dimension sorted hash map을 파티션하여 분산 저장하는 저장소.
테이블의 파티션은 row-key를 이용하며, 분리된 파티션은 분산된 노드에서 서비스. 분리된 파티션을 Tablet이라고 함.
|
아마존SimpleDB
|
데이터 실시간 처리, 표준SQL이 아닌 전용쿼리언어
Domain, Item, Attribute(컬럼), Value로 구성, 스키마 없음
|
|
MS SSDS
|
컨테이너(테이블), 엔티티(레코드)로 구성
ex. 고객별로 컨테이너(테이블)존재
|
분산컴퓨팅 기술
맵리듀스(구글)→하둡(야후, 오픈소스)→SQLon하둡(실시간)
mapReduce
|
구글mapReduce(무공유)
|
다차원 데이터분석
|
Hadoop MapReduce
|
오픈소스 버전(대용량 데이터 배치처리)
MapReduce시스템을 사용자가 쉽게 사용할 수 있도록 새로운 쿼리언어로 추상화한 시스템
|
|
병렬쿼리시스템
|
구글Sazwall
|
|
아파치pig
|
야후
|
|
아파치Hive
|
페이스북, sql기반, jdbc지원, 대용량데이터 배치처리
|
|
SQL on Hadoop
|
임팔라
|
실시간 SQL 질의분석기술, 데이터웨어하우징 용도
개발생산성↑, 실시간처리↑
|
'IT' 카테고리의 다른 글
[빅데이터/ADsP 요약정리] 과목1. 데이터의 이해 (1) | 2023.06.04 |
---|---|
[빅데이터/통계] T-test, ANOVA, ANCOVA (2) | 2023.06.04 |
[MWC 2023] 미래 사회를 구성하는 MWC 2023의 로봇, AI, UAM 그리고 메타버스 (0) | 2023.03.12 |