Data Pipeline

Sieun·2023년 2월 4일
1

Data Engineering

목록 보기
1/4
post-thumbnail

데이터 파이프라인이란

  • 데이터 파이프라인: 다양한 소스에서 데이터를 변환하고 옮기는 일련의 과정을 구성한 시스템

데이터 파이프라인은 다양한 데이터 소스에서 원시 데이터를 수집한 다음 분석을 위해 데이터 레이크 또는 데이터 웨어하우스와 같은 데이터 저장소로 이전하는 방법이다. 일반적으로 데이터는 데이터 저장소로 이동하기 전에 데이터 처리 과정을 거친다. 여기에는 적절한 데이터 통합과 표준화를 보장하는 필터링, 마스킹, 집계와 같은 데이터 변환이 포함된다. 이 과정은 데이터 셋의 대상이 관계형 데이터베이스인 경우 특히 중요하다.

  • 데이터 파이프라인이 필요한 이유: 데이터 파이프라인을 구성함으로써 데이터 기반의 의사결정을 지원할 수 있을 뿐만 아니라 데이터 기반의 애플리케이션을 개발하는 데에도 큰 도움이 된다. 그리고 이러한 데이터 파이프라인은 '빅데이터 아키텍처' 설계에 기반하여 구축된다.

  • 데이터 엔지니어: 데이터 파이프라인을 구축하는 직무


데이터 파이프라인 유형

데이터 파이프라인에는 일괄 처리(batch processing)와 스트리밍 데이터(streaming data)의 두 가지 주요 유형이 있다.

일괄 처리(batch processing)

일괄 처리의 개발은 안정적이고 확장 가능한 데이터 인프라를 구축하는 데 중요한 단계였다. 2004년 일괄 처리 알고리즘인 MapReduce는 특허 등록 후 Hadoop, CouchDB, MongoDB와 같은 오픈 소스 시스템에 통합되었다.

이름에서 알 수 있듯이 일괄 처리는 미리 설정된 시간 간격 동안 저장소에 데이터의 "묶음(batch)"을 로드하며, 일반적으로 사용량이 적은 업무 시간에 예약된다. 이렇게 하면 대용량 데이터에 대한 작업으로 전체 시스템에 부담을 줄 수 있는 일괄 처리 작업이 다른 워크로드에 미치는 영향을 최소화할 수 있다.
일괄 처리는 보통 특정 데이터 세트(예: 월별 회계)를 즉시 분석할 필요가 없을 때 최적의 데이터 파이프라인이며, "추출, 변환, 로드"를 의미하는 ETL 데이터 통합 프로세스와 더 관련이 있다.

일괄 처리 작업은 한 명령의 출력이 다른 명령의 입력이 되는 시퀀싱된 명령의 워크플로우를 형성한다. 예를 들어 한 명령이 데이터 수집을 시작하면 다음 명령이 특정 열의 필터링을 트리거하고 그 다음 명령은 집계를 처리할 수 있다. 이 일련의 명령은 데이터가 완전히 변환되어 데이터 저장소에 기록될 때까지 계속된다.

스트리밍 데이터

일괄 처리와 달리, 스트리밍 데이터는 데이터를 지속적으로 업데이트해야 할 때 활용된다. 예를 들어 앱이나 POS(Point of Sale) 시스템은 제품의 재고와 판매 내역을 업데이트하기 위해 실시간 데이터가 필요하다. 그래야 판매자가 제품의 재고 여부를 소비자에게 알릴 수 있습니다. 제품 판매와 같은 단일 작업은 "이벤트"로 간주되고 결제에 항목 추가와 같은 관련 이벤트는 일반적으로 "토픽" 또는 "스트림"으로 함께 그룹화된다. 그런 다음 이러한 이벤트는 오픈 소스 오퍼링인 Apache Kafka와 같은 메시징 시스템 또는 메시지 브로커를 통해 전송된다.

데이터 이벤트는 발생한 직후에 처리되기 때문에 스트리밍 처리 시스템의 지연 시간이 배치 시스템보다 짧지만, 메시지가 의도치 않게 삭제되거나 대기열에서 오래 대기할 수 있으므로 일괄 처리만큼 안정적인 것으로 간주되지 않는다. 메시지 브로커는 수신 확인을 통해 이 문제를 해결하도록 도움을 주는데, 여기서 이용자는 메시지 처리를 브로커에 확인시켜 대기열에서 메시지를 제거한다.


E, T, L이란?

  • E/Extract(추출): 원본 데이터베이스 또는 데이터 소스에서 데이터를 가져오는 것을 말한다. ETL을 사용하면 데이터가 임시 스테이징 영역으로 들어가고, ELT를 사용하면 즉시 데이터가 Lake 스토리지 시스템으로 이동한다.
  • T/Transform(변환): 데이터의 구조를 변경하는 프로세스를 의미한다. 용도에 맞는 필터링, Resahping, 정재 등의 단계를 통해 필요한 형태로 변환한다.
  • L/Load(적재): 데이터를 스토리지에 저장하는 프로세스를 의미한다.

ELT / ETL를 진행하는 이유

데이터를 담고 있는 소스는 호환되는 형식으로 저장되어있지 않기 때문에 본 과정이 필요하다. 따라서 데이터를 분석 가능한 데이터로 통합하기 전에 Raw 데이터를 정리하고, 많은 정보를 담을 수 있도록 변환해야 한다. 변환한 후에 비로소 분석 도구나 플랫폼을 이용해 데이터가 담는 의미를 파악하고 통찰력을 얻을 수 있다.


ETL과 ELT의 차이점

  • ETL: 추출(E) → 변환(T) → 적재(L) 순으로 데이터를 처리하는 프로세스
  • ELT: 추출(E) → 적재(L) → 변환(T) 순으로 데이터를 처리하는 프로세스

ETL은 데이터 스테이징 단계가 소스와 데이터 웨어 하우스 사이에 있다. ELT는 데이터 웨어하우스를 활용하여 기본 변환을 수행하며, 데이터 스테이징이 필요하지 않다.
ETL은 데이터 웨어 하우스에 로드하기 전, 중요 보안 데이터를 처리하여 개인정보 보호 규정을 준수 지원할 수 있다.(실제로 큰 이슈이다. 해싱된 데이터 또한 개인정보 활용 동의 파기 시 활용할 수 없는데 ELT에서는 처리가 곤란하다.)
ETL은 정교한 데이터 변환을 수행할 수 있고, ELT보다 비용 효율적이다.


ETL

ETL의 특징

  • 워크플로우가 잘 정의되어 있어야 하며 연속적이고 지속적인 프로세스를 가진다.
    : ETL은 동종 또는 이종의 데이터 소스에서 데이터를 추출하여, 스테이징 영역에 임시 보관한다. 그 영역에서 데이터는 필터링, Reshaping 등의 프로세스를 거치고 마지막으로 데이터 웨어 하우스에 저장된다.

  • 데이터 엔지니어 및 개발자의 상세 계획, 감독 및 코딩이 필요하다.

  • 최신 ETL 솔루션은 쉽고 빠르다.
    : 특히 클라우드 기반 데이터 웨어하우스 및 클라우드 기반 SaaS 플랫폼의 경우 ETL이 훨씬 더 빠르게 실행된다. Xplentity와 같은 클라우드 기반 ETL 솔루션을 사용하면 프로그래밍 전문 지식이 없어도 다양한 소스에서 데이터를 즉시 추출, 변환, 적재할 수 있다.

+) OLAP 데이터 웨어하우스는 관계형 SQL 기반 데이터 구조를 지원한다. 그러므로 NoSQL 기반(혹은 관계형 SQL 기반 데이터가 아닌)의 데이터는 OLAP 데이터 웨어하우스에 삽입되기 전 무조건 변환되어야만 한다. 이러한 데이터 변환 프로세스의 일부로, 상관관계에 있는 정보를 기반으로 여러 데이터 소스를 결합하는 데이터 매핑이 필요할 수도 있다. 따라서 데이터 웨어하우스는 ETL이 필요하다. Load 단계 이전에 무조건 변환이 완료되어야 하기 때문이다.

OLAP(On-Line Analytical Processing)은 데이터웨어하우스 활용 수단의 통칭인 BI(Business Intelligence)의 한 분야로 최종 사용자가 정보에 직접 접근해 대화식으로 정보를 분석하고 의사결정에 활용하는 과정을 말한다.
반면 OLTP(On-Line Transaction Processing)는 효율적인 기업 운영을 지원하기 위해 트랜잭션처리 정보을 수집하고 분류 저장 유지보수 갱신 검색하는 기능을 수행하는 실시간 거래 처리 시스템으로 기업의 본연 업무를 지원하는 기간시스템이다.

현재 항공사의 예약시스템이나 은행의 창구업무시스템 등이 대표적인 OLTP에 해당된다.
OLTP 시스템으로부터 필요한 데이터를 추출 수정 요약해서 의사결정을 지원할 수 있는 데이터베이스를 만든 것이 데이터 웨어하우스이고 이에 접근해 데이터를 분석하고 의사결정에 활용하는 방법이 OLAP이다.
따라서 OLAP은 OLTP와 대비되는 개념이라기보다는 OLTP를 활용하는 방법이라 할 수 있다.


ETL의 대표적인 장점

ELT에 비해 ETL의 가장 큰 장점 중 하나는 OLAP 데이터 웨어하우스의 특성과 관련이 있다. 데이터를 구조화/변환한 후 ETL을 통해 보다 효율적이며 안정적인 데이터 분석이 가능하다.
이와는 대조적으로, ELT는 빠른 분석이 필요할 때는 이상적인 방법이 아니다.
또 다른 ETL의 장점은 보안 규정 준수와 관련이 있다. 로그 데이터에서 발생한 고객의 프라이버시 데이터는 특정 필드를 제거하거나 암호화해야 한다. ETL은 데이터를 데이터 웨어하우스에 넣기 전에 변환하기 때문에, 보안 규정 위반 위험성을 줄여준다. 이와는 반대로 ELT는 개인정보와 관련된 중요한 데이터를 변환하기 전에 먼저 적재해야 한다. 이로 인해 보안 규정을 위반할 수 있다.
마지막으로, 데이터 integration/transfroamtion 프로세스로서 ETL은 20년 넘는 기술 스택을 쌓아왔고, 이는 ETL을 진행하기 위해서 잘 개발된 도구와 플랫폼이 많이 있다는 것을 의미한다. 또한, ETL 파이프라인 구축에 숙련되고 경험이 풍부한 데이터 엔지니어가 많다는 뜻이기도 하다.


ELT

ELT란 데이터를 먼저 추출 적재한 이후 변환을 하는 프로세스를 의미한다. ELT에서는 데이터 웨어하우스에서 데이터 변환이 일어난다. 즉, 데이터 스테이징이 필요하지 않다.
ELT는 클라우드 기반 데이터 웨어 하우스 솔루션을 사용하여 정형, 비정형, 반정형(semi-structured) 데이터 유형의 모든 데이터 타입을 활용할 수 있다.

ELT는 데이터 레이크(Data Lakes)에서 동작한다. Data Lakes란 OLAP 데이터 웨어하우스와 달리 정형, 비정형 데이터 모두를 수용하는 특별한 종류의 데이터 저장소이다. 데이터를 로드하기 전에 데이터를 변환할 필요가 없다. 형식이나 데이터 종류에 관계없이 모든 유형을 Raw 데이터 형태로 적재할 수 있다.

하지만 여전히 BI(Business intellgence) 플랫폼을 이용해 분석하기 위해서는 데이터 변환이 필요하다. 그래서 데이터 변환 과정은 데이터 레이크에 적재된 후에 수행된다.


ELT의 특징

  • 기술의 발전 덕분에 가능해진 고속 클라우드 서버 기반 프로세스이다.
    : ELT는 최신 클라우드 기반 기술 덕분에 가능해진 비교적 새로운 기술이다. 클라우드 기반 데이터 웨어하우스는 거의 무제한에 가까운 스토리지 기능과 확장 가능한 처리 능력을 제공한다. Amazon Redshift와 Google BigQuery와 같은 플랫폼은 엄청난 처리 능력 덕분에 ELT 파이프라인을 가능하게 한다.

  • 모든 데이터를 수집 가능하다.
    : ELT를 사용하면 지속적으로 확장되는 Raw 데이터를 즉시 수집 가능하다. 데이터를 데이터 레이크에 저장하기 전에 데이터를 특수한 형태로 변환할 필요가 없다.

  • 필요한 데이터만 변환한다.
    : ELT는 특정 분석에 필요한 데이터만 변환한다. 데이터 분석 프로세스가 느려질 수 있지만, 다양한 방식으로 즉시 변환하여 다양한 유형의 메트릭, 예측 및 보고서를 생성할 수 있기 때문에 유연성이 향상된다. 반대로 ETL의 경우 OLAP 웨어하우스 전체 ETL 파이프 라인 및 데이터 구조에서 새로운 유형의 분석이 허용되지 않는 경우 전체 프로세스를 수정해야 할 필요할 수 있다.

  • ELT는 ETL보다 신뢰성이 낮다.
    : ELT의 툴과 시스템은 여전히 발전하고 있고, OLAP 데이터베이스와 결합된 ETL만큼 안정적이지는 않다. 또한 ELT 기술을 사용할 줄 아는 개발자는 ETL 개발자보다 찾기가 더 어렵다.


ELT의 대표적인 장점

ETL에 비해 ELT의 주요 이점은 새로운 비정형 데이터에 대한 유연성 및 저장 용이성과 관련이 있다.
ELT를 사용하면 먼저 정보를 변환하고 구성할 시간이나 기능이 없어도 모든 유형의 정보를 저장할 수 있으므로 원하는 경우 언제든지 모든 정보에 즉시 액세스 할 수 있다. 또한 데이터를 수집하기 전에 복잡한 ETL 프로세스를 개발할 필요가 없으며, 개발자와 BI 분석가가 새로운 정보를 처리하는데 소요되는 시간을 절약할 수 있다.

ELT를 사용할 때의 베네핏은 다음과 같다.

  • 빠르다 - 데이터 가용성에 있어서는 ELT가 더 빠른 옵션이다. ELT는 모든 데이터를 즉시 시스템으로 전송할 수 있도록 하며, 거기서 사용자는 변환과 분석에 필요한 데이터를 스스로 결정할 수 있다.
  • 유지 보수 비용이 낮다 - ELT를 사용하면 일반적으로 손이 많이 가는 유지 관리 계획을 수립할 필요가 없다. ELT는 클라우드 기반이므로 사용자가 수동 업데이트를 시작하지 않고 자동화된 솔루션을 활용한다.
  • 짧은 적재(Load) 시간 - 변환 단계는 데이터 웨어하우스에 진입한 후에 발생하기 때문에, 데이터를 최종 위치에 로드하는데 걸리는 시간을 줄입니다. 데이터가 정리되거나 수정될 때까지 기다릴 필요가 없으며, 한 번만 이동하면 된다.

그렇다면 언제 ELT를 사용할까?

  • 방대한 양의 데이터를 보유했을 경우
    ELT는 정형 데이터와 비정형 데이터 모두에서 잘 작동한다. 시스템이 클라우드 기반인 한 ELT 프로세스를 통해 방대한 양의 데이터를 보다 신속하게 처리할 수 있다.
  • 가능한 한 빨리 모든 데이터를 한 곳에 보관해야 할 경우
    프로세스가 종료될 때 ELT는 전송 속도를 다른 모든 데이터보다 우선시한다.
  • 데이터를 처리할 수 있는 리소스를 가지지 못했을 경우
    ETL를 사용하면 데이터 웨어하우스에 도착하기 전 파이프라인에서 데이터 변환이 일어나야 한다. 이때 요구되는 리소스는 상황에 따라 매우 클 수가 있는데, ELT 방식을 이용하면 추후 필요 데이터만 변환함으로써 경제적 유연성을 갖출 수 있다.

참고문헌
https://www.ibm.com/kr-ko/topics/data-pipeline
https://nephtyws.github.io/story/what-is-data-engineer/
https://data-scientist-brian-kim.tistory.com/93
https://maily.so/grabnews/posts/ecaebe
https://dining-developer.tistory.com/50
https://brunch.co.kr/@qqplot/27

profile
안녕하세요. 주니어 개발자 최시은입니다👩🏻‍💻

0개의 댓글