ETL

snooby·2022년 11월 17일
1
post-thumbnail

ETL이란

ETL은 Extract, Transfron, Load의 약자로 여러 시스템의 데이터를 단일 데이터베이스, 데이터 저장소, 데이터 웨어하우스 또는 데이터 레이크에 결합하기 위해 일반적으로 사용되는 방법입니다.

1. Extract

DB에서 SQL을 통해 데이터를 가져오는 것이다.

2. Transfron

원래의 source로부터 추출된 data와 원하는 data 구성 및 형태를 연결하는 Process로 rule, lookup table, data 결합 및 재구성을 사용합니다.

3. Load

target database에 data를 저장하는 process입니다.

ETL vs ELT

ETL은 위에서 설명을 통해 알게되었다.
그렇다면 ELT는 뭘까 각 요소를 알았으니 순서가 바뀐거라는 것은 알것이다.

쉽게 설명하자면, ETL은 하나의 데이터 소스에서 어떤 데이터를 가지고 원하는 포맷으로 바꾸고 DW에 테이블로 로딩하는 작업이라면 ELT는 하나의 데이터 소스에서 어떤 데이터르 읽어서 변형없이 고대로 데이터 레이크에 복사하고 데이터 레이크 중에서 의미있고 최신의 데이터만 원하는 포맷으로 바꿔서 사용하는 것이다.

요즘 ELT로 바뀌고 있다는 말도 있다.
데이터가 워낙 방대하다 보니 Transform에도 시간이 오래 걸려 ETL의 한계가 보이고 실시간 대규모 데이터 감당이 어렵다 보니 우선 다 저장하고 이 데이터 중에 일부만 용도에 따라 데이터 웨어하우스로 가져다가 쓴다는 것이다.
그리고 리소스 가격들도 많이 인하되어서 가격이 낮아졌으니 전부 다 저장하자 이런 생각도 있다고 합니다.

Data Warehouse vs Data Lake

  • Data Warehouse
    어느 정도 가치있고 구조화된 데이터들이 모여있는 곳이다.
    다만 공간의 제약이 있기에 모든 데이터를 저장하진 않고 어느정도 최신의 데이터만 저장한다.
    BI툴과 연결하여 시각화에 많이 사용된다.

  • Data Lake
    데이터 웨어하우스 기반 파이프라인보다 훨씬 더 큰 개념으로 구조화된 데이터도 있지만 비구조화된 데이터들도 존재하며 DW보다 용량도 크고 비용이 저렴해서 모든 데이터를 저장하는 데 사용됩니다.

    데이터 레이크가 있으면 다양한 종류의 raw data가 시간 제약없이 들어있기에 데이터 모델링하는 사람 관점에서 원하는 feature들을 데이터 레이크에서 찾아 사용할 수 있습니다.

    무튼 이러한 ETL에 많이 쓰이는 툴이 Airflow입니다.
    제가 일전에 Airflow 스터디를 하며 잘 정리해둔 자료가 있는데요. 여기를 참조해주세요.

profile
DevOps 🐥

0개의 댓글