SQL의 모든 것/SQL의 이론 및 기초

실무 ETL

IT너드남 2024. 6. 3. 23:58
데이터를 추출하고 변환하여 적재한다.

ETL, 말 그대로 EXTRACT, TRANSFORM, LOAD의 약자이다. 해석하자면 "추출 후 변환하여 적재한다"이다.

필자는 국내 솔루션 기업인 어느 한 기업의 ETL 툴과, APACHE NIFI, SSIS 등을 다루어 봤다.

솔직히 말하자면, 어떤 ETL 툴을 써도 완벽하다는 말은 죽어도 입 밖으로 나오지 않는다.

다만, 국내외 기업을 떠나서 일정한 비용을 지불하고 사용하는 것이 정신건강에 이롭다는 것만 깨닫게 되었다.

 

물론, DB 스펙이나 환경에 따라 속도 측면에서는 영향을 받겠지만, UI 혹은 기능적인 측면에서 확연히 차이가 난다. 

쉽게 비교하자면 NIFI에서 만들어진 하나의 ETL 프로세스가 솔루션 기업에서 제공하는 ETL 툴에서는 단 3블록이면 끝난다.

 

하지만 툴의 성능을 떠나서 데이터 분석가로써 실무에 투입됐다면 기초 이론이나 흐름은 알아야 하므로 소박한 경험이나, 도움이 되길 바래 이렇게 포스팅 하게 되었다.

 

실무에서 ETL은 어떻게 진행되는지?

해당 그림은 ETL 과정을 하나의 그림으로 표현한 그림이다. AS-IS는 쉽게 말해 원천 데이터베이스이다. 아래 설명을 보자.

 

1. AS-IS. 즉, 원천 데이터베이스에서 필요한 테이블 정보를 추출한다.

 

2. TO-BE. 이관할 데이터베이스. 즉, 프로젝트가 시작되면서 새로 구축할 데이터베이스이다. PK나 어떤 제약조건도 없이 AS-IS 테이블을 추출하여 이관 데이터베이스에 적재한다. 이곳에 적재된 데이터 영역을 ODS라고 한다.

 

3. 이관된 테이블들은 모델링에 따라 FACT 테이블과 DIMENSION테이블로 나뉘게 된다. 이 때는 모델링에 따라 제약조건들이 추가된다. 

 

4. 구축된 FACT와 DIMENSION 테이블들을 요구사항에 맞춰 모델링하고 개발하여 MART테이블을 구성한다.

 

5. 구성된 MART 테이블들은 BI툴을 이용해 다양한 시각화로 표현하여 비즈니스에 적용한다.

 

필자는 이정도만 알아도 ETL 프로세스를 이해하는데 충분하다고는 생각하나, 사이트마다 그 성격이 다르기 때문에 자격증 취득과 병행하여 공부하는 것도 좋을 것 같다.