suyeonme

데이터 파이프라인이란? 본문

프로그래밍👩🏻‍💻/기타

데이터 파이프라인이란?

suyeonme 2024. 7. 12. 10:54

데이터 파이프라인

Raw 데이터를 정보(information)로 변환하기 위해 데이터 처리 단계를 거치는 시스템을 의미한다.

 

https://www.altexsoft.com/media/2020/03/etl_pipeline.png

일반적으로 아래의 과정으로 나타낼 수 있다.

  1. 데이터 수집(Ingestion): 다양한 형식의 raw 데이터를 수집하고 파이프라인으로 가져오는 단계
  2. 데이터 처리(Processing): 수집된 데이터를 정제, 변환, 집계, 필터링등 필요한 형태로 가공하는 단계로, ETL(Extract, Transform, Load) 또는 ELT(Extract, Load, Transform)등의 과정을 포함한다.
  3. 데이터 저장(Storage): 처리된 데이터를 저장하는 단계로, 데이터베이스, 데이터 웨어하우스, 데이터 레이크등의 저장소에 저장한다.
  4. 데이터 분석(Analysis): 저장된 데이터를 분석하여 인사이트를 도출하는 단계로, 데이터 시각화도구, 통계 분석, 머신러닝등을 사용한다.
  5. 데이터 소비(Consumption): 분석된 데이터를 사용자나 시스템이 최정적으로 활용하는 단계로, 보고서, 대시보드, 애플리케이션, API등을 통해서 데이터를 제공한다.

데이터 파이프라인 관리 도구

데이터 파이프라인을 효율적으로 관리하는데 사용되는 주요 도구들을 정리해봤다.

CDC, Change Data Capture

데이터베이스에서 발생하는 변경사항을 캡쳐해서 다른 시스템에 실시간으로 적용하는 기술로, 데이터를 실시간으로 동기화하는데 사용된다. 

  • 데이터베이스의 변경사항을 실시간으로 분석 시스템으로 전송, 실시간 데이터 스트리밍
  • Kafka 기반의 Debezium, DMS(Amazon Database Migration Service), Oracle GoldenGate등

Airflow (Apache)

복잡한 데이터 파이프라인을 정의하고, 스케줄링하며, 모니터링할 수 있는 워크플로우 관리 플랫폼이다.

DAG(Directed Acyclic Graph)를 사용하여 작업의 의존성을 정의한다.

  • 데이터 파이프라인의 오케스트레이션, 스케줄링 및 모니터링
  • ETL(Extract, Transform, Load) 파이프라인 관리, 데이터 처리 워크플로우 자동화

DAG(Directed Acyclic Graph)란?

DAG is a collection of all the tasks you want to run, organized in a way that reflects their relationships and dependencies.

 

Airflow의 DAG

Google BigQuery

Google Cloud Platform에서 제공하는 데이터 웨어하우스(Data Warehouse)로, 대규모 데이터 분석과 실시간 데이터 쿼리에 최적화되어있다.

 

데이터 웨어하우스(Data Warehouse)란?

다양한 소스에서 수집한 대량의 데이터를 저장하고 분석하는 데 최적화된 중앙 저장소이다. 주로 데이터 분석 분야에서 많이 사용된다.

  • 실시간 데이터 분석, SQL 지원, 분산 처리 아키텍쳐로 높은 성능 제공, 데이터 로딩 및 내보내기(CSV, JSON등)

Superset  (Apache)

다양한 데이터 소스에서 데이터를 가져와 시각화 대시보드를 만들고 공유해주는 데이터 시각화 도구이다.

  • 데이터 분석 결과 시각화

https://superset.apache.org/

Spark (Apache)

대규모 데이터를 효율적으로 처리하고 다양한 데이터 소스와 통합할 수 있는 기능을 제공하는, 빅 데이터 처리를 위한 분산 처리 프레임워크이다. 메모리 내에서 데이터를 처리하여 디스크 기반 처리보다 빠르다.

  • 대규모 로그 파일, 이벤트 데이터, 데이터 웨어하우스 데이터 등을 분산 처리하여 집계 및 분석 (웹 로그 분석, 대규모 트랜잭션 데이터 처리), 실시간 데이터 처리, 머신러닝

Celery

분산 작업 큐 시스템으로, 비동기 작업을 예약하고, 큐에 넣고, 작업을 처리한다. 주로 백엔드에서 긴 시간 동안 실행되는 작업을 비동기적으로 처리할 때 사용한다.

  • 데이터 파이프라인의 특정 작업을 병렬로 실행, 데이터 갱신

각 도구가 사용되는 흐름은 아래와 같이 생각해볼 수 있다.

  1. 운영 데이터베이스에 데이터 저장
  2. 운영 데이터베이스의 변경사항을 CDC로 캡쳐
  3. CDC로 캡쳐한 데이터를 Airflow가 BigQuery에 적재
  4. BigQuery의 데이터를 Superset으로 시각화 및 분석

 

 

Comments