본문 바로가기
서버 구축·실습

GCP Dataflow 템플릿으로 CSV 데이터를 BigQuery에 실시간 적재하는 방법

by joe2026 2026. 3. 22.

이 글은 GCP Dataflow 실습을 처음 수행하는 수강생을 위한 기록입니다.
Cloud Storage의 CSV 데이터를 어떻게 BigQuery까지 실시간처럼 연결하는지 흐름이 막히는 문제를 해결합니다.
이 글을 통해 Dataflow 템플릿 기반 스트리밍 파이프라인을 직접 구현할 수 있습니다.

핵심 질문
Cloud Storage의 CSV 데이터를 Dataflow로 BigQuery에 실시간 적재하려면 어떻게 해야 하는가?


실습 환경

  • Cloud: GCP
  • Region: us-central1
  • Runtime: Cloud Shell
  • DB: BigQuery (taxirides.realtime)
  • Worker: 1 (Max 2)
  • Machine: e2-medium

아키텍처

아래는 전체 데이터 흐름 구조입니다.

Cloud Storage → Dataflow → BigQuery → Looker Studio


■ 강사 설명

실습 흐름은 다음과 같습니다.
1. BigQuery 테이블 생성
2. Cloud Storage 파일 업로드
3. Dataflow 템플릿 실행
4. BigQuery 조회

코드 없이 템플릿으로 스트리밍 파이프라인을 구성하는 것이 핵심입니다.


■ 내가 이해한 핵심

Dataflow는 데이터 흐름 자동화 도구입니다.
처음부터 Beam 코드를 작성하기보다
Template → 구조 검증 → 확장
이 방식이 실무적으로 가장 안전합니다.


■ 내가 실제로 겪은 문제

Dataflow Job 실행 후 BigQuery 데이터가 보이지 않았습니다.
원인은 설정 문제가 아니라 스트리밍 초기화 지연이었습니다.


실습 단계

1. BigQuery 테이블 생성

bq mk taxirides

bq mk \
--time_partitioning_field timestamp \
--schema \
ride_id:string,point_idx:integer,latitude:float,longitude:float,\
timestamp:timestamp,meter_reading:float,meter_increment:float,ride_status:string,\
passenger_count:integer \
taxirides.realtime

2. Cloud Storage 파일 업로드

gcloud storage cp schema.json gs://my-bucket/tmp/schema.json
gcloud storage cp transform.js gs://my-bucket/tmp/transform.js
gcloud storage cp rt_taxidata.csv gs://my-bucket/tmp/rt_taxidata.csv

3. Dataflow 템플릿 설정

  • Template: Cloud Storage Text to BigQuery (Stream)
  • Input: CSV 파일
  • Output: taxirides.realtime
  • Schema: schema.json
  • UDF: transform.js

4. 데이터 확인

SELECT * FROM taxirides.realtime LIMIT 10;

실습 증거

BigQuery 결과

ride_id: 12345
passenger_count: 2
meter_reading: 15.7

→ 데이터 정상 적재 확인

Dataflow 상태

  • Status: Running
  • Worker: 1
  • 정상 처리

트러블슈팅

문제 증상:
데이터 조회 결과 없음

원인:
스트리밍 초기화 지연

해결:
3~5분 후 재조회

재발 방지:
스트리밍은 즉시 반영되지 않음


실무 핵심

  • 입력: Cloud Storage
  • 처리: Dataflow
  • 저장: BigQuery
  • 분석: SQL

이 구조를 이해하면 Pub/Sub, IoT 데이터까지 확장 가능


결론

핵심 원칙
데이터 파이프라인은 연결이 아니라 흐름 설계다

주의사항

  • 스트리밍 지연 정상
  • 스키마 오류 빈번
  • 템플릿 먼저 검증

다음 단계
Pub/Sub 기반 실시간 파이프라인 확장


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 클라우드학습기