2일차 · 무중단 마이그레이션 & NoSQL

Google Cloud Data & Database Engineer · 2일차

무중단 DB 이관과
Spanner · Bigtable.

2026년 11월 10일(화) · Lab 4–6 · 이다언 (Daun Lee)

© 2026 Daun Lee · daunlee.com
2일차 · 무중단 마이그레이션 & NoSQL

오늘의
흐름

  1. 016R 마이그레이션 · DMS & Datastream CDC1–3교시 · 동종/이기종 무중단 이관 아키텍처 & Lab 4 (DMS)
  2. 02Cloud Spanner 글로벌 분산 DB & 스키마4–5교시 · TrueTime 외부 일관성 · Hotspot 방지 PK & Lab 5
  3. 03Cloud Bigtable Row Key 설계 & 대량 적재6–7교시 · Tall & Narrow 시계열 모델링 · cbt CLI & Lab 6
  4. 04Firestore 문서형 NoSQL & 운영 DB 종합8교시 · 컬렉션/서브컬렉션 설계 및 Day 1–2 DB 총정리
© 2026 Daun Lee · daunlee.com
2일차 · 01 6R 마이그레이션 · DMS & Datastream CDC
01

6R 마이그레이션 · DMS & Datastream CDC

1–3교시 · 다운타임 제로(Near-Zero Downtime)를 달성하는 데이터베이스 이관 아키텍처

  • Migration Center · DMA
  • Homogeneous vs Heterogeneous
  • DMS vs Datastream 비교
  • Lab 4 · DMS 무중단 이관
© 2026 Daun Lee · daunlee.com
2일차 · 1교시 DB 마이그레이션 전략 & 동종/이기종 전환

DB 마이그레이션 4단계와 동종 · 이기종 전략

  1. 1. Assess (진단)Migration Center & DMA로 원본 DB 스키마·확장 기능·적합도 스캔
  2. 2. Plan (계획)동종(Replatform) vs 이기종(Refactor) 결정 및 VPC Peering/VPN 설계
  3. 3. Deploy (복제)초기 전체 덤프(Full Dump) 후 실시간 CDC(Change Data Capture) 연속 동기화
  4. 4. Optimize (전환)Data Validation Tool(DVT) 정합성 검증 후 Cutover(Promote) 실행
HOMOGENEOUS · 동종 이관 (Replatform) MySQL → Cloud SQL / PG → AlloyDB

스키마와 애플리케이션 SQL 변경 없이 관리형 엔진으로 이동해요. DMS가 초기 스냅샷과 실시간 바이너리 로그/WAL 복제를 자동 처리해요.

HETEROGENEOUS · 이기종 이관 (Refactor) Oracle · SQL Server → PostgreSQL / AlloyDB

DMS Conversion Workspace와 Gemini 기반 AI 코드 변환으로 PL/SQL·저장 프로시저·데이터 타입을 PostgreSQL 호환 코드로 자동 변환해요.

Database Migration Service (DMS) 개요

© 2026 Daun Lee · daunlee.com
2일차 · 2교시 DMS vs Datastream 역할 비교

헷갈리기 쉬운 두 CDC 도구: DMS vs Datastream

둘 다 원본 DB의 변경분(CDC)을 실시간으로 읽지만, 목적지가 운영 DB(OLTP)인지 분석 저장소(OLAP)인지가 달라요.

비교 기준Database Migration Service (DMS)Datastream
핵심 목적운영 DB 무중단 이사 (이관 완료 후 타겟 승격)분석용 실시간 CDC 파이프라인 (지속 스트리밍 복제)
목적지 (Target)Cloud SQL, AlloyDB (운영 관계형 DB)BigQuery, Cloud Storage (분석 DW · 데이터 레이크)
원본 (Source)MySQL, PostgreSQL, SQL Server, OracleOracle, MySQL, PostgreSQL, SQL Server, Salesforce
최종 단계Promote(Cutover)로 타겟 DB를 새 Primary로 승격BigQuery Storage Write API 병합으로 실시간 분석 유지
AWS / Azure 대응AWS DMS (DB Migration) / Azure DMSAWS DMS (to S3/Redshift) / Azure Data Factory CDC

Datastream 공식 문서데이터 파이프라인 지도에서 DMS · Datastream 위치 보기

© 2026 Daun Lee · daunlee.com
2일차 · 3교시 실습 Lab 4

Lab 4 · DMS 기반 MySQL → Cloud SQL 무중단 이관

  1. Connection Profile원본 MySQL(IP·계정·binlog 확인) 및 목적지 접속 프로필 생성
  2. Continuous Job 생성VPC Peering 연결 구성 및 Continuous(Full Dump + CDC) 방식 선택
  3. 실시간 복제 & 검증초기 적재 완료 후 원본에 신규 INSERT 발생 시 Cloud SQL 자동 반영 확인
  4. Promote (Cutover)복제 지연(Replication Lag) 0 확인 후 타겟 인스턴스를 독립 Primary로 승격
무중단 이관 필수 전제: 원본 MySQL의 row-based binary logging(binlog_format=ROW)과 GTID(또는 충분한 로그 보관 기간)가 켜져 있어야 CDC가 누락 없이 동작해요.

Lab 4-A · Continuous DMS Job (skills.google)Lab 4-B · RDS MySQL to Cloud SQL (skills.google)

© 2026 Daun Lee · daunlee.com
2일차 · 02 Cloud Spanner 글로벌 분산 DB & 스키마
02

Cloud Spanner 글로벌 분산 DB & 스키마

4–5교시 · RDBMS의 강력한 트랜잭션(ACID·SQL)과 NoSQL의 무제한 수평 확장을 결합한 아키텍처

  • TrueTime API · External Consistency
  • Split 자동 분할 & Hotspot 방지 PK
  • Interleaved Table
  • Lab 5 · Spanner DDL & Query Plan
© 2026 Daun Lee · daunlee.com
2일차 · 4교시 Cloud Spanner 아키텍처

왜 Spanner인가: TrueTime 외부 일관성과 수평 확장

TRUETIME API · 원자시계 + GPS External Consistency (외부 일관성)

전 세계 데이터센터의 하드웨어 원자시계와 GPS로 시간 오차를 수 밀리초 이내로 묶어, 글로벌 분산 락 없이도 직렬화 가능한 강한 일관성(Strong Consistency)을 보장해요.

AUTOMATIC SHARDING · SPLIT 무제한 수평 확장 (Split)

데이터가 커지거나 트래픽이 몰리면 Primary Key 정렬 범위를 기준으로 데이터를 Split 단위로 자동 분할해 여러 컴퓨트 노드에 분산 배치해요.

MULTI-REGION AVAILABILITY 99.999%(5 9s) 가용성

Paxos 합의 알고리즘으로 멀티 리전 쿼럼에 동기 복제하여, 리전 하나가 통째로 멈춰도 다운타임과 데이터 유실(RPO=0) 없이 즉시 서비스를 이어가요.

CAP 정리의 현실적 해법: 구글 전용 광케이블 망과 TrueTime 동기화로 네트워크 파티션 확률을 극소화해 실질적인 가용성(99.999%)과 강한 일관성을 동시에 제공해요.

Spanner TrueTime & External Consistency 공식 문서

© 2026 Daun Lee · daunlee.com
2일차 · 4교시 Spanner 스키마 설계 모범 사례

Spanner 스키마 핵심: Hotspot 방지와 Interleaved Table

나쁜 예: 순차 증가 키 (Auto-Increment / Timestamp 선두)

Primary Key를 1, 2, 3... 또는 CreatedAt 타임스탬프 선두로 잡으면 모든 신규 INSERT가 항상 마지막 Split(단일 서버 노드) 하나에만 집중되어 심각한 쓰기 병목(Hotspot)이 발생해요.

좋은 예: UUID v4 · Hash Prefix · 복합키 순서 변경

UUID v4, 해시 프리픽스(ShardId), 또는 카디널리티가 높은 (UserId, OrderDate) 순으로 키를 구성해 쓰기 트래픽을 모든 노드의 Split에 고르게 분산해요.

Interleaved Table (INTERLEAVE IN PARENT): 부모(Customers)와 자식(Orders) 행을 같은 Split에 물리적으로 나란히 저장(Co-location)해 네트워크 홉 없는 초고속 조인을 수행해요.

Spanner 스키마 설계 모범 사례

© 2026 Daun Lee · daunlee.com
2일차 · 5교시 실습 Lab 5

Lab 5 · Spanner 인터리빙 스키마 & 실행 계획 실습

-- 1. 부모 테이블 (분산 키 사용)
CREATE TABLE Customers (
  CustomerId STRING(36) NOT NULL,
  Name       STRING(100)
) PRIMARY KEY (CustomerId);

-- 2. 자식 테이블 (부모 Split 동반 배치)
CREATE TABLE Orders (
  CustomerId STRING(36) NOT NULL,
  OrderId    STRING(36) NOT NULL,
  OrderTotal NUMERIC
) PRIMARY KEY (CustomerId, OrderId),
  INTERLEAVE IN PARENT Customers ON DELETE CASCADE;
  • 복합 PK 상속 규칙자식 테이블 PK는 반드시 부모 테이블의 PK(CustomerId)를 맨 앞 접두어로 포함해야 해요
  • Query Execution Plan콘솔의 Query Plan 시각화에서 네트워크 셔플 없이 Local Join으로 실행되는지 확인
  • gcloud spanner CLI인스턴스·DB 생성부터 DDL 반영, SQL 조회까지 CLI로 자동화

Lab 5-A · Spanner Fundamentals (skills.google)Lab 5-B · Schemas & Query Plans (skills.google)

© 2026 Daun Lee · daunlee.com
2일차 · 03 Cloud Bigtable Row Key 설계 & 대량 적재
03

Cloud Bigtable Row Key 설계 & 대량 적재

6–7교시 · 페타바이트급 시계열·IoT·금융 데이터를 한 자릿수 밀리초(ms)에 처리하는 Wide-Column NoSQL

  • Bigtable vs BigQuery
  • Tall & Narrow 모델링
  • Row Key Hotspot 방지
  • Lab 6 · cbt CLI & 시계열 조회
© 2026 Daun Lee · daunlee.com
2일차 · 6교시 Cloud Bigtable 아키텍처 & BigQuery 비교

Cloud Bigtable 아키텍처와 BigQuery와의 역할 분담

Bigtable은 컴퓨트 노드(태블릿 서버)와 Colossus 스토리지(SSTable)가 분리되어 있어 노드 추가만으로 처리량이 선형 확장돼요.

비교 항목Cloud Bigtable (NoSQL OLTP · 시계열)BigQuery (서버리스 DW · OLAP)
주 워크로드IoT 센서, 실시간 주가/클릭스트림, 피처 스토어, 개인화 추천전사 BI 리포팅, 대규모 로그 SQL 집계, 머신러닝(BQML)
응답 지연 / 처리량한 자릿수 밀리초(ms) · 초당 수십만~수백만 읽기/쓰기초~분 단위 · 대용량 테이블 풀/파티션 스캔
접근 패턴단일 Row Key 조회(Lookup) 및 사전순 Row Key 범위 스캔(Range Read)표준 SQL 조인, GROUP BY, 윈도우 함수, 벡터 검색
데이터 변형(Mutation)실시간 셀 단위 고속 덮어쓰기·추가 최적화배치/스트리밍 Append 최적화 (잦은 단건 UPDATE 비효율)

Cloud Bigtable 개요

© 2026 Daun Lee · daunlee.com
2일차 · 6교시 Bigtable Row Key 설계

성능의 90%를 결정하는 Bigtable Row Key 설계

나쁜 예: 타임스탬프 선두 · 낮은 카디널리티 · Fat Row

20261110#Bus101처럼 타임스탬프를 맨 앞에 두면 최신 쓰기가 한 노드에 몰려 Hotspot이 생겨요. 한 행에 수만 개 이벤트를 우겨 넣는 Wide(Fat) 구조도 피해야 해요.

좋은 예: 필드 결합 + 역순 타임스탬프 (Tall & Narrow)

MTA#B63#N#9223370399...(운수사#노선#방향#역순타임스탬프)처럼 자주 함께 조회하는 조건을 앞에 두고, 최신순 조회가 필요하면 MAX_LONG - timestamp 역순값을 붙여요.

Key Visualizer 진단: 콘솔의 Key Visualizer 히트맵에서 특정 키 대역만 밝은 노란색 가로줄로 나타나면 Row Key 설계 오류로 인한 Hotspot이에요.

Bigtable 스키마 및 Row Key 설계 가이드

© 2026 Daun Lee · daunlee.com
2일차 · 7교시 실습 Lab 6

Lab 6 · cbt CLI 기반 시계열 Row Key 조회 실습

# 1. cbt CLI 환경파일(.cbtrc) 자동 구성
echo project = $PROJECT_ID > ~/.cbtrc
echo instance = nyc-transit >> ~/.cbtrc

# 2. 테이블 생성 및 컬럼 패밀리(cf) 추가
cbt createtable bus-data
cbt createfamily bus-data cf

# 3. 특정 버스 노선(M86-SBS)의 시계열 범위 스캔
cbt read bus-data prefix=MTA/M86-SBS/ count=5

# 4. 특정 시각·차량 단건 Row Key 즉시 조회
cbt lookup bus-data "MTA/M86-SBS/1496275200000/NYCT_5824"
  • prefix 범위 스캔Row Key가 사전순(Lexicographical)으로 정렬되어 있어 prefix 지정만으로 특정 노선 전체를 밀리초에 읽어요
  • Tall & Narrow 구조버스 위치 측정값 1건을 행(Row) 1개로 저장해 확장성과 스캔 효율 극대화
  • Dataflow 대량 적재Cloud Storage의 SequenceFile/Parquet 데이터를 Dataflow 템플릿으로 고속 병렬 적재

Lab 6-A · Designing & Querying Bigtable Schemas (skills.google)Lab 6-B · Populating a Bigtable Instance (skills.google)

© 2026 Daun Lee · daunlee.com
2일차 · 04 Firestore 문서형 NoSQL & 운영 DB 종합
04

Firestore 문서형 NoSQL & 운영 DB 종합

8교시 · 모바일·웹 서버리스 문서 DB 모델링과 Day 1–2 데이터베이스 파트 총정리

  • Collection · Document · Subcollection
  • Security Rules · 오프라인 동기화
  • Day 1–2 운영 DB 총정리 & Day 3 예고
© 2026 Daun Lee · daunlee.com
2일차 · 8교시 Firestore 모델링 & 운영 DB 종합

Firestore 문서 모델링과 Day 1–2 운영 DB 총정리

HIERARCHY · 계층 구조 Collection ➔ Document

문서(최대 1MB JSON)는 컬렉션에 속하며, 하위 배열이 계속 커지면 Subcollection으로 분리해 조회 비용을 최적화해요.

CLIENT DIRECT · 서버리스 실시간 리스너 & 오프라인

백엔드 없이도 모바일·웹 SDK가 Security Rules 검증을 거쳐 직접 구독하고 오프라인 변경분을 자동 동기화해요.

INDEXING · 쿼리 보장 결과 크기에 비례하는 성능

자동 인덱스와 복합 인덱스를 강제해 전체 컬렉션이 1억 건이어도 결과 10건 조회 시간은 항상 일정해요.

  1. Cloud SQL / AlloyDB리전 정형 RDBMS · HTAP 고성능 PG
  2. DMS / Datastream무중단 DB 이사 · 실시간 분석 CDC
  3. Spanner / Bigtable글로벌 SQL · 초고속 시계열 NoSQL
  4. Day 3 → BigQuery DW모든 데이터가 모이는 분석·AI 허브

Firestore 데이터 모델 공식 문서데이터 파이프라인 지도에서 전체 연결 흐름 확인하기

© 2026 Daun Lee · daunlee.com
← 백업 목차 (/g/data/b)본 목차 (/g/data)