ClickHouse 마이그레이션 시리즈

워크로드를 옮긴다.
성과를 증명한다.

5천만 행, 완전한 Medallion dbt 파이프라인, 일곱 개 분석 쿼리, 실시간 데이터 프로듀서, Superset 대시보드 — 프로덕션에 가까운 Snowflake 워크로드를 ClickHouse Cloud로 엔드투엔드로 옮기고, 벤치마크하고, 방어합니다.

6시간 · 일곱 모듈50M 행 마이그레이션7개 쿼리 벤치마크~$2-4 트라이얼 크레딧

단순 리프트 앤 시프트가 아닙니다. 결정 기록입니다.

웨어하우스에서 웨어하우스로 5천만 행을 복사하는 스크립트는 누구나 쓸 수 있습니다. 마이그레이션에서 그 부분은 어려운 부분이 아니고, 고객이 솔루션 아키텍트에게 값을 지불하며 제대로 해내길 기대하는 부분도 아닙니다.

어려운 부분은 복사보다 앞에 있습니다: 어떤 MergeTree 엔진 계열이 각 테이블에 맞는지, ORDER BY 키가 실제로 무슨 일을 해서 값어치를 하는지, 그리고 어떤 Snowflake 관용구 — QUALIFY, VARIANT, 스케줄된 TASK — 가 ClickHouse에 직접 대응하는 것이 없어 진짜 번역이 필요한지.

이 랩은 그 결정들을 실행하기 전에 글로 적게 만듭니다. 모듈 02는 모든 선택에 근거를 붙인 migration-plan.md를 만들고, 모듈 03의 설치 스크립트는 ClickHouse를 건드리기 전에 그 파일이 있는지 확인합니다.

모듈 06에서는 20문항 평가와 네 개의 서술 문항을 상대로 그 계획을 오픈북으로 방어합니다 — 실제 고객 대화가 요구하는 것과 같은 판단력 시험입니다.

가지고 돌아가는 것

마칠 때 전부 돌아가고 있습니다.

여러분의 Snowflake 트라이얼과 ClickHouse Cloud 트라이얼 위에서 — 양쪽 모두 신용카드 없이.

01

프로파일링을 마친 Snowflake 워크로드

테이블 목록 정리, 쿼리 패턴 파악, SQL 방언 격차 발견, 그리고 무엇을 계획하기 전에 마이그레이션 공수 산정까지.

02

올바른 엔진과 스키마 결정

각 테이블에 맞는 MergeTree 엔진 계열, 값어치를 하는 ORDER BY 키, 그리고 ClickHouse 대응물로 번역한 Snowflake 타입과 관용구.

03

프로덕션 방식으로 실행한 마이그레이션

재개 가능한 Python 스크립트로 옮긴 5천만 행, 검증된 정합성, 그리고 스크립트로 진행한 프로듀서 전환.

04

ClickHouse 위에 다시 만든 dbt 파이프라인

delete_insert로 설정한 dbt-clickhouse, ReplacingMergeTree 모델, 그리고 갱신 가능한 materialized view.

05

수치로 만든 비즈니스 근거

고객 앞에서 방어할 수 있는 6-9배 성능 수치로 바꿀 수 있는 일곱 쿼리 벤치마크.

06

설명할 수 있는 결정

통과한 모듈 06 평가 — 같은 패턴을 새 고객의 워크로드에 적용할 수 있다는 증거.

실제로 번역하게 되는 방언 격차

QUALIFYROW_NUMBER를 쓴 서브쿼리
LATERAL FLATTENJSONExtract / arrayJoin
VARIANTJSON / String + 추출 함수
MERGEReplacingMergeTree + delete_insert
스케줄된 TASK갱신 가능한 materialized view
STREAM실시간 프로듀서 피드

코스 · 실습 6시간

일곱 개 모듈, 순서대로.

하나의 흐름, 처음부터 끝까지: 소스를 프로파일링하고, 타깃을 설계하고, 데이터를 옮기고, 파이프라인을 다시 만들고, 성과를 증명합니다.

  1. 00

    설치

    30분

    툴체인을 설치하고, 두 클라우드 트라이얼 계정을 만들고, 저장소를 클론하고, dbt 가상환경 두 개를 만듭니다 — 데이터를 건드리기 전에 마이그레이션에 필요한 모든 것.

  2. 01

    실제 고객 배포를 그대로 닮은 Snowflake 환경을 구축합니다: 50M 행, dbt Medallion 파이프라인, 실시간 운행 프로듀서, 그리고 세 개의 Superset 대시보드.

  3. 02

    Snowflake 워크로드를 프로파일링하고, 마이그레이션이 실행할 아키텍처 결정을 내립니다: 엔진 선택, sort key, 스키마 번역, 배포 웨이브, dbt 모델 설계.

  4. 03

    Terraform으로 ClickHouse Cloud를 프로비저닝하고, 계획대로 타깃 테이블을 만들고, 재개 가능한 스크립트로 5천만 행을 옮깁니다. 전체 60분을 잡으세요 — 그중 약 40-50분은 백그라운드에 걸어두면 되는 무인 데이터 전송입니다.

  5. 04

    dbt-clickhouse로 Medallion 파이프라인을 ClickHouse 위에 다시 만듭니다 — delete_insert 증분 모델, ReplacingMergeTree, 갱신 가능한 materialized view — 그리고 zone 딕셔너리를 만듭니다.

  6. 05

    대시보드를 ClickHouse 위에 다시 만들고, 일곱 쿼리 전부를 양쪽 엔진에서 벤치마크하고, 프로듀서를 전환하고, 정합성을 확인하고, 정리합니다.

  7. 06

    평가

    60분

    20문항 객관식과 4문항 서술 평가를 오픈북으로 완료하고 ClickHouse Migration Proficiency Badge를 받습니다.

기본은 자율 진행입니다. 모든 모듈이 시작 체크포인트를 명시하므로 강의실 속도에 낙오되는 사람이 없습니다. 모듈 01에서 시작한 Snowflake 프로듀서는 모듈 05까지 계속 돌아가야 합니다 — 쉬는 시간은 그것을 끊는 대신 감안해서 잡으세요.

참가 전에

누구를 위한 것이고, 무엇을 준비할까.

대상 참가자

  • Snowflake 마이그레이션 프로젝트를 진행하는 ClickHouse 솔루션 아키텍트와 파트너
  • “왜 이 엔진, 왜 이 sort key인가?”라는 질문을 받아봤고 방어할 수 있는 답을 원하는 분
  • 프로덕션에 가까운 분석 워크로드를 Snowflake에서 옮기려는 팀
  • SQL과 터미널이 익숙하면 충분 — 데이터 엔지니어링 배경은 필요 없습니다

준비물 사전 준비

  • 모듈 00 툴체인: Terraform, Docker, Python 3.11-3.13, dbt Core, 그리고 SnowSQL CLI
  • Snowflake 트라이얼 계정 — 신용카드 필요 없음
  • ClickHouse Cloud 트라이얼 계정 — 신용카드 필요 없음
  • 세션 동안 ClickHouse Cloud 트라이얼 크레딧 약 $2-4를 씁니다

진행 방식 형식

  • 일곱 모듈 100% 실습 — 모든 명령과 쿼리는 복사·붙여넣기
  • 자율 진행 또는 진행자 주도, 각 모듈을 그대로 따라가는 강사 트랙 포함
  • Snowflake 프로듀서가 내내 실시간으로 돌아가므로 타이밍이 시뮬레이션이 아니라 실제입니다
  • 모듈 06 평가는 오픈북이고 스스로 진행합니다

이 랩이 다루지 않는 것 범위

  • 실시간 스트리밍 인제스트 — Kafka, Kinesis, ClickPipes 대신 Docker 기반 운행 프로듀서를 씁니다
  • 멀티 노드 ClickHouse 클러스터 — 모든 작업은 단일 서비스 ClickHouse Cloud 배포에서 진행합니다
  • 데이터 거버넌스와 접근 제어 — 역할 기반 접근, 행 수준 보안, 마스킹은 구현하지 않습니다
  • 점진적 스키마 진화, Snowflake 외 소스, 프로덕션 SLA와 모니터링 — 각각이 별도의 주제입니다

워크로드를 옮길 준비 되셨나요?

Snowflake 트라이얼과 ClickHouse Cloud 트라이얼을 가져오세요. 5천만 행 마이그레이션, 다시 만든 dbt 파이프라인, 그리고 고객에게 방어할 수 있는 일곱 개 벤치마크 쿼리를 들고 돌아갑니다.

50M재개 가능한 Python 스크립트로 옮긴 행 수.
6-9x일곱 개 벤치마크 쿼리 전부에서 측정한 속도 향상 — 모듈 05에서 직접 실행하기 전까지는 예시 수치입니다.
배지모듈 06에서 마이그레이션 계획을 방어해 획득합니다.
KO