1. ETL (Extract, Transform, Load)의 개념 및 필요성
개념도 | |
---|---|
개념 | BI, 고급 분석 등 위해 다양한 소스의 데이터를 추출(Extract)하고 변환(Transform)하여 데이터 웨어하우스, 데이터 레이크 등에 적재(Load)하는 데이터 통합 프로세스 |
- 현대 데이터 분석 환경은 데이터 규모/소스/유형 증가와 BI(Business Intelligence) 업무, 머신 러닝 등 고급 분석 필요성이 증가하여 센서, CRM, ERP의 원시 데이터를 필요한 시스템에서 사용하도록 정형화하여 적재하는 ETL 프로세스가 필수 요소
2. ETL의 동작 절차 및 주요 기능
(1) ETL의 동작 절차
(2) ETL의 주요 기능
구문 | 주요 기능 | 동작 방식 |
---|---|---|
추출 기능 | 업데이트 알림 | 소스 시스템의 데이터 레코드 변경 시 사용자에 알림 |
증분 추출 | 일정 기간 동안 수정된 데이터를 식별하고 추출 | |
전체 추출 | 수정 여부 무관, 추출 대상 모든 데이터를 추출 | |
기본 변환 기능 | 데이터 정리 | 오류 제거, 소스 데이터를 대상 데이터 형식에 매핑 |
데이터 중복 제거 | 데이터 세트 내 중복 레코드를 식별하고 제거 | |
데이터 형식 수정 | 문자 집합, 단위, 날짜/시간 등 일관된 형식으로 변환 | |
고급 변환 기능 | 파생 | 데이터에 규칙을 적용하여 기존 값에서 새로운 값을 계산 |
결합 | 서로 다른 데이터 소스의 동일한 데이터를 연결 | |
분할 | 열 또는 데이터 속성을 대상 시스템에서 여러 열로 분할 | |
요약 | 데이터 값을 핵심 데이터 세트로 줄여 데이터 품질 향상 | |
암호화 | DES, AES, MD5, SHA 등 암호화하여 중요 데이터 보호 | |
적재 기능 | 전체 적재 | 소스의 전체 데이터가 변환되어 목표 시스템으로 이동 |
증분 적재 | 대상 시스템과 소스 시스템 간 일정한 크기/차이로 이동 | |
스트리밍 증분 적재 | 데이터 파이프라인을 통해 지속적 변경 사항을 이동 | |
배치 증분 적재 | 데이터 변경 사항을 주기적 배치 단위 적재 (큰 볼륨 경우) |
- ETL 상용 소프트웨어로 Oracle OWB, SAP Data Integrator, IBM Datastage, AWS Glue 등이 있으며, 빅데이터 및 스트리밍 데이터 통합 시 ELT 프로세스 적용
- 데이터를 변환 후 적재하는 ETL과 비교하여, 적재 후 변환하는 ELT 프로세스는 가용성이 높고 스테이징 영역이 불필요 하나 데이터 파이프라인 개발 어려움
3. ETL과 ELT 비교
비교 항목 | ETL | ELT |
---|---|---|
동작 절차 | 추출 → 변환 → 적재 | 추출 → 적재 → 변환 |
데이터 가용성 | ETL 미적용 데이터 사용 불가 | 모든 데이터 적재 및 사용 가능 |
스테이징 영역 | 변환용 스테이징 영역 필요 | 변환용 스테이징 영역 불필요 |
보안 수준 | 적재 전 암호화로 보안 수준 높음 | 적재 후 암호화로 상대적 보안 수준 저하 |
기술 성숙도 | 기존 기술로 기술 성숙도 높음 | 신기술이므로 파이프라인 개발 어려움 |
- 온프레미스 DBMS 환경이나 민감 정보, 데이터 스키마가 변하지 않는 경우 ETL 프로세스가 적합, Cloud 환경이나 대량 및 실시간 데이터 전송이 중요한 경우 ELT 프로세스가 적합
- CDC(Change Data Capture)의 경우, 소스 DBMS 데이터 변경 시 원격 DBMS 실시간 동기화 가능하나 기본적으로 데이터 변환은 불가
[참고]
- AWS, 추출 변환 적재(ETL)란 무엇인가요
- Databricks, ETL이란 무엇입니까
- Intergrate.io, ETL과 ELT 비교: 5가지 주요 차이점