본문 바로가기
Q&A2026년 6월 1일1분 읽기

Snowflake → BigQuery 마이그레이션 — 2주 안에 가능한가요

이
이수아
조회 436댓글 5

Snowflake 비용이 월 $32K로 폭증. BigQuery 마이그레이션 검토 중인데 경영진은 2주 안에 끝내라고 합니다.

현재 상태

  • 데이터 5TB (Snowflake 압축 후)
  • dbt 모델 80개 (gold/silver/bronze layer)
  • BI 도구 — Tableau (대시보드 24개)
  • ETL — Airbyte + dbt
  • 사내 SQL 사용자 약 60명

2주 가능한지, 어떤 함정이 있는지 경험 공유 부탁드립니다.

댓글 5

김김영삼5개월 전

2주는 일반적으로 어렵습니다. 비슷한 규모로 옮긴 경험으로는 평균 6~10주가 현실적. 다만 단계별 cut-over로 1차 마이그레이션은 2주에 가능합니다.


2주 timeline — 현실적 계획


주작업
1주차 day 1-3BigQuery 셋업 + 5TB raw export
1주차 day 4-7dbt 모델 자동 변환 + 검증
2주차 day 8-10Airbyte target BQ로 전환 + dual-write
2주차 day 11-12Tableau dashboard 재연결
2주차 day 13-14QA + cut-over

함정 5가지


1. SQL dialect 차이


Snowflake → BigQuery SQL은 80% 호환이지만 20%는 직접 수정. QUALIFY, ARRAY_AGG WITHIN GROUP, semi-structured 함수 등이 다름. dbt 모델 80개 중 20개 정도 수정 필요.


# 자동 변환 도구
dbt run --models +my_models --target bigquery
# 실패하는 모델만 수동 수정

2. Snowflake VARIANT vs BQ STRUCT


JSON column이면 BQ는 STRUCT 또는 STRING. 데이터 모델 결정.


3. Time travel 기능 차이


Snowflake — 90일 자동. BigQuery — 7일 (또는 별도 snapshot).


4. UDFs/Stored Procedures


Snowflake JavaScript UDF가 BQ에서 안 됨. Python 또는 SQL UDF로 재작성.


5. dbt incremental 모델


incremental strategy(merge vs insert_overwrite) 동작 미세 차이. 첫 번째 full refresh 후 incremental로 전환.


리스크 완화 — dual-write


2주 안에 cut-over 못 끝나도 사고 안 나도록 일정 기간 dual-write:


Airbyte → Snowflake AND BigQuery
dbt → Snowflake AND BigQuery
Tableau → 양쪽 모두 dashboard 검증

비용 +30% 일시 추가지만 안전. 1개월 dual 후 Snowflake 해지.


경영진과 협의 — "2주 안에 cut-over"가 아닌 "2주 안에 BQ에서 dashboard 가용, Snowflake 해지는 1개월 후" 정도가 안전합니다.

데데이터사이언스현5개월 전

저희는 dbt + sqlfluff로 SQL 변환 자동화했어요. dbt-codegen + sqlfluff dialect 변환으로 80개 모델 중 65개 자동 변환 됐습니다. 나머지 15개만 수동.

ssnowflake_user_park(guest)5개월 전
Snowflake 비용 줄이는 방법도 검토하세요. warehouse auto-suspend 60초 → 30초, query history 분석으로 자주 쓰는 쿼리만 materialized view, 사용 안 하는 데이터셋 archive. -$8K~$12K 가능합니다.
주주말코딩(guest)5개월 전
위 패턴 적용하면서 한 가지 더 알게 된 — 캐시 invalidation 정책이 처음 생각보다 복잡합니다. 별도로 관리 필요.
코코드리뷰러(guest)5개월 전
이 부분은 vendor가 다음 minor 버전에서 개선한다는 로드맵 봤어요. 그때까진 위 우회 패턴이 답인 것 같습니다.
Ctrl+Enter로 등록