본문 바로가기
BigData/Data Engineering

[Data Pipeline] 1. batch job data pipeline의 구성과 장,단점과 정리 (비용, 고려 사항, 성능)

by 스파이디웹 2025. 4. 13.
728x90

이번 포스트에는 batch job에 사용될 수 있는 다양한 데이터파이프라인 조합과 그에 따른 장단점과 고려 사항을 정리해보겠습니다.

 

아래의 항목들이 포함한 특징을 같이 적어보겠습니다.

  • 상황별 배치 파이프라인 구성
  • 장단점
  • 조직의 규모 및 구성
  • 비용
  • 확장성
  • 백업, 모니터

1. 각 데이터 파이프라인의 구성

흔히 말하는 E(Extract), T(Transform), L(Load) 하는 소스며, 프레임워크며, 저장 장소가 정말 다양하고 비용과 성능 그리고 필요한 비지니스 요건에 따라 달라집니다. 우선 그 종류에 대해서 파악해보고 장단점을 하나씩 확인해보겠습니다.

1) 다양한 소스의 구성

소스 특징 / 설명 예시
RDBMS 구조화된 정형 데이터 MySQL, PostgreSQL, Oracle, MSSQL
로그 데이터  반정형/비정형 이벤트 데이터 Web server logs, App logs
파일 기반 주기적으로 수집되는 데이터 CSV, JSON, Parquet, Excel
메시지 큐 실시간 스트리밍도 가능하나 batch 적재도 존재 Kafka, Kinesis, RabbitMQ
API 외부/내부 시스템 데이터 REST API, GraphQL
클라우드 저장소 다양한 서비스에서 내보낸 export 데이터 S3, GCS, Azure Blob Storage

2) 다양한 데이터 처리 방법

프레임워크 특징 / 설명 예시
pandas 직관적이며, 적은 데이터(수GB이내) 처리, 병렬 처리 불가 -
polars 병렬 처리가능, rust 기반, 빠르다, lazy execution -
SQL 적재 후 마트를 만드는 개념의 SQL로써 사용 가능하며, ANSI SQL이며 각 제품들의 엔진에 따른 SQL 문법이며 function도 사용 가능함 AWS Athena, AWS Redshift, GCP Bigquery, Azure Synapse
Spark 병렬 처리 가능하며, sparkSQL로 SQL지원도 가능, 대용량 데이터에 적합 AWS EMR, AWS EMR Serverless,
AWS Glue ETL, Azure Data Factory, Azure Databricks, Databricks
Hive 속도가 느린 편이며, 대용량 데이터 안전하게 처리하기에 적합, SQL과 비슷한 HiveQL을 통해 데이터를 처리 AWS EMR, AWS EMR Serverless, Azure Data Factory
dbt SQL중심의 조직인 경우 적합 -
Python Script ETL을 구현한 python script로써 비교적 자유로운 구성이 가능 -

3) 다양한 데이터 저장소

데이터 저장소 특징 / 설명 예시
Data Lake ELT 개념에서 우선 적재에 사용되는 개념, S3,Blob 같은 object storage기반으로 파일형태의 데이터를 중간 저장소로 사용 AWS S3, Azure Data Lake, GCS
Data Warehouse MPP DB로 분석을 위한 용도로 높은 쿼리 성능과 일정수준의 트랜잭션 제어 가능 GCP BigQuery, AWS Redshift, Azure synapse,SnowFlake
Hadoop(HDFS) hadoop base의 온프렘 환경의 시스템인 경우 기존의 자원을 활용하는 HDFS를 저장소로써 사용 가능 AWS EMR
NoSQL 비정형 또는 반정형 데이터, 빠른 쓰기 성능, 수평 확장성 등을 요구하는 경우에 특히 적합 MongoDB, AWS DynamoDB, Cassandra, redis, neo4j

4) 오케스트레이션 및 스케줄링 도구

도구 특징 / 설명 사용 예시
Airflow Python(코드) 기반 DAG 워크플로우 정의, 풍부한 커넥터, 시각화, 강력한 커뮤니티, 3.0버전으로 올라가면서 DAG versioning, 대규모 backfill, 다중 스케줄링, 다중 언어 지원 등 가능해짐 on-premise, cloud 환경 어디에서나 사용 가능, 복잡한 파이프라인 관
Dagster 모듈화된 파이프라인, 타입 시스템, 테스트 지원, UI 제공 데이터 품질 관리 중시 팀
Oozie Hadoop 에코시스템에 특화된 워크플로우, XML 기반 선언형 정의,UI로 의존성 설정 가능 Hadoop, Hive, Spark 등 Hadoop 기반 배치처리에 집중된 환경
AWS Glue 서버리스, AWS 통합 AWS 중심, 자동화된 ETL
Crontab 단순 스케줄링 도구, 시간 기반 트리거 조직의 규모가 작을 때, 간단한 스크립트 정기 실행, 복잡한 의존성 없을 때
Argoflow 쿠버네티스 네이티브 k8s 환경 컨테이너 파이프라인 관리
Prefect 코드 중심, 오류 처리 강화 Airflow 대안, 간단 설치 원할 때
Luigi Python 간단 파이프라인 의존성 단순한 파이프라인
KubeFlow ML 특화, k8s 기반 머신러닝 워크플로우 자동화

5) 모니터링 도구

도구 특징 / 설명
prometheus & grafana 사용자 정의 메트릭(성공/실패 카운터 등) 수집, 알림 설정 가능
Cloud managed monitoring Dashboards(CloudWatch, Stackdriver 등) 각 클라우드 서비스의 작업 상태 메트릭과 알람 제공
ELK Stack (Elasticsearch+Kibana) 로그에서 실패, 에러 탐지 및 대시보드 작성 가능

6) 분석을 위한 도구

도구 특징 / 설명 예시
AWS Athena 서버리스 제품, Presto 엔진 기반, ANSI SQL 지원, scan당 비용  
Data Warehouse 비싼 편이나, 쿼리 성능이 좋음, Redshift Specturm의 경우 scan 당 비용 AWS Redshift, GCP BigQuery, Azure synapse, SnowFlake
Presto(Trino) 정기적으로 많은 분석이 필요로 하는 경우 스캔당 비용 청구보다 예측가능한 비용이 값싸게 먹힐 수 있음 EMR 내의 Presto(Trino)지원
AWS EMR(+ notebook, zeppelin) EMR 기반의 notebook환경에서 spark 엔진을 사용하여 분석 가능 상시 EMR + zeppelin or EMR serverless + jupyter notebook
Databricks SQL 모든 쿼리는 내부적으로 모두 Spark 엔진 기반 Databricks SQL Editor (웹 기반 쿼리 에디터), Databricks Notebook

 


7) 시각화 및 대시보드

자주 쓰이는 툴

특징 추천 사용처
Redash 다양한 DB 연동, 쿼리 + 시각화 + 공유 대시보드 SQL 친숙한 분석팀, 스타트업
Apache Superset SQL 없이도 시각화, 대규모 사용자 대응 가능 오픈소스 BI, 조직 내 시각화 문화 확산
Metabase No-code 시각화 + SQL 분석 모두 지원 기술 비숙련자도 접근 가능한 BI 도구
Tableau 정교한 시각화, 슬라이싱/필터링 강력 분석 전문 조직, 경영층 보고서
Power BI Microsoft Office 연동에 강함 Excel 기반 조직, MS 환경
AWS Amazon QuickSight 서버리스 BI, Redshift/S3/Athena 연동
Databricks Databricks Dashboard Databricks SQL 기반 쿼리 시각화

상황별 맞춤 툴

상황
SQL 기반 실무자 중심 Redash, Superset, Mode
비기술자도 사용하는 조직 Metabase, Power BI
조직 전체 Self-service BI 구축 Looker, Superset
복잡한 시각화/정형 보고서 Tableau, Power BI
클라우드 중심 파이프라인 Looker Studio (GCP), QuickSight (AWS)
Databricks 환경 통합 Databricks Dashboards

8) CDC 및 데이터 정합성

CDC 지원 툴

특징 사용 시점
Debezium Kafka 기반 오픈소스 CDC 프레임워크, MySQL/PostgreSQL 등 지원 실시간 데이터 레이크 적재
AWS DMS AWS 전용 CDC 솔루션, Snapshot + CDC 동시 지원 RDS, Aurora, Redshift 등 백업/마이그레이션
AWS ZeroETL DB간 데이터 동기화 DB간 동기화가 필요할 때 사용
Oracle GoldenGate Oracle 전용 고성능 CDC 솔루션 Oracle 환경 실시간 데이터 복제

 

데이터 정합성 체크 툴

특징 용도
Great Expectations Python 기반 데이터 검증 테스트 작성 (expectations) 컬럼 범위, NULL 검사, 스키마 검증
Deequ (by AWS) Scala/Spark 기반 데이터 품질 검사 대규모 데이터 품질 Rule 검증

9) 데이터 백업 수단

  • 데이터 레이크의 파일 데이터 경우라면, S3 Tiering을 통해 Glacier, Glacier Deep Archive로 백업을 하는 것을 추천
  • 이외의 데이터베이스는 스냅샷과 같은 방법을 활용

10) 메타데이터, 데이터 거버넌스 및 데이터 리니지

분류 비고
메타데이터 DataHub, Amundsen, OpenMetadata, Collibra 데이터 검색, 문서화, 테이블 정의 관리
거버넌스 Collibra, Alation, BigID, Lake Formation 접근 제어, 정책, 인증 통제
리니지 Marquez, OpenLineage, dbt, Monte Carlo 컬럼/테이블/쿼리 수준 연계 추적

2. 배치 데이터파이프라인 조합

자주 보이는 패턴의 파이프라인 5가지 정도로 조합해서 정리 해보면 아래와 같습니다.

파이프라인 유형 장점 단점 적합 조직 비용 확장성
EMR (Spark) + Airflow + S3/Redshift 대규모 처리에 강함, 유연한 구성 운영 복잡 (인프라 관리 필요) 엔지니어링 중심의 중대형 조직 중간~높음 (자동화 설정 여부에 따라) 높음 (Auto-scaling 구성 시 유연)
Databricks All-in-One (Spark) 관리 간편, 협업 및 성능 우수, Photon 엔진 비용 높음, 클라우드 종속성 ML/데이터 협업 조직 높음 (편의성+성능 대가) 매우 높음 (클러스터/워크스페이스 기반 수평 확장)
DBT + Airflow + BigQuery SQL 기반 협업, 빠른 분석, 운영 간단 Spark 대비 대규모 처리 성능↓ 분석 중심 조직, 빠른 실행 필요 중간 (서버리스 쿼리 기반) 중간~높음 (쿼리 단위 확장 가능)
Glue + Athena (Spark) 완전 서버리스, 비용 자동화, 설정 쉬움 성능 한계, 제어 어려움 소규모 또는 초기 조직 낮음 (사용한 만큼 과금) 낮음~중간 (파일 단위 처리 한계)
K8s + Argo + custom Spark 완전한 커스터마이징, 멀티워크로드 처리 가능 인프라 운영 복잡, 관리 부담 자체 인프라 보유한 대기업 중간 (BYO 인프라 기반) 매우 높음 (K8s 기반 무제한 확장 가능)

1) AWS (대규모 처리)

[Data Orchestrator]
Airflow
------------------------------------------------------------------------------------------
[Data Source]
RDBMS, 외부데이터
     ↓ (CDC - Debezium + Kafka) + (Monitoring - ELK, Prometheus, Cloudwatch)
[ELT, 정합성]
Spark + Great Expectation
     ↓
[Data Storage]
S3(Data Lake)
     ↓ (Backup - S3 lifecycle, tiering, Glacier) + (Data Catalog - Glue Data Catalog - glue table, Iceberg)
[DW]
Redshift
     ↓
[시각화, 대시보드]
tableau, AWS Quicksight

2) Databricks

[Data Orchestrator]
Databricks Jobs, Airflow
------------------------------------------------------------------------------------------
[Data Source]
RDBMS, 외부데이터
     ↓ (CDC - Debezium + Kafka) + (Monitoring - Databricks Monitor, Prometheus, ELK, Datadog, CloudWatch)
[ELT, 정합성]
Spark(Photon engine) + Great Expectation
     ↓
[Data Storage]
S3,GCS(Data Lake)
     ↓ (Backup - Delta Time Travel, S3 versioning) + (Data Catalog - Unity Catalog - delta lake) + (Governance - Unity Catalog: RBAC, Lineage, Tagging, Audit Log)
[Analytics]
Databricks SQL, Notebook
     ↓ 
[시각화, 대시보드]
Databricks Dashboard
Spark engine 변천사
Spark 2.x → Tungsten (DataFrame, SQL 최적화 중심)

Spark 3.x → Adaptive Query Execution (AQE), Catalyst 개선

Databricks Runtime → Photon (C++ 기반 Spark SQL 대체 엔진)

3) DBT + Bigquery

[Data Orchestrator]
Airflow
------------------------------------------------------------------------------------------
[Data Source]
RDBMS, 외부데이터
     ↓ (CDC - raw_change_events, incremental model + merge) + (Monitoring - Cloud Monitoring, ELK)
[Extract & Load, 정합성]
Airbyte, Fivetran
     ↓
[Data Storage]
Bigquery(raw,Staging,DW,Lake)
     ↓ (Backup - BigQuery Snapshots, GCS)
[Transform]
DBT
     ↓
[Data Storage]
Bigquery(DM, Marts)
     ↓
[시각화, 대시보드]
Looker, Looker Studio, Tableau

 

Airbyte, Fivetran이 Bigquery랑 잘 맞는 이유

항목 설명
커넥터 다양성 MySQL, PostgreSQL, Stripe, Salesforce, Shopify 등 다양한 소스에서 BigQuery로 바로 연동 가능
자동 테이블 생성 스키마를 분석해서 BigQuery에 테이블 자동 생성 (raw.users, raw.orders 등)
증분 수집 (CDC) updated_at, id, binlog 기반으로 증분 방식으로 적재 가능
자동 적재 일정 관리 매 시간, 매일 등 간편하게 설정 가능
에러 핸들링 및 Retry 실패 시 자동 재시도, 로깅까지 지원
스키마 변경 대응 컬럼 추가/삭제 자동 반영 (옵션 설정 가능)
GCP IAM 연동 BigQuery 서비스 계정 연결이 쉬움 (보안)

4) AWS (레이크 위주의 간단한 구성)

[Data Orchestrator]
Glue Workflows(Glue ETL)
------------------------------------------------------------------------------------------
[Data Source]
RDBMS, 외부데이터
     ↓ (Monitoring - Cloudwatch)
[ELT]
Spark + DMS
     ↓
[Data Storage]
S3(Data Lake)
     ↓ (Backup - S3 Lifecycle, S3 tiering, Glacier) + (Data Catalog - Glue Data Catalog - glue table, AWS Lake Formation)
[Anayltics]
Athena
     ↓
[시각화, 대시보드]
AWS Quicksight

5) k8s

[Data Orchestrator]
Airflow, Argo WorkFlow
------------------------------------------------------------------------------------------
[Data Source]
RDBMS, 외부데이터
     ↓ (CDC - Debezium + Kafka) + (Monitoring - ELK, Prometheus, Cloudwatch)
[ETL, 정합성]
Spark(Spark Operator, custom spark) + Great Expectation
     ↓
[Data Storage]
S3, GCS, MinIO(Data Lake)
     ↓ (Backup - S3 Lifecycle, S3 tiering, Glacier) + (Data Catalog - Glue Data Catalog - glue table, Iceberg)
[DW]
Redshift, bigquery, snowflake
     ↓
[시각화, 대시보드]
Superset, Redash, Tableau

 

728x90

댓글