데이터 웨어하우스를 처음 다루는 엔지니어가 가장 자주 묻는 질문은 "왜 그냥 PostgreSQL을 크게 키워서 쓰면 안 되나"이다. 사실 Redshift는 PostgreSQL 8.0.2를 fork해서 만들어졌고, SQL 문법도 거의 같다. 그런데 단일 PostgreSQL은 수억 행에 GROUP BY와 JOIN을 거는 분석 쿼리에서 몇 분, 몇 시간씩 걸린다. Redshift는 같은 쿼리를 수 초에 끝낸다. 그 차이는 SQL 엔진이 아니라 **저장 구조(컬럼 지향)와 실행 구조(MPP, 분산)**에서 나온다. Redshift를 제대로 이해한다는 건 "데이터를 노드와 슬라이스에 어떻게 흩뿌리고, 쿼리를 어떻게 그 위에서 병렬 실행하는가"를 이해한다는 뜻이다.
SAP-C02 시험에서 Redshift는 "분산 키를 잘못 골라 노드 간 데이터 셔플이 폭증하는 문제", "DC2의 스토리지 한계를 RA3로 푸는 마이그레이션", "데이터 레이크와 웨어하우스를 Spectrum으로 통합하는 레이크하우스", "운영 DB를 ETL 없이 분석하는 Zero-ETL" 같은 아키텍처·운영 관점으로 출제된다. 오늘은 Redshift가 내부적으로 어떻게 동작하는지, 왜 그렇게 설계됐는지를 분해해서 이 시나리오들을 푸는 직관을 만든다.
전통 RDBMS(OLTP DB)는 한 트랜잭션이 소수의 행을 빠르게 읽고 쓰는 데 최적화돼 있다