데이터 파이프라인 구축 및 모델링 가이드

yeahcold·2025년 3월 20일
0

Data Engineering

목록 보기
5/20

데이터 파이프라인을 구축하고 운영할 때 고려해야 할 요소들을 정리해보겠습니다. 이번 글에서는 데이터 적재 방식, 매체 데이터 수집, BigQuery 모델링, 그리고 배포 및 자동화에 대해 설명합니다.


1️⃣ 데이터 적재 방식

데이터 적재 방식은 크게 Full Refresh, Incremental, 6개월 단위 적재로 나뉩니다. 각각의 방식은 데이터 특성과 신선도를 고려해 선택해야 합니다.

✅ Full Refresh (전체 적재 & 업데이트)

  • 기존 데이터를 삭제한 후 새로운 데이터를 적재하는 방식
  • 예시: GA4 유저 행동 데이터 (변경 가능성 없음)

✅ Incremental (점진적 업데이트)

  • 새로운 데이터만 추가하여 효율적으로 적재
  • 예시: 실시간 주문 데이터

✅ 6개월 단위 적재 (중간 수준 적재)

  • API 호출 개수 및 비용을 고려해 일정 기간 단위로 적재
  • 예시: 트래픽이 많은 로그 데이터

⏳ 데이터 신선도 고려 필요

데이터 유형적재 방식
기상청 날씨 데이터Full Refresh + 6개월 적재
GA4 유저 행동 데이터Full Refresh
매체 데이터 (Meta, TikTok 등)Incremental

2️⃣ 매체 데이터 수집 방식

데이터 수집 방법에 따라 직접 API 호출외부 솔루션 활용으로 나뉩니다.

✅ 유저 행동 데이터

  • GA4를 활용해 사용자 행동 데이터를 수집

✅ 광고 매체 데이터

  • Appsflyer / Airbridge 등을 활용하여 일괄 수집 (효율적)
  • 개별 매체 API 직접 호출 (정확하지만 관리 비용 증가)

🎯 광고 매체 예시: Moloco, Meta, TikTok, Google Ads, X, Kakao


3️⃣ 데이터 적재 주기

데이터 적재 주기는 데이터의 성격과 활용 목적에 따라 다르게 설정해야 합니다.

  • 일반적으로 1~2개월 단위 적재 (yesterday - month(1))
  • Facebook 데이터 → 3일 전 데이터 적재
  • 최소 1일 전 데이터 적재 (실시간 데이터보다 안정적)

4️⃣ BigQuery 데이터 모델링

💾 클러스터링 & 파티셔닝 전략

데이터 규모가 커질수록 성능 최적화를 위해 파티셔닝 & 클러스터링을 적극적으로 활용해야 합니다.

✅ 파티셔닝

  • 불필요한 데이터 스캔을 방지하여 성능 향상
  • 기본적으로 event_date 기준으로 파티셔닝

✅ 클러스터링

  • 자주 조회되는 컬럼을 기준으로 클러스터링 적용

📌 권장 기준
| 데이터 크기 | 모델링 방법 |
|-------------|------------------|
| 1억 행 이상 | 파티셔닝 권장 |
| 10억 행 이상 | 파티셔닝 필수 |


5️⃣ API 호출 시 고려 사항

API 호출 시에는 실행 속도와 Rate Limit을 반드시 고려해야 합니다.

⚠️ 주의할 점

  • 실행 시간이 너무 오래 걸리지 않도록 최적화
  • API Rate Limit 초과 여부 확인

💡 문제 발생 시 해결 방법
1. API 제공 업체에 문의
2. 실행 방식 최적화 (Batching, 병렬 처리 활용)


6️⃣ 배포 및 자동화

데이터 파이프라인을 운영하면서 자동화를 고려하는 것이 중요합니다.

🚀 Terraform을 활용한 배포

  • AWS, GCP 등 다양한 클라우드 환경에서 배포 가능
  • GCP Cloud Functions 배포 시 main.py만 인식됨 (주의!)

자동화를 통해 운영 부담을 줄이고, 안정적인 데이터 적재 파이프라인을 구축할 수 있음


🎯 데이터 파이프라인 구축

  1. 데이터 적재 방식은 Full Refresh, Incremental, 6개월 단위 적재 중 선택
  2. 매체 데이터 수집은 API 직접 호출 or 외부 솔루션 활용
  3. BigQuery 모델링은 데이터 규모에 따라 파티셔닝 & 클러스터링 적용
  4. API 호출 최적화를 위해 실행 시간과 Rate Limit 고려
  5. 배포 및 자동화는 Terraform 등을 활용해 운영 부담 최소화
profile
Software Engineer

0개의 댓글