어제보다 더 나은 나

ETL / ETCL / ELT / CDC 본문

데이터분석 공부/대용량데이터 처리

ETL / ETCL / ELT / CDC

확인해볼까 2022. 8. 9. 18:45

* ETL (Extract : 추출, Transform : 변환, Load : 적재)

  • 추출, 변환, 적재(extract, transform, load, ETL)는 컴퓨팅에서 데이터베이스 이용의 한 과정으로 특히 데이터 웨어하우스에 사용
  • 동일 기종 또는 타 기종의 데이터 소스로부터 데이터를 추출함
  • 조회 또는 분석을 목적으로 적절한 포맷이나 구조로 데이터를 저장하기 위해 데이터를 변환함
  • • 최종 대상으로 변환 데이터를 최종 대상 적재함 (데이터베이스, 데이터 마트, 데이터 웨어하우스)

 

* ETL의 장단점

  • 자원(데이터 보관 인프라)의 효율적 사용
  • Compliance 이슈 해결
  • 오랜기간 발전된 강력한 도구들
  • Disk 기반의 성능 문제 (속도 느림)
  • 잦은 관리 필요
  • 높은 수정 비용

 

* ETL Flow

소스시스템 (DBMS, XML,CSV 파일, Hadoop) -> 데이터 추출 -> 데이터 변환 -> 데이터 정렬 -> 파일 분할 -> SQL 호출 -> JOIN -> 데이터 적재 -> 타겟시스템 (DBMS, XML,CSV 파일, Hadoop) 

 

실질적으로 ETL 시스템에서는 모든 작업들이 서버엔진의 레퍼지토리에 저장이 됨으로써 이력관리, 로그관리 등을 알 수가 있는 솔루션

 


* ETCL

  • '클린징' 이라는 부분을 추가한 것
  • ETL을 작업할 때, 데이터의 품질이 좋지 않으면 문제가 되기에 발전된 것

* ELT

  • ETL과 달리 데이터를 추출한 이후에 변환없이 그대로 저장한 후 원하는 방식으로 변환/분석하는 방식
  • 모든 데이터를 저장한 후에 다양한 목적에 따라 원하는 변환을 쉽게 가능

(cf. ETL의 경우, 새로운 분석 요건이 생기면 ETL의 Transformation(변환) 기능을 반드시 수정해야 가능한 구조)

 

 

* ELT의 등장 이유

  • 과거에는 테라 데이터였지만 최근에는 헥사 데이터, 페타 데이터가 됨. (데이터량 증가)
  • 최근 AI의 도입이 증가하면서 많은 기업이 데이터 분석가를 양성하며 분석에 필요한 다양한 데이터를 제공함
  • 기존 ETL을 도입한 기업들은 분석가들이 원하는 데이터가 변경될 때마다 새로운 Transformation을 개발하여 적용하는데 많은 시간이 소요됨.
  • Public Cloud Service에서는 Cloud DW라는 서비스로 접근 (모든 데이터를 클라우드에 올려놓고 처리하고 변환하는 방식)

 

 

* ELT가 가능하게 하는 기술

  • 제약 없는 스토리지 및 컴퓨팅 리소스 활용 (Cloud 기반)
  • 데이터 저장 공간에 제약이 없게 되고 어떤 데이터라도 충분한 컴퓨팅 자원을 통해서 쉽게 조회가 가능한 환경을 제공
  • 기존에는 처리할 수 없었던 비정형, 대용량 데이터 처리가 가능한 기술(Hadoop, Spark 등)의 등장으로 저장 후에 모든 작업이 가능함.

 

* ELT의 장단점

  • 빠른 데이터 전송 (Extraction & Loading)
  • 낮은 데이터 처리 비용
  • 낮은 운영비용
  • 높은 유연성
  • 보안 이슈
  • Compliance 이슈
  • Overgeneralization (과도한 일반화) : 모든 데이터를 다 가져오기 때문에 일반화 X
  • 조회 속도 (latency) 늦음

 

* ETL VS ELT

  ETL ELT
프로세스 추출 변환 적재 추출 적재 변환
자료구조 전처리된 데이터 / 데이터 웨어하우스 지원 원천 데이터(Raw Data) / 데이터 레이크 지원
접근성 변경하기 쉽지 않고 비용도 많이 소요 접근성 높고 신속한 업데이트
사용자 비즈니스 현업 전문가 데이터 과학자
시스템의 데이터 가용성 데이터 웨어하우스 및 ETL 프로세스를 생성할 때 필요하다고 결정한 데이터만 변환하고 로드함 모든 데이터를 즉시 로드할 수 있으며 사용자는 나중에 변환 및 분석할 데이터를 결정할 수 있음
데이터 지원 관계형 SQL 기반 구조 정형, 비정형 등 모든 데이터 유형을 수집
데이터 크기 소량의 데이터로 정교한 데이터 변환에 사용 대용량 데이터에 사용
정보 로드 대기 시간  • 적재 후 데이터 변환에 다소 시간이 걸리며, ELT보다 느림

• 데이터가 로드되면 정보 분석이 ELT보다 빠름
• 변환을 기다릴 필요가 없고 데이터가 대상 데이터 시스템에 한 번만 로드되기 때문에 데이터를 빠르게 처리할 수 있음

• 정보 분석은 ETL보다 느림
유지보수 프로세스의 지속적인 유지 관리가 필요 클라우드 기반이며 자동화된 솔루션을 통합하므로 유지 관리가 거의 필요가 없음

 

 

* ETL 사용 사례

  • ETL 프로세스는 대상의 기존 데이터에 맞게 변환하고 정교한 데이터 변환을 수행하여 정밀도를 높일 수 있음.
  • ETL 프로세스는 새 데이터를 기존 데이터와 결합하여 보고를 최신 상태로 유지하거나, 기존 데이터에 대한 추가 인사이트를 제공할 수 있음.

 

* ELT 사용 사례

  • ELT는 구조화된 데이터와 구조화되지 않은 데이터의 방대한 양에서 가장 잘 작동 (클라우드 기반으로 하면 엄청난 양의 데이터를 빠르게 처리가 가능)
  • ETL을 사용하면 대부분의 전처리가 데이터가 웨어하우스에 도착하기 전에 파이프라인에 있는 동안 발생
  • ELT는 데이터가 이미 데이터 레이크에 도착하면 작업을 수행.

 


* CDC (Change Data Capture)

  • 데이터가 바뀔 때마다 적시성으로 가져오는 방식을 처리
  • (변경된 소스 데이터만 식별 및 캡처하고 해당 데이터를 대상 시스템으로 이동시킴
  • ETL "추출" 단계에서 필요한 리소스를 줄이는 데 사용
  • 데이터 레이크 또는 다른 리포지토리로 변환된 데이터를 실시간으로 이동하는 데 독립적으로 사용할 수도 있음.
  • 운영중인 시스템에 부하를 주지 않고 실시간 전달
  • 데이터 변경 사항이 기록된 로그만을 전송

 

 

* CDC의 특징

  • 운영중인 시스템에 부하를 주지 않고 실시간 전달
  • 다이나믹 웨어하우싱, BI, 레포팅을 위한 분석 지원
  • 타임스탬프 기록이나 테이블 구조 변경이 필요 없음
  • 데이터 변경 사항이 기록된 로그만을 전송

 

* CDC Flow

[출처] https://blog.naver.com/stjdsmtjs/221644127400

 

소스시스템에서 타겟시스템으로 데이터를 넘겨줌.

(데이터는 하나의 시스템에 있지 않고 계속해서 시스템들 사이를 넘어감)

 

DB에서 데이터가 어떻게 변화됬는지를 로그가 남겨진 데이터에 대해서 변화된 데이터들을 캡쳐

캡쳐한 데이터들을 가지고 있다가 Network를 통해 Target으로 전송 후 적재

 

 

* CDC 도입 시 고려사항

유의사항 설명
No Logging 트랜젝션 대응 성능 향상을 위한 No-Logging 처리 시 전체 데이터 재 동기화가 효율적임
대량 데이터 처리 성능 동기화 지연 발생으로 갱신주기별 분리 수용
테이블 구조의 변경 연계 스키마 변경 오류 대응
암호화 데이터 처리 복호화 필요성 고려
Supplemental Log 설정 설정 변경 시 REDO Log의 길이 증가(영향도 확인)
양방향 동기화 동일 테이블에 대한 주의

[출처] https://blog.naver.com/stjdsmtjs/221644127400

 

 

 


* EAI 

  • 기업 정보시스템들의 데이터를 연계, 통합하는 소프트웨어/정보시스템 아키텍처 프레임워크
  • Hub and spoke 방식

 

 

* Hub and spoke 방식

  • 미들웨어(Hub)를 이용하는 일반적인 방식의 EAI
  • 데이터가 거점으로 집중된 후 다시 개별지점으로 이동하는 방법
  • 허브를 채용하여 유지 보수에 뛰어나지만 허브에 이상이 생기면 전체 기능에 장애가 생김

 

 

* EAI  활용 시 기대효과

  • 향후 정보시스템 개발/운영 비용 절감
  • 정보시스템의 지속적 발전 기반 확보
  • 인터넷 비즈니스를 위한 기본 토대
Comments