데이터를 저장하고 처리하는 것만으로는 부족합니다. 비즈니스 가치를 만들려면 데이터 안에 숨어 있는 패턴과 인사이트를 찾아내야 합니다. 분석 단계에서는 원시 데이터를 질문에 대한 답으로 변환합니다. 시각화는 그 답을 비전문가도 이해할 수 있는 그래프와 대시보드로 표현합니다. DEA-C01 시험에서 분석 관련 문제는 어떤 상황에 어떤 서비스를 선택할지, 그리고 성능과 비용을 어떻게 최적화할지를 묻습니다.
분석 서비스 비교
AWS에는 분석 목적으로 사용할 수 있는 여러 서비스가 있습니다. 각각의 강점과 적합한 상황이 다릅니다.
| 서비스 | 특징 | 적합한 상황 | |--------|------|------------| | Athena | 서버리스 SQL, S3 직접 쿼리 | 임시 분석, 비용 효율 필요 | | Redshift SQL | 페타바이트급 데이터 웨어하우스 | 복잡한 집계, 대용량 정형 데이터 | | Athena Notebooks | SQL + PySpark 인터랙티브 | 탐색적 분석, ML 전처리 | | DataBrew | 코드 없는 시각적 분석 | 비개발자 데이터 탐색, 품질 확인 |
서비스 선택 기준: 데이터가 S3에 있고 가끔 쿼리한다 → Athena 매일 수천 건의 복잡한 쿼리를 고성능으로 처리한다 → Redshift SQL과 Python을 섞어 탐색적 분석을 한다 → Athena Notebooks SQL 없이 데이터를 시각적으로 탐색한다 → DataBrew
Athena 최적화
Athena는 쿼리할 때마다 스캔한 데이터 양만큼 비용을 냅니다. 적게 스캔할수록 빠르고 저렴합니다.
파티셔닝: 데이터를 날짜, 지역, 카테고리 같은 기준으로 폴더를 나눠 저장합니다. 쿼리에 파티션 컬럼을 필터로 쓰면 해당 파티션만 스캔합니다.
컬럼형 포맷(Parquet, ORC): CSV는 행(row) 단위로 저장합니다. 특정 컬럼만 읽어도 전체 행을 읽어야 합니다. Parquet와 ORC는 컬럼 단위로 저장합니다. 처럼 두 컬럼만 필요한 경우 나머지 컬럼 데이터를 전혀 읽지 않습니다. 스캔량이 크게 줄어 비용과 속도가 동시에 개선됩니다.
압축: Snappy, Gzip 같은 압축을 적용하면 파일 크기가 줄어 스캔 비용이 감소합니다. Parquet와 Snappy를 함께 쓰는 것이 일반적인 모범 사례입니다.
비용 제어: 쿼리당 최대 스캔 허용량 설정 (workgroup 설정) SELECT 대신 필요한 컬럼만 명시 WHERE 절에 파티션 컬럼 포함 LIMIT으로 탐색 쿼리 데이터 제한
QuickSight — 인터랙티브 대시보드
Amazon QuickSight는 AWS의 비즈니스 인텔리전스(BI) 도구입니다. SQL을 몰라도 드래그앤드롭으로 차트와 대시보드를 만들 수 있습니다.
SPICE 엔진: SPICE(Super-fast, Parallel, In-memory Calculation Engine)는 QuickSight의 인메모리 캐시입니다. 원본 데이터를 SPICE로 가져오면 매번 데이터베이스에 쿼리하지 않아도 됩니다. 대용량 데이터를 빠르게 시각화할 수 있고, 동시에 많은 사용자가 접속해도 원본 데이터베이스 부하가 없습니다.
데이터 소스: QuickSight는 다양한 소스에 연결합니다. S3 (Athena를 통해) Redshift RDS / Aurora DynamoDB Salesforce, SAP 같은 SaaS 서비스 직접 파일 업로드(CSV, Excel)
임베딩: QuickSight 대시보드를 자신의 웹 애플리케이션에 포함시킬 수 있습니다. 사용자는 AWS 콘솔에 로그인하지 않아도 애플리케이션 안에서 대시보드를 봅니다.
ML Insights: QuickSight에 내장된 머신러닝 기능입니다. 데이터에서 자동으로 이상값을 탐지하거나, 미래 값을 예측하거나, 기여도 분석(어떤 요소가 변화를 이끌었는가)을 수행합니다. 별도의 ML 지식이 없어도 사용할 수 있습니다.
SQL 분석 기법
데이터 분석에서 자주 사용하는 SQL 패턴을 알아둬야 합니다.
집계 함수:
윈도우 함수: 각 행에 대해 그룹 내 집계 값을 계산합니다. GROUP BY처럼 행을 합치지 않고 개별 행을 유지하면서 순위, 누적합, 이동 평균 같은 계산을 합니다.
PIVOT (피벗): 행 데이터를 열로 변환합니다. Redshift에서는 CASE WHEN으로 피벗을 구현합니다.
CTE (Common Table Expression): 복잡한 쿼리를 단계별로 나눠 읽기 쉽게 만듭니다.
시험 핵심 정리
"S3 데이터를 서버리스로 SQL 분석" → Athena "대용량 복잡 쿼리 고성능 처리" → Redshift "Athena 비용 절감: 파티션" → 파티션 컬럼을 WHERE 절에 사용 "Athena 비용 절감: 포맷" → Parquet 또는 ORC 사용 "QuickSight 빠른 대시보드" → SPICE 인메모리 캐시 "QuickSight 이상값 자동 탐지" → ML Insights "QuickSight를 내 앱에 포함" → 임베딩 "행을 유지하면서 그룹 집계" → 윈도우 함수 "복잡한 쿼리를 단계별로 분리" → CTE