Snowflake MigrationClickHouse Workshops
계획 워크시트

워크시트 4: 마이그레이션 웨이브 계획

NYC Taxi 객체 열 개를 마이그레이션 웨이브로 배열하고 각각의 복잡도를 등급화한다. 모든 답에 즉시 피드백이 제공된다.

예상 소요 시간: 15–20분 참고 자료: 실행 순서는 모듈 03 — 프로비저닝과 마이그레이션 → 모듈 04 — dbt 파이프라인 재구축 → 모듈 05 — 벤치마크와 컷오버

개념

데이터베이스 객체에는 의존성이 있다. fact_trips를 쿼리하는 뷰는 fact_trips가 존재하기 전에 만들 수 없다. trips_raw에서 읽는 materialized view는 trips_raw에 데이터가 들어오기 전에 채울 수 없다. 잘못된 순서로 마이그레이션하면 테이블 생성 실패, 빈 결과, 또는 진단하기 어려운 불완전한 데이터가 생긴다.

해법: 웨이브 계획. 모든 객체를 번호가 붙은 웨이브로 정리하되, 각 웨이브에는 의존성이 앞선 웨이브에서 이미 충족된 객체만 담는다.

복잡도 등급화는 마이그레이션 노력의 우선순위를 정하는 데 도움이 된다. B와 C를 가르는 기준은 구문 자체를 재구성해야 하는지, 아니면 타입만 다시 지정하면 되는지다.

  • 등급 A — 사소함: 표준 테이블이나 통과 뷰, 특별한 로직 없음, 직관적인 타입 매핑
  • 등급 B — 중간: 배우고 테스트해야 할 ClickHouse 고유 구성 요소가 하나 있지만, 변환 자체는 치환이다 — ClickHouse 엔진과 증분 설정, CREATE DICTIONARY, 갱신 가능한 MV의 REFRESH EVERY, 또는 VARIANT 읽기를 대신하는 JSONExtract* 경로
  • 등급 C — 복잡함: 타입만 다시 지정하는 것이 아니라 구문을 다시 만들어야 하고(QUALIFY는 서브쿼리로 감싸고, MERGE INTO는 증분 전략으로 대체), 그 재작성이 엔진 선택과 하위 모든 곳의 FINAL 배치와 일관성을 유지해야 한다. 신중하게 테스트하라
  • 등급 D — 재설계 필요: 직접 대응물이 없는 Snowflake 고유 기능 (Streams → 프로듀서를 ClickHouse로 컷오버, Tasks → 갱신 가능한 MV 또는 예약 dbt 실행)

아래 연습 3은 위의 네 글자 대신 압축된 3단 척도로 등급화하도록 요구한다 — Low(등급 A), Medium(등급 B), High(등급 C 또는 D). 노력 순서를 정하는 데 가장 중요한 구분은 네 갈래 분할이 아니라 사소함 / 테스트 필요 / 재설계 필요이기 때문이다. 각 답의 설명은 A–D 중 어느 것에 해당하는지 밝히므로, 글자 등급으로 되짚어 볼 수 있다.

연습 1: 의존성 DAG

아래 각 객체에 대해 무엇에 의존하는지 선택하라. 열 개 중 세 개는 의존성이 전혀 없는 정적 참조 데이터다 — 이것은 나중에 채울 공백이 아니라 실제 답이다.

연습 2: 마이그레이션 웨이브 배정

웨이브 0과 1은 맥락 제공을 위해 채워져 있다. 웨이브 2부터 4까지, 그 웨이브에 속하는 객체를 선택한 다음 그 웨이브에서 실제로 무슨 일이 일어나는지 답하라.

연습 3: 복잡도 등급화

각 객체를 등급화한 다음, 표 아래의 주요 과제 문제에 답하라.

회고 문제

마지막 두 문제는 정답 키의 리스크 레지스터에 있는 세 항목을 다룬다 — fact_trips(등급 C)와 agg_hourly_zone_trips가 올라온 뒤 검증하는 것, 그리고 TRIPS_CDC_STREAM과 CDC_CONSUME_TASK를 대체하는 프로듀서 컷오버를 검증하는 것(등급 D)이다. 이 레지스터가 단순히 등급 C/D 집합인 것은 아니다. agg_hourly_zone_trips는 Medium 등급이지만, 그 롤링 재계산 윈도우는 이 파이프라인에서 미묘하게 틀리기 가장 쉬운 부분이다.

Loading worksheet...

migration-plan.md로 옮기기

웨이브 계획과 복잡도 등급을 migration-plan.md의 Section 6에 복사하고 다음을 체크하라.

- [ ] Migration wave plan: completed

이 페이지의 내용

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

KO