데이터 처리 프로세스
ETL
- 데이터의 이동 및 변환 절차와 관련된 용어
- 데이터 스토어, 웨어하우스, 마트 등에 데이터를 적재
- 데이터 통합, 이동, 마스터 데이터 관리(MDM)에 활용, 이동과 변환이 목적
- 대용량 데이터 처리(MPP)
- 다수 시스템 간 대용량 데이터 교환
- Batch, ETL, Real Time등으로 구분
ETL 기능
Extraction : 데이터 소스로부터 데이터 획득 Transformation : 데이터 클렌징, 변한, 형식 변환, 표준화, 통합 등의 비즈니스 룰 Loading : 변형이 완료된 데이터를 특정 시스템에 적재
ETL 작업 단계
step 0 interface |
다양한 이기종 dbms 및 스프레드시트 등 데이터 소스로부터 데이터를 획득하기 위한 인터페이스 메커니즘 구현 |
---|---|
step 1 Staging ETL |
일정에 따라 소스로부터 트랜잭션 데이터 획득 작업 후 획득된 데이터를 스테이징 테이블에 저장 |
step 2 Profiling ETL |
스테이징 테이블에서 데이터 특성을 식별하고 품질 측정 |
step 3 Cleansing ETL |
다양한 규칙들을 활용해 프로파일링된 데이터의 보정 작업 수행 |
step 4 Integraion ETL |
이름, 값, 구조 데이터 충돌을 해소하고 클렌징된 데이터를 통합 |
step 5 Demoralizing ETL |
운영 보고서 생성, 데이터 웨어하우스, 마트에 대한 데이터 적재를 위해 비정규화 수행 |
ODS 구성
- ODS는 데이터에 대한 추가 작업을 위해 다양한 데이터 소스로부터 데이터를 추출, 통합한 데이터베이스
- ODS 내 데이터는 타 정보 시스템이나 데이터 웨어하우스로 이관
- ODS를 위한 데이터 통합은 데이터 클렌징, 중복제거, 비즈니스 룰 대비 데이터 무결성 점검의 작업이 포함
- 일반적으로 Real Time, Near Real Time 트랜잭션 데이터 혹은 가격 등의 원자성을 지닌 하위 수준 데이터를 저장하기 위해 설계
ODS구성 단계
- 인터페이스 단계
- 데이터를 획득하는 단계
- 프로토콜 : OLEDB, ODBC, FTP 등이 사용
- 데이터 웨어하우스에 대한 RT, NRT OLAP질의를 지원하기 위해 실시간 데이터 복제 인터페이스 기술들이 함께 활용
OLAP : 데이터 웨어하우스 상의 데이터에 대해 다양한 방식으로 다차원 분석 진행
- 데이터 스테이징 단계
- 데이터 소스로부터 트랜잭션 데이터들이 추출되어 하나 또는 그 이상의 스테이징 테이블들에 저장
- 정규화가 배제되고 스키마는 소스의 구조에 의존적이다.
- 소스와 스테이징 테이블과의 데이터 매핑은 일대다, 일대일 구조
- 적재 타임스탬프, 데이터 값에 대한 체크 섬 등의 통제 정보가 추가
- 다양한 데이터 소스로부터 데이터를 획득해 스테이징 테이블에 적재, 이 때 일괄(BATCH)작업 형태인 정기적 ETL과 실시간 ETL을 혼용할 수 있음.
- 데이터 프로파일링 단계
- 데이터 품질 점검의 단계
- 스테이징 테이블 데이터에 대한 프로파일링 수행 -> 결과 통계 처리 -> 품질 보고서 생성 및 공유
- 데이터 클렌징 단계
- 프로파일링 단계에서 식별된 오류 데이터 수정 단계
- 클렌징 스토어드 프로시저 실행 -> 클렌징 ETL 도구 실행
- 데이터 인티그레이션 단계
- 수정 완료한 데이터를 ODS 내의 단일 통합 테이블에 적재
- 통합 스토어드 프로시저 실행 -> 통합 ETL 도구 실행
- 익스포트 단계
- 익스포트 ETL기능을 수행해 익스포트 테이블 생성
- 다양한 DBMS 클라이언트, 데이터 마트, 웨어하우스에 익스포트 테이블 적재
- 해당 데이터는 OLAP 비정형 질의에 활용될 수 있음.
데이터 웨어하우스
ODS를 통해 정제, 통합된 데이터가 분석과 보고서 생성을 위해 적재되는 데이터 저장소
특징
주제 중심성 Subject Oriented |
데이터 웨어하우스의 데이터는 실 업무 상황의 특정 이벤트나 업무 항목을 기준으로 구조화 되므로, 최종사용자도 이해하기 쉬운 형태 |
---|---|
영속성, 비휘발성 NON Volatile |
최초 저장 이후에는 읽기 전용의 속성, 삭제되지 않는다. |
통합성 Integrated |
기관,조직이 보유한 대부분의 운영 시스템에 의해 생성된 데이터들의 통합본임 |
시계열성 Time Variant |
운영 시스템은 최신 데이터르 보유하지만 데이터 웨어하우스는 시간 순에 의한 이력 데이터 보유 |
데이터 웨어하우스의 테이블 모델링 기법
- 스타 스키마
-
조인 스키마, 가장 단순
-
단일 사실 테이블을 중심으로 다수의 차원 테이블로 이루어짐
-
전통적인 관계형 데이터베이스를 통해 다차원 데이터베이스 기능 구현
-
사실 테이블은 보통 제 3정규형으로 모델링, 차원 테이블들은 보통 비정규화된 제 2정규형으로 모델링
-
장점 : 스노우 플레이크에 비해 이해하기 쉽고, 쿼리 작성 용이, 조인 테이블 수 적음
-
단점 : 차원 테이블들의 비정규화에 따른 데이터 중복으로 데이터를 적재할 때 많은 시간 소요
- 스노우 플레이크 스키마
- 차원 테이블을 제 3정규형으로
- 단점 : 조인 테이블 개수 증가, 쿼리 작성 난이도 상승
ODS DW 비교
구분 | ODS | DW |
---|---|---|
데이터 내용 | 현재, 최신 데이터 | 오래된 상세 데이터, 현재 상세 데이터, 요약, 2차로 가공된 고도로 요약된 데이터 |
데이터 양 | 비교적 소규모 데이터 | 대규모 데이터 |
데이터 갱신 | 지속적 갱신, 현재DB 반영 | 데이터 축적 보관 |
기술적 요소 | 처리의 모든 기능을 사용하도록 설계 | 단순한 적재와 접근 중심 |
CDC
- DB내 데이터 변경을 식별해 필요한 후속처리를 자동화
- RT, NRT 데이터 통합을 기반
- 스토리지 하드웨어 계층에서부터 애플리케이션 계층에 이르기까지 다양한 계층에서 다양한 기술
- 단일 정보 내 다수의 CDC 매커니즘
CDC 구현 기법
- Time Stamp on Rows
- 테이블 내 마지막 변경 시점을 기록하는 타임스탬프 칼럼을 두고 마지막 변경 타임스탬프 값보다 더 최근의 타임스탬프 값을 갖는 레코드를 변경된 것으로 식별
- Version Numbers on Rows
- 레코드의 버전을 기록하는 칼럼을 두고 더 높은 버전을 보유한 레코드를 변경된 거승로 식별
- Status on Rows
- 타임스탬프 및 넘버 기법에 대한 보완, 변경의 여부를 True,False 로 변경 여부 판단
- Time/Version/Status
- 위의 세가지 특성 모두 활용, 정교한 쿼리 생성에 활용
- Triggers on Tables
- 트리커를 활용해 사전에 등록된 다수 대상 시스템에 변경 데이터를 배포하는 형태
- 관리 복잡도 증가, 관리 어려움, 확장성 감소 유발 등 시스템 유지보수성을 저하 -> 사용에 주의
- Event Programming
- 변경 식별 기능을 애플리케이션에 구현, 애플리케이션 개발 부담, 복잡도 증가
- Log Scanner on Database
- DBMS에서 제공하는 트랜잭션 로그에 대한 스캐닝 및 변경에 대한 해석을 통해 구현
- 작업 규모가 증가될 수 있음
- 장점 : db와 애플리케이션 영향도 최소화, 식별 지연시간, 트랜잭션 무결성 영향도 최소화, 스키마 변경 불필요
CDC 구현 방식
push : 소스에서 변경을 식별하고 대상 시스템에 대한 변경 데이터를 적재 pull : 대상 시스템에서 데이터 소스를 정기적으로 살피고 필요시 데이터 다운
EAI
비즈니스 프로세스를 중심으로 기업 내 각종 애플리케이션 간의 상호연동이 가능하도록 함
- 데이터 연계 -> 상호 융화 내지 동기화
- 애플리케이션을 프로세스 및 메시지 차원에서 통합 관리
- EAI를 통해 비즈니스 프로세스를 자동화하고 실시간으로 통합 연계
- RT, NRT 처리 중심
데이터 연계 방식
기존 : POINT TO POINT
- 정보 시스템 개발 시 정보 시스템들 간의 데이터를 연계, 복잡함
- 데이터 통합과 표준화 불가능, 유지 보수성 저하, 관리 비용 상승
- N(N-1)/2개의 연결
EAI의 연계방식 : Hub and Spoke
- 가운데에 허브 역할을 하는 브로커를 두고 연결 노드들의 데이터 연계 요구를 중계함으로써 구조를 단순화
- 각 연결의 대상이 되는 노드들은 Spoke
EAI 구성 요소
어댑터 : 각 정보 시스템과 EAI허브 간의 연결성 확보 버스 : 어댑터를 매개로 연결된 각 정보 시스템들 간의 데이터 연동 경로 브로커 : 데이터 연동 규칙 통제 트랜스포머 : 데이터 형식 변환을 담당
EAI 구현 유형
- Mediation
- EAI 엔진이 중개자, 특정 정보 시스템 내의 데이터 생성, 갱신, 신규 트랜잭션 완료 등 이벤트 발생을 식별, 미리 약속된 정보 시스템에 해당 내용(데이터) 전달
- Publish/subscribe Model
- Federation
- EAI 엔진이 외부 정보 시스템으로부터 데이터 요청들을 일괄적으로 수령해 전달
- Request/reply Model
EAI 활용 효과
- 정보 시스템 개발 및 유지 보수비용 절감
- 기업 정보 시스템의 지속적 발전 기반 확보
- 협력사, 고객, 파트너와의 상호 협력 프로세스 연계
- 웹 서비스, 인터넷 비즈니스를 위한 기본 토대 확립
- 데이터 동기화, 데이터 표준화 기반 제공
EAI, ESB
구분 | EAI | ESB |
---|---|---|
기능 | Hub를 이용해 비즈니스 로직을 중심으로 애플리케이션을 통합, 연계 | BUS를 이용해 서비스 중심으로 시스템을 유기적으로 연계 |
통합 관점 | 애플리케이션 | 프로세스 |
로직연동 | 개별 애플리케이션에서 수행 | ESB에서 수행 |
아키텍처 | 단일 접점인 허브시스템을 이용한 중앙집중식 연결구조 | 버스 형태의 느슨하고 유연한 연결구조 |