일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Python
- pyspark
- 빅데이터플랫폼
- dataengineer
- Data engineering
- apache spark
- Spark structured streaming
- AWS SageMaker
- 하둡에코시스템
- 하둡
- 블로그
- 추천시스템
- kafka
- BigData
- Terraform
- kubernetes
- 개발자
- hadoop
- DataEngineering
- eks
- recommendation system
- 개발자혜성
- mlops
- cloudera
- 데이터엔지니어링
- spark
- 클라우데라
- redis bloom filter
- 빅데이터
- 데이터엔지니어
- Today
- Total
Hyesung Oh
[데이터 처리 기술의 이해] 데이터 처리 프로세스 #1 ETL 본문
학습 목표
- ETL, ODS 구성, 데이터 웨어하우스를 이해한다.
- CDC, EAI에 대해 이해한다
- 데이터 연계 및 통계 기법을 분류하고 각 용도를 이해한다.
- 대용량의 비정형 데이터 처리방법에 대해 이해한다.
맛보기
- ETL : 데이터 추출 및 적재작업. 대용량 데이터에 대한 일괄 작업을 통해 정형 데이터를 통합하는 기술.
- CDC, EAI : 정형 데이터의 실시간 혹은 근접 실시간 처리와 통합에 관한 기술
- 전통적 데이터 처리기법과 빅데이터 처리 기법은 데이터 저장 인프라스트럭처 및 조회 기법 등에서 차이점이 존재
- 대표적인 비정형 데이터인 '로그 데이터'의 수집 방법. 비정형 데이터란 텍스트, 이미지, 비디오, 센서 데이터 등이 있음. 기업에서 발생하는 대표적인 비정형 데이터인 로그 데이터는 Flume-NG, 페이스북 Scribe, 아파치 Chukwa 등을 통해 수집.
ETL
1. ETL의 개요
1.1 ETL의 개념 및 특징
- ETL(Extraction, Transformation, Loading)은 데이터의 이동 및 변환 절차와 관련된 업계 표준용어.
- 다양한 데이터 원천으로부터 데이터를 추출 및 변환하여 운영 데이터 스토어(ODS, operational data store), 데이터 웨어하우스(DW, Data Warehouse), 데이터 마트(DM, Data Mart)등에 데이터를 적재하는 작어브이 핵심 구성요소.
- 데이터 통합, 데이터 이동, 데이터 관리에 걸쳐 폭넓게 활용되며 데이터 이동과 변환을 주목적으로 함.
- 정기적인 실행 일정을 조정할 수 있는 재사용이 가능한 컴포넌트들로, 대용량 데이터를 처리하기 위한 MPP(Massive parallel processing)를 지원할 수 있다.
- ETL 구현을 위한 여러 상용 소프트웨어들이 있으며, Batch ETL, Real Time ETL로 구분된다.
1.2 ETL의 기능
- Extraction : 하나 또는 그 이상의 데이터 원천들로 부터 데이터 획득
- Transformation : 데이터 클렌징, 형식 변환 및 표준화, 통합 또는 다수 애플리케이션에 내장된 비즈니스룰 적용 등
- Load : 변형 단계의 처리가 완료된 데이터를 특정 목표 시스템에 적재
1.3 ETL의 작업 단계
* Oracle, MySQL, SQL Server, Excel -> ETL(staging, profiling, cleansing, integratation) -> ODS 적재(현재 혹은 비교적 최근 데이터를 저장하기 위해 설계된 구조) -> ELT -> de-normalizing -> 운영보고서 작성, DW(Data Warehouse) 적재-> ETL -> DM(Data Mart) 적재
1) step0 interface : 다양한 DBMS 및 스프레드시트 등 데이터 원천으로 부터 데이터를 획득하기 위한 인터페이스 메커니즘 구현
2) step1 staging : 수립된 일정에 따라 데이터 원천으로부터 트랜잭션 데이터 획득 작업 수행 후, 획득된 데이터를 스테이징 테이블에 저장
3) step2 profiling : 스테이징 테이블에서 데이터 특성을 식별하고 품질 측정
4) step3 cleansing 다양한 규칙들을 활용해 프로파일링된 데이터의 보정 작업을 수행
5) step4 integration : 데이터 충돌을 해소하고, 클렌징된 데이터를 통합
6) step5 denormalizing : 운영 보고서 생성 및 데이터 웨어하우스 또는 데이터 마트에 대한 데이터 적재를 위해 데이터 비정규화 수행
2. ODS 구성
2.1 ODS 개념 및 특징
- ODS는 데이터에 대한 추가작업을 위해 다양한 데이터 원천들로부터 데이터를 추출 및 통합한 데이터베이스
- ODS내의 데이터는 향후 비즈니스 지원을 위해 정보 시스템으로 이관되거나, 다양한 보고서 생성을 위해 데이터 웨어하우스로 이관된다.
- 다양한 원천들로부터 데이터가 구성되기 때문에, ODS를 위한 데이터 통합은 일반적으로 데이터 클린징, 중복제거, 비즈니스 룰 대비 데이터 무결성 점검 등의 작업들을 포함한다.
- ODS는 일반적으로 실시간(Real Time) 또는 실시간 근접(Near Real Time) 트랜잭션 데이터 혹은 가격 등의 원자성(개별성)을 지닌 하위 수준 데이터를 저장하기 위해 설계된다.
2.2 ODS 구성 단계
1) Interface 단계
- 다양한 데이터 원천으로부터 데이터를 획득
- 데이터를 획득하기 위한 프로토콜로는 OLEDB(Object Linking and Embedding Database, extract from RDBMS), ODBC(Object Data Base Connectivity, extract from RDBMS), FTP(File Transfer Protocol, from Excel) 등이 사용된다.
- 데이터 훼어하우스에 대한 실시간(Real Time) 또는 근접 실시간(Near Real Time) OLAP(on-line analytical processing) 질의를 지원하기 위해 실시간 데이터 복제 인터페이스 기술들이 함께 활용된다.
* OLAP(on-line analytical processing) : 데이터 웨어하우스 상의 데이터에 대해 다양한 방식으로 다차원 분석을 진행하는 것을 분석한다.
2) Data Staging 단계
- 원천 데이터들로 부터 트랜잭션 데이터 추출 후 스테이징 테이블에 저장
- 정규화가 배제된 테이블사용하며, 테이블의 스키마는 데이터 원천의 구조에 의존적
- 데이터 원천과 스테이징 테이블과의 데이터 매핑은 일대일 또는 일대다로 구성될 수 있다.
- 데이터가 스테이징 테이블에 적재되는 시점에 적재 타임스탬프, 데이터 값에 대한 체크 섬 등의 통제(Control) 정보들이 추가된다.
- 관계형 DB, 스프레드시트, 웹 서비스, XML 문서, 트랜잭션 데이터 저장소와 같은 다양한 이기종 데이터 원천으로부터 데이터를 획득해 스테이징 테이블에 적재하며, 이 때 일괄(Batch)작업 형태인 정기적인 ETL과 실시간 ETL을 혼용할 수 있다.
3) Data Profiling 단계
- 범위, 도메인, 유일성 확보 등의 규칙을 기준으로 데이터 품질 점검을 하는 단계이다.
- 선행 자료 또는 조건 : 데이터 프로파일링 요건
- 스테이징 테이블의 데이터에 대한 데이터 프로파일링 수행 -> 데이터 프로파일링 결과 통계 처리 -> 데이터 품질 보고서 생성 및 공유 의 절차를 거친다.
4) Data Cleansing 단계
- 클렌징 ETL 프로세스들로 데이터 프로파일링 단계에서 식별된 오류 데이터들을 수정하는 단계이다.
- 선행 자료 또는 조건 : 데이터 품질 보고서, 데이터 클렌징 요건
- cleansing stored processor를 실행(예비작업) -> 클렌징 ETL 도구 실행 의 절차를 거친다.
5) Data Integration 단계
- 수정 완료한 데이터를 ODS 내의 단일 통합 테이블에 적재하는 단계이다.
- 선행 자료 또는 조건 : 데이터 클렌징 테이블, 데이터 충돌 판단 요건
- 통합 스토어드 프로시저 실행(예비 작업) -> 통합 ETL 도구 실행 의 절차를 거친다.
6) Export 단계
- 앞 단계에서 통합된 데이터에 대해 익스포트 규칙과 보안 규칙을 반영한 export ETL 기능을 수행해 익스포트 테이블을 생성한다. 그 후 다양한 DBMS 클라이언트 또는 데이터 마트, 데이터 웨어하우스에 export table을 적재하는 단계이다.
- 해당 데이터는 OLAP 비정형 질의에 활용될 수 있다.
3. 데이터 웨어하우스
3.1 데이터 웨어하우스란?
ODS를 통해 정제 및 통합된 데이터가 데이터 분석과 보고서 생성을 위해 적재되는 데이터 저장소
3.2 데이터 웨어하우스 특징
1) 주제 중심성(Subject Oriented) : 데이터 웨어하우스의 데이터는 실 업무 상황의 특정 이벤트나 업무 항목을 기준으로 구조화되므로, 최종사용자도 이해하기 쉬운 형태를 지닌다.
2) 영속성, 비휘발성(None Volatile) : 최초 저장 이후에는 읽기 전용(Read Only의 속성을 가지며, 삭제되지 않는다.
3) 통합성(Integrated) : 기관, 조직이 보유한 대부분의 운영 시스템들에 의해 생성된 데이터들의 통합본이다.
4) 시계열성(Time Variant) : 운영 시스템들은 최신 데이터를 보유하고 있지만, 데이터 웨어하우스는 시간 순에 의한 이력 데이터를 보유한다.
3.3 데이터 웨어하우스의 테이블 모델링 기법
1) 스타 스키마
- 조인 스키마라고도 하며, 데이터 웨어하우스의 스키마 중 가장 간단
- 단일 사실 테이블(fact table)을 중심으로 한 다수의 차원 테이블(dimensional table)들로 구성된다.
- 전통적인 관계형 데이터베이스를 통해 다차원 데이터베이스 기능을 구현할 수 있다.
- 스타 스키마의 사실 테이블은 보통 제 3정규형, 차원 테이블은 보통 비정규화된 제 2정규형으로 모델링하는 것이 일반적이다.
- 장점 : 스노우 플레이크 스키마에 비해 복잡도가 낮아서 이해하기 쉽고, 쿼리 작성이 용이하고 조인 테이블 개수가 적다.
- 단점 : 차원 테이블들의 비정규화에 따른 데이터 중복으로 인해 테이블로 데이터를 적재할 때 상대적으로 많은 시간이 소요된다.
2) 스노우 플레이크 스키마
- 스타 스키마의 차원 테이블을 제 3정규형으로 정규화한 형태이다.
- 장점 : 데이터의 중복이 제거돼 데이터 적재 시간이 단축된다
- 단점 : 스타 스키마에 비해 스키마 구조의 복잡성이 증가하므로 조인 테이블 개수가 증가하고 쿼리 작성 난이도가 상승된다.
3.3 ODS와 DW의 비교
ODS | DW | |
데이터의 내용 | 현재 또는 비교적 최신 데이터 | 오래된 상세 데이터, 현재 상세 데이터, 요약 데이터, 2차로 가공된 고도로 요약된 데이터 등 다양한 구조의 데이터 |
데이터의 양 | 비교적 소규모 데이터 | 대규모 데이터 |
데이터의 갱신 | 지속적으로 갱신되어 현재의 DB 상태를 반영 (volatile) | 데이터 축적 보관(nonvolatile) |
기술적 요소 | 데이터베이스 처리의 모든 기능을 사용하도록 설계됨 | 단순한 적재(Load)와 접근(Access) 중심 |
'Data Engineering' 카테고리의 다른 글
[데이터 처리 기술의 이해] 데이터 처리 프로세스 #4 데이터 통합 및 연계 기법 (0) | 2020.05.20 |
---|---|
[데이터 처리 기술의 이해] 데이터 처리 프로세스 #3 EAI (0) | 2020.05.20 |
[데이터 처리 기술의 이해] 데이터 처리 프로세스 #2 CDC (0) | 2020.05.20 |
데이터 직렬화 Serialization의 의미와 목적 (0) | 2020.01.29 |
데이터 엔지니어링의 개요 (0) | 2019.12.05 |