이제 ELT와 ETL에 대해서 공부한 것들을 정리한다.
DW와 Data Lake에서 사용되는 ETL과 ELT에 대해서 알아보자
간단한 정의부터 알아보자.
먼저 ETL이다.
ETL은 Extract, Transform and Load로 추출, 변형, 저장(적재)로 볼 수 있고
ETL tool은 각기 다른 RDBMS 시스템으로부터 데이터를 불러오고, 이 데이터들을 변형하여 DW 시스템에 적재한다.
ELT는 데이터 이동에 대한 툴의 접근에 대한 관점을 다르게 본 것으로,
ETL의 순서가 변형되어 Extract, Load and Transform으로 추출, 적재, 변형으로 볼 수 있다.
기존 ETL처럼 데이터를 쓰기 전에 먼저 변형하는 것 대신에, ELT는 타겟 시스템이 데이터의 변형을 할 수 있게 해준다.
즉, 툴이 직접 데이터의 변형을 할 수 있는 것이다.
ELT는 보통 Hadoop Cluster와 같은 No SQL DB를 사용하는데, 클라우드에 설치한다.
간단한 정의를 알아봤으니 비교를 통해 무엇이 다른지 알아보자
ETL | ELT | |
---|---|---|
프로세스 | staging server에서 데이터를 변형하고 DW의 DB에 옮김 | DW의 DB에 데이터가 남음 |
코드 사용 | Compute-intensive 변형, 적은 양의 데이터 | 대용량 데이터 |
변형 | ETL 서버나 staging 영역에서 완료 | target system에서 실행 |
적재 시간 | 데이터가 staging에 먼저 적재되고 나중에 target system에 적재됨. 시간에 민감 | target system에 한번만 로드됨. 빠름 |
변형 시간 | 데이터 변형이 완료될 때까지 기다려야됨. 데이터 사이즈가 커질수록, 변형에 들어가는 시간이 증가함 | 데이터 사이즈와 시간은 관계가 없음 |
유지보수 시간 | 높은 수준의 유지보수가 요구되고, 적재하고 변형할 데이터를 선택해야 됨 | 낮은 수준의 유지보수가 요구되며, 데이터는 모두 사용할 수 있음 |
구현 복잡도 | 초기 영역에서는 구현이 쉬움 | 프로세스를 구현하기 위해서는 이에 대한 숙련된 기술과 툴에 대한 깊은 이해가 요구됨 |
DW를 위한 지원 | 온프라미스 환경에 관계형이고 정형 데이터에 사용됨 | 확장가능한 클라우드 환경에서 사용되며 정형데이터와 비정형 데이터를 지원 |
Data Lake 지원 | 지원하지 않음 | 데이터 레이크가 비정형 데이터를 사용하게 해줌 |
복잡도 | 설계를 하는 시점에 중요한 데이터들만 적재 | output backward와 관련있는 데이터에의 개발에만 관련 |
비용 | 작은 규모와 중간 규모의 비지니스에 높은 비용 | 온라인 소프트웨어를 서비스 플랫폼으로 사용하여 진입 비용 절감 |
검색 | staging 영역에 facts와 dimensions이 활성화되어 있어야 됨 | 모든 데이터가 활성화되어 있어야 됨. 1개의 action에서 추출과 적재가 일어나기 때문 |
Aggregation | 데이터셋에서 추가되는 데이터 단위마다 복잡도 증가 | target platform의 힘으로 중요 단위 데이터를 빠르게 처리 |
계산 | 기존 column을 덮어쓰거나 데이터셋을 추가하고 target paltform에 push | 존재하는 테이블에 계산된 column을 쉽게 추가 |
성숙도 | 20년이상 사용되었으며, 문서나 best practice를 쉽게 사용 | 새로운 컨셉과 복잡한 구현 |
하드웨어 | 대부분의 툴이 유니크한 하드웨어를 요구하고 가격이 비쌈 | SAAS 형태의 하드웨어로 가격은 이슈가 안됨 |
비정형 데이터 지원 | 대부분의 관계형 데이터 지원 | 비정형 데이터를 즉시 지원 |
간단하게 ETL와 ELT 그리고 둘의 차이점에 대해 알아봤다.