데이터 분석과 시각화

S3의 데이터를 SQL로 분석하는 Athena, 대화형 대시보드를 만드는 QuickSight, 강력한 SQL 분석 기법까지 초보자 눈높이로 설명합니다.

데이터를 저장하고 처리하는 것만으로는 부족합니다. 비즈니스 가치를 만들려면 데이터 안에 숨어 있는 패턴과 인사이트를 찾아내야 합니다. 분석 단계에서는 원시 데이터를 질문에 대한 답으로 변환합니다. 시각화는 그 답을 비전문가도 이해할 수 있는 그래프와 대시보드로 표현합니다. 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

블로그 목록으로 돌아가기