본문 바로가기
Data Science/Data Analytics

[ADP-2] ETL / ODS / DW / 스타 스키마 & 스노우 플래이크 스키마 / CDC / EAI / 데이터 연계 및 통합 기법 요약 / 대규모 분산 병렬 처리(하둡)

by 루크 Luke 2022. 7. 25.
반응형

ETL

- Extraction, Transformation and Load

- 추출, 변형, 적재

- 데이터 이동과 변환 절차와 관련한 업계 표준 용어

- 데이터 웨어하우스(DW), 운영 데이터 스토어(ODS), 데이터마트(DM)에 대한 데이터 적재 작업의 핵심 구성요소로서, 데이터 통합(Data Integration), 데이터 이동(Data Migration), 마스터 데이터 관리(MDM; Master Data Management)에 걸쳐 폭넓게 활용됨

Extraction(추출) 하나 또는 그 이상의 데이터 원천들로부터 데이터 획득
Transformation(변형) 데이터 클렌징, 형식 변환, 표준화, 통합 또는 다수 애플리케이션에 내장된 비즈니스 룰 적용 등
Load(적재) 위 변형 단계 처리가 완료된 데이터를 특정 목표 시스템에 적재

 

ODS

- Operational Data Store (운영 데이터 스토어)

- 데이터에 추가 작업을 위해 다양한 데이터 원천(Source)으로부터의 데이터를 추출, 통합한 데이터베이스

- ODS 내의 데이터는 향후 비즈니스 지원을 위해 타 정보 시스템으로 이관 or 다양한 보고서 생성을 위해 데이터 웨어하우스로 이관됨

- ODS 구성을 위한 일괄 작업 ETL은 아래와 같은 단계(Layer)로 구성됨

1) 인터페이스 단계(Interface Layer) - 다양한 데이터 원천으로부터 데이터를 획득
- 데이터 원천 : 관계형 DB, 스프레드시트, 플랫 파일, 웹서비스, 웹 사이트, XML문서, 트랜잭션 데이터를 저장하고 있는 모든 알려진 데이터 저장소(Repository) 등
- 데이터 획득을 위한 프로토콜 : OLEDB, ODBC, FTP
2) 데이터 스테이징 단계(Staging Layer) - 작업 일정이 통제되는 프로세스들에 의해 데이터 원천들로부터 트랜잭션 데이터들이 추출되어 하나 혹은 그 이상의 스테이징 테이블에 저장됨
- 정규화가 배제되며, 테이블 스키마는 데이터 원천의 구조에 의존적임
- 데이터 원천과 스테이징 테이블과의 데이터 매핑은 일대일 또는 일대다로 구성될 수 있다.
3) 데이터 프로파일링 단계(Profiling Layer) - 범위, 도메인, 유일성 확보 등의 규칙을 기준으로 다음과 같은 절차에 따라 데이터 품질 점검을 함
- 선행 자료 또는 조건 : 데이터 프로파일링 요건
- Step 1 : 데이터 프로파일링 수행
- Step 2 : 데이터 프로파일링 결과 통계 처리
- Step 3 : 데이터 품질 보고서 생성 및 공유
4) 데이터 클렌징 단계(Cleansing Layer) - 클렌징 ETL 프로세스(도구)로 앞 데이터 프로파일링 단계에서 식별된 오류데이터를 다음 절차에 따라 수정함
- 선행 자료 또는 조건 : 데이터 품질 보고서. 데이터 클렌징 요건
- Step 1 : 클렌징 스토어드 프로시져 실행(예비작업)
- Step 2 : 클렌징 ETL 도구 실행
5) 데이터 통합 단계(Integration Layer) - 수정 완료한 데이터를 ODS 내의 단일 통합 테이블에 적재하며, 다음 단계들을 거침
- 선행자료 또는 조건 : 데이터 클렌징 테이블, 데이터 충돌 판단 요건
- Step 1 : 통합 스토어드 프로시저 실행(예비 작업)
- Step 2 : 통합 ETL 도구 실행
6) 익스포트 단계(Export Layer) - 통합된 데이터를 익스포트 규칙과 보안 규칙을 반영한 익스포트 ETL 기능을 수행하여 익스포트 테이블을 생성하고, 다양한 전용 DBMS 클라이언트 또는 DM, DW에 적재함
- OLAP 비정형 질의에 활용될 수 있음

 

데이터 웨어하우스

- DW; Data Warehouse

- DW의 특징 4가지

주제 중심(Subject Oriented) 데이터는 실 업무 상황의 특정 이벤트나 업무 항목을 기준으로 기준화함
영속성(Non Volatile) 최초 저장 이후에는 읽기 전용 속성을 가지며 삭제되지 않음
통합성(Integrated) DW는 기관, 조직이 보유한 대부분의 운영시스템들에 의해 생성된 데이터들의 통합본임
시계열성(Time Variant) 운영 시스템들은 최신 데이터를 보유하고 있지만, DW는 시간 순에 의한 이력 데이터를 보유함

 

DW의 모델링 : 스타 스키마 & 스노우 플래이크 스키마

1) 스타 스키마(Star Schema) (= 조인 스키마(Join Schema))

- DW 스키마 중에 가장 단순함

- 단일 사실 테이블(Fact Table)을 중심으로 다수의 차원 테이블(Dimensional Table)들로 구성됨

- 스타 스키마를 활용할 때는 전통적인 관계형 데이터베이스를 통해 다차원 데이터베이스 기능을 구현 가능

- 이해하기 쉬운 것이 장점

- 사실 테이블은 보통 제3정규형으로 모델링

- 차원 테이블은 보통 비정규화된 제2정규형으로 모델링

- 차원 테이블을 정규화하는 것을 스노우 플래이크 스키마라고 함

- 차원 테이블들의 비정규화에 따른 데이터 중복으로 해당 테이블에의 데이터 적재 시 상대적으로 많은 시간이 소요된다는 단점

 

2) 스노우 플래이크 스키마(Snow Flake Schema)

- 스타 스키마의 차원 테이블을 제3정규형으로 정규화한 형태

- 데이터의 중복이 제거돼 데이터 적재 시 시간이 단축되는 장점

- 스키마 구조의 복잡성 증가에 따른 조인 테이블 개수 증가와 쿼리 작성 난이도 상승이라는 단점

 

CDC

- Change Data Capture

- DB 내 데이터에 대한 변경을 식별해 필요한 후속 처리(데이터 전송/공유 등)를 자동화하는 기술 또는 설계 기법이자 구조

- 실시간 또는 근접 실시간 데이터 통합을 기반으로 하는 DW 및 기타 데이터 저장소 구축에 활용됨

- CDC 구현 기법 7개

Time Stamp on Rows 마지막 변경 시점을 기록하는 타임스탬프 컬럼을 둠
Version Numbers on Rows 변경된 레코드의 버전을 기록하는 컬럼을 둠
Status on Rows 변경 여부를 True/False 불린 값으로 저장하는 컬럼을 둠
Time/Version/Status on Rows 타임스탬프, 버전 넘버, 상태 값의 세가지 특성을 모두 활용
Triggers on Tables 트리거를 활용해 사전 등록된 다수 대상 시스템에 변경 데이터를 배포
Event Programming 데이터 변경 식별 기능을 어플리케이션에 구현하며, 다양한 조건에 의한 CDC 매커니즘을 구현할 수 있음
Log Scanner on Database 데이터 변경에 따라 트랜잭션 로그가 기록, 관리되는데, 이 변경 내역에 대한 해석을 통해 CDC 매커니즘이 구현됨

 

EAI

- Enterprise Application Integration

- 기업 정보 시스템들의 데이터를 연계, 통합하는 소프트웨어 및 정보 시스템 아키텍쳐 프레임워크

- 포인트 투 포인트 방식(X) → 허브앤스포크(Hub and Spoke) 방식의 EAI 기반 구조를 적용

- EAI 구성 요소

1) 어댑터(Adaptor) : 각 정보 시스템과 EAI 허브 간 연결성을 확보
2) 버스(BUS) : 어댑터들을 매개로 연결된 각 정보 시스템들 간의 데이터 연동 경로
3) 브로커(Broker) : 데이터 연동 규칙을 통제함
4) 트랜스포머(Transformer) : 데이터 형식 반환 등을 담당

- EAI 구현 유형

Mediation
(Intra-communication)
EAI 엔진이 중개자(Broker)로 동작하고, 특정 정보 시스템 내 데이터 신규 생성 또는 갱신, 신규 트랜잭션 완료 등 유의미한 이벤트 발생을 식별해서, 사전 약속된 정보 시스템들에게 그 내용을 전달
- Publish/Subscribe Model
Federation
(Inter-communication)
EAI 엔진이 외부(고객 or 파트너) 정보 시스템으로부터의 데이터 요청들을 일괄적으로 수령해 필요한 데이터를 전달함
- Request/Reply Model

 

데이터 연계 및 통합 기법 요약

일괄(Batch) 통합 비동기식 실시간 통합
(Near Real Time)
동기식 실시간 통합
(Real Time)
- 비실시간 데이터 통합
- 대용량 데이터 대상
- 높은 데이터 조작 복잡성
- 데이터 추출, 변형, 적재(ETL)
- CDC
- 감사 증적
- 웹 서비스 / SOA
- 교차참조
- 데이터 재 처리 허용
- 점대점 데이터 연계
- 자동화 도구 및 자체 개발 SW 혼용
- 근접 실시간 데이터 통합
- 중간 용량 데이터
- 중간 데이터 조작 복잡성
- ETL
- CDC
- Data Pooling and DB Streams
- 웹 서비스 / SOA
- 감사 증적
- 교차참조
- 다수 데이터 원천 및 목표 시스템
- 데이터 재 처리 허용
- 자동화 도구 및 자체 개발 SW 혼용
- 실시간 데이터 통합
- 목표 시스템 데이터 처리 가능 시에만 원천 데이터 획득
- ETL
- 웹 서비스 / SOA
- Single Transaction Integrations
- 단일 트랝개션 단위 데이터 통합
- 데이터 재처리 불가
- 단일 또는 다수 데이터 원천
- 감사 증적

 

대규모 분산 병렬 처리

- 하둡(Hadoop)은 대규모 분산 병렬 처리의 업계 표준인 맵리듀스(MapReduce) 시스템과 분산 파일 시스템인 HDFS로 구성된 플랫폼 기술이며, 다음과 같은 특징을 가진다.

1) 선형적인 성능과 용량 확장 - 하둡 이전의 분산 컴퓨팅 시스템의 최대 클러스터링 대수가 100대였던 반면, 하둡은 2만 대의 서버들을 단일 클러스터로 구성할 수 있을 정도로 확장성이 뛰어나며, 선형적인 성능 확장도 가능함
2) 고장 감내성 - 3중 복제되어 서로 다른 물리 서버에 저장
- 맵리듀스 작업을 수행하다가 특정 태스크에서 장애가 생기면 시스템이 자동으로 감지해 장애가 발생한 특정 태스크만 다른 서버에서 재실행할 수 있음
- 관리자 개입 없이 시스템 수준에서 자동으로 동작함
3) 핵심 비즈니스 로직에 집중 - 기본적으로 맵과 리듀스라는 2가지 함수만 구현하면서 동작하는 시스템임
- 비즈니스 로직 개발자는 맵리듀스라는 데이터 처리, 분석 방식만 이해하고 비즈니스 목적에 맞게 간단한 코드만 작성해주면, 데이터가 크고 작음에 신경을 크게 쓰지 않아도 됨
4) 풍부한 에코시스템 형성 - 데이터 수집 기술 : Flume-NG
- 데이터 연동 기술 : Sqoop
- 데이터베이스 기술 : HBase(NoSQL)
- 대용량 SQL 질의 기술 : Hive, Pig
- 실시간 SQL 질의 기술 : Impala, Tajo
- 워크플로 기술 : Oozie, Azkaban

 

반응형

댓글