1. ETL
1-1. 정의
ETL 프로세스란 여러 소스에서 데이터를 수집하고, 이를 표준화하여, 분석을 위한 데이터 웨어하우스 또는 저장을 위한 데이터베이스 또는 기타 유형의 데이터 소스에 적재하는 데이터 통합 프로세스이다.
1-2. 단계
- E(Extract) : 추출
- 변경 알림 기반 데이터 추출
- 증분 데이터 추출
- 전체 데이터 추출
- 다양한 소스들(비즈니스 시스템, API, 센서 데이터, 데이터베이스 등)로부터 데이터를 추출(수집)한다.
- T(Transform) : 변환
- 표준화
- 정리
- 중복 제거
- 형식 수정
- 다양한 데이터를 표준화하기 위해 여러 기술(솔루션)을 적용한다.
- L(Load) : 적재
- 전체 적재
- 증분 적재
- 변환된 데이터를 저장한다.
1-3. 필요성
데이터는 조직의 가장 큰 자산 중 하나이다. 그러나 유용한 데이터는 대부분 구조화되지 않고 여러 소스에 흩어져 있다. 따라서 조직은 데이터를 수집 및 표준화하고 한 위치에서 분석을 준비하기 위해 ETL 형식의 데이터 통합이 필요하다. ETL은 데이터에 대한 쉽고 균일한 액세스를 보장하기 때문이다.
1-4. 도구
조직은 요구 사항에 따라 다양한 유형의 ETL 도구를 사용한다.
- 직접 코딩(사용자 지정 스크립트 생성)
- 배치 프로세싱 도구
- 오픈 소스 도구
- 실시간 도구
1-5. 특징
- 워크플로우가 잘 정의되어 있어야 하며 연속적이고 지속적인 프로세스를 가진다.
- 데이터 엔지니어 및 개발자의 상세 계획, 감독 및 코딩이 필요하다.
- 최신 ETL 솔루션은 쉽고 빠르다.
1-6. 장점
- 통합 데이터 리소스 보존
- 높은 효율성 및 생산성, 안전성
- 개인 정보 보호 및 보호 규정 준수
1-7. 단점
- 방대한 데이터 대비 느린 속도
- 빈번한 유지 관리
- 데이터 유형 변경
- 결합된 ETL 파이프라인
- 높은 초기 비용
2. ELT
2-1. 정의
ELT 프로세스란 추출된 데이터를 먼저 적재한 이후 변환을 하는 프로세스이다.
2-2. 특징
- 데이터 스테이징(임시 테이블)이 필요하지 않다.
- 정형, 비정형, 반정형 데이터 유형의 모든 데이터 타입이 활용 가능하다.
- 데이터 레이크(Data Lakes)에서 동작한다.
- 형식이나 데이터 종류에 관계없이 모든 유형을 Raw 형태로 적재할 수 있다.
- 고속 클라우드 서버 기반 프로세스이다.
- 필요한 데이터만 변환할 수 있다.
- ETL 보다 신뢰성이 낮다.
2-3. 장점
- 새로운 비정형 데이터에 대한 유연성 및 저장 용이성
- 빠른 추출 및 로딩
- 짧은 적재 시간
- 낮은 유지 보수 비용
2-4. 단점
- 과도한 일반화
- 보안 허점
- 개인 정보 보호 규정 준수 위험
- 배치 작업시 대기 시간 증가
3. ETL vs. ELT
매개변수ETLELT
프로세스 순서 | 추출 데이터를 스테이징 영역에서 변환 후 대상 시스템에 로드. | 스키마를 데이터 웨어하우스에 직접 매핑 및 로드하고 로드 데이터를 분리/변환. |
핵심 초점 | 데이터 변환, 데이터 마스킹, 정규화를 진행 중인 테이블 간 조인. | 데이터가 추출되어 대상 시스템에 직접 로드. |
개인 정보 보호 준수 | 민감한 정보는 대상 시스템에 로드되기 전에 수정 가능. | 데이터는 민감한 세부 정보를 제거하지 않고 원시 형식으로 업로드. 마스킹은 대상 시스템에서 처리되어야 함. |
유지 보수 요구사항 | 변환 논리 및 스키마 변경 관리에는 더 많은 수동 오버헤드가 필요. | 변환이 구현되는 데이터 웨어하우스에서 유지 관리 해결. |
지연 시간 | 일반화 할수록 더 높은 대기 시간. 스트리밍 ETL로 최소화할 수 있음. | 변환이 거의 또는 전혀 없는 경우 대기 시간 단축. |
데이터 유연성 | 가동 시간을 최대화하기 위해 맞춤형 규칙 및 논리로 엣지 케이스를 처리. | 스키마 드리프트 및 주요 재동기화 주변의 에지 사례를 위한 일반화된 솔루션 – 주의 깊게 계획하지 않으면 다운타임 또는 대기 시간 증가로 이어질 수 있음. |
분석 유연성 | 사용 사례 및 보고서 모델을 사전에 정의. | 스키마 진화를 통해 언제든지 데이터를 추가. 분석가는 대상 웨어하우스에서 새로운 보기를 구축. |
데이터 규모 | 확장 가능한 분산 처리 시스템이 아닌 경우 ETL에 의해 병목 현상이 발생할 수 있음. | ELT 도구에서 더 적은 처리가 발생하므로 내재적으로 더 확장 가능. |
4. ETLT
4-1. 정의
ETL과 ELT의 장점을 결합하는 방법이다.
1) 데이터 수집 속도를 높이는 동시에 2) 규정 준수 표준에 따라 데이터 품질을 보장하고, 3) 민감한 데이터를 보호하는 데이터 통합에 대한 접근방식이다.
4-2. 순서
- 데이터베이스에서 준비되지 않은 원시 데이터를 추출하여 스테이징 영역으로 로드한다.
- 스테이징 영역에 있는 동안 데이터를 '가볍게' 변환한다.
2-1. 일반적으로 민감한 데이터를 제거/마스킹/암호화 - 준비된 데이터를 데이터 웨어하우스에 로드한다.
- 데이터 웨어하우스 내에서 데이터를 보다 완벽하게 변환하고 통합한다.
4-3. 특징
- 데이터 보안 및 규정 준수 요구 사항 충족
- 고객 신뢰 증진
- 개인 정보 침해 가능성 제한
- 데이터 수집 속도 향상
- 다양한 유형의 분석에 맞게 로드 후 변환을 쉽게 변경 가능하므로 변환 방식에 유연성 제공
5. 마무리
- ETL은 데이터를 추출 -> 변환 -> 적재 순으로 처리하는 프로세스이고, ELT는 데이터를 추출 -> 적재 -> 변환 순으로 처리하는 프로세스이다.
- ETL은 데이터 스테이징 단계가 소스와 데이터 웨어하우스 사이에 있다. ELT는 데이터 웨어하우스를 활용하여 기본 변환을 수행하며, 데이터 스테이징이 필요 없다.
- ETL은 데이터 웨어 하우스에 로드하기 전, 중요 보안 데이터를 처리하여 개인정보 보호 규정 준수를 지원한다. 해싱된 데이터 또한 개인정보 활용 동의 파기시 활용할 수 없는데 ELT에서는 처리가 곤란하다.
- ETL은 정교한 데이터 변환을 수행할 수 있고, ELT 보다 비용 효율적일 수 있다.
6. 결론
💻 데이터 엔지니어가 ETL/ELT/ETLT을 이해해야 하는 이유?
대량의 데이터가 발생함으로 인해 'Data Lake' 개념이 생겼다. 즉 모든 데이터를 모두 저장한 후 용도에 따라 가져다 쓰는 논리가 생긴 것이다.
따라서 데이터 웨어하우스, 머신러닝, 클라우드 마이그레이션 또는 기타 데이터 프로젝트에 따라 데이터 통합 접근 방식을 이해하고 선택하는 것은 매우 중요하다.
원본 : https://velog.io/@yeonjooyou/DE-ETL%EA%B3%BC-ELT%EC%9D%98-%EA%B0%9C%EB%85%90-ETLT