본문 바로가기
Data Science/DBT

ETL은 3개 단계에 불과하다. (Collection, Wrangling, Integration)

by 루크 Luke 2024. 8. 5.
반응형

 

개요

ETL - 1 ~ 3

 

지난 강의에서 Data-Maturity Model에 대해서 강사님이 말씀해주셨는데, 이 중 ETL이 아래 3단계를 포함한다고 말씀해주셨다. Collection, Wrangling, Integration이 ETL의 모든 것이라고 하셨고, 이를 좀 더 자세하게 설명해주시는 시간이었다. 

 

1. Data Collection

- 데이터 수집, 추출 등의 단계

 

피라미드의 가장 밑부분, 즉 데이터 수집 부분이다. 여기서 말하는 데이터 수집은 다양한 출처(Source)에서 데이터를 추출(Extract)하는 것을 의미한다. "다양한 데이터 출처"라고 한다면 어떤 것을 떠올릴 수 있을까? 현답은 비즈니스에서 처한 '상황에 따라 다르다'라고 할 수 있다.

 

예를 들면, 제조업에서는 센서(Sensor)가 수집한 데이터일 수 있고, 마케팅에서는 Google Analytics나 웹사이트 클릭에 따른 사용자 로그일 수 있다. 헤지 펀드 관련 주식 시장 데이터를 사용할 수도 있고, 의료 분야에서는 방사선 이미지 데이터를 사용하는 경우도 있다. 데이터 출처는 끝이 없다. API, ERP, 거래 데이터베이스 등 다양한 출처에서 데이터를 추출한다.

 

데이터는 다양한 형식과 방법으로 존재할 수 있다. 예를 들면, 상점에 설치된 보안 카메라는 매일 밤 서버에 영상을 업로드할 수 있지만, CCTV는 실시간으로 중단 없이 영상을 보내기도 한다. 여러 카메라가 서로 다른 이벤트를 다양한 품질로 기록할 수도 있고, 영상 대신 사진을 업로드할 수도 있다.

 

이런 다양한 데이터의 특성을 우리는 ‘빅데이터의 세 가지 도둑’이라고도 부른다고 한다. 다양성(Variety), 속도(Velocity), 양(Volume)를 훔쳐한다는 비유인 것 같다. 데이터 아키텍처를 설계할 때 이 세 가지를 염두에 두는 것이 중요한데, 이는 데이터 신뢰성, 확장성, 유지보수 용이성을 모두 고려하는 시스템을 구축하는 데 필수적인 요소이기 때문에다.

 

2. Data Wrangling

- 데이터 랭글링이라고 읽고, 추출한 데이터를 정리하고 다듬는 작업

 

수집된 데이터는 스테이징 영역(임시 저장소)에 로드된다. 일반적으로 일단 추출한 데이터는 깨끗하지 않은 상태이기 때문에, 데이터 랭글링을 통해서 데이터 품질을 개선하는 데 집중한다. 이를 위해 다양한 작업을 할 수 있는데, 가장 일차적으로 해야 할 일은 "중복 데이터"를 만들지 않는 것이다.

 

예를 들어, 한 사용자가 관리 시스템에 여러 번 기록되거나, 우편번호와 주소 같은 논리적으로 연관된 값들이 일치하지 않거나, 사용자가 필드를 비워둔 경우에는 사용자 정보의 일부를 누락시킬 수 있다. 나라 이름의 오타나 12월을 20으로 잘못 쓴 것 같은 실수도 있을 수 있다. 따라서 데이터 랭글링 과정에서 이러한 부분을 보완해야 한다.

 

3. Data Integration

- 데이터 통합, 변환, 저장 과정

 

변환(Transform) 단계의 목표는 다양한 데이터 출처(Source)에서의 형식에서 우리가 쓰는 정해진 데이터 웨어하우스(Target) 형식으로 변환하는 것이다. 데이터 통합 단계에서는 스테이징 영역의 변환된 데이터를 타겟 데이터베이스로 로드하여 분석 작업을 수행하는 것을 의미한다.

 

데이터를 로드하는 방법은 두 가지가 있는데, 하나는 전체 데이터를 새로 쓰는 '리프레시(Refresh)' 방식으로, 기존 데이터를 완전히 대체하는 방법이고, 다른 하나는 출처 데이터의 변경 사항만 데이터 웨어하우스에 추가하는 '업데이트(Update)' 방식이 있다.

 

마무리

강사님은 이번 강의에서 매슬로우의 5단계 피라미드를 사용하여 데이터의 필요 계층을 설명해주셨다. 이 피라미드는 데이터가 일반적으로 어떻게 발전하는지 다섯 단계로 구성하고, 이 피라미드를 개별적으로 나누어 어떻게 연결되는지를 알려주셨다. 각 단계를 건너뛰면 데이터에서 가치를 추출하는 데 실패할 가능성이 높기 때문에, 하나도 대충할 수 없을 것 같다.

 

또한, 데이터 엔지니어링에서 가장 중요한 주제 중 하나인 ETL(추출, 변환, 로드)은 데이터 계층 구조의 처음 세 단계(Collection, Wrangling, Integration)을 의미하기 때문에, 이를 가장 신경 써야 할 것이다.

 

포스팅 자료 출처

본 포스팅은 유데미(Udemy) 사이트의 "The Complete dbt (Data Build Tool) Bootcamp: Zero to Hero" 강의의 내용을 발췌하여 작성했습니다. (광고 X)

반응형

댓글