AWS S3는 유연한 저장소이기 때문에, 같은 S3 버킷이라도 어떤 방식으로 데이터를 저장하고 활용하느냐에 따라 데이터 레이크로도, 데이터 웨어하우스의 일부로도 사용될 수 있습니다. 실무에서는 두 개념을 혼용하거나 병행해서 사용하는 경우도 많기 때문에, 이 글에서는 두 개념의 차이를 먼저 정리하고, 실제로 어떤 방식으로 확인할 수 있는지를 중심으로 정리해보았습니다.
데이터 레이크 vs 데이터 웨어하우스
항목 | 데이터 레이크 | 데이터 웨어하우스 |
---|---|---|
저장 형식 | 정형 + 반정형 + 비정형 (CSV, JSON, 이미지 등) | 정형 (주로 Parquet, ORC, CSV) |
스키마 처리 | schema-on-read (나중에 스키마 적용) | schema-on-write (저장 전 스키마 적용) |
데이터 형태 | 원시(raw) 데이터 | 정제된 데이터 |
주요 도구 | AWS Glue, Athena, EMR, S3 | Redshift, Snowflake, BigQuery 등 |
용도 | 데이터 저장, 탐색, 분석 전처리 | BI, 리포트, 복잡한 쿼리 분석 |
데이터 레이크인지 확인하는 방법
S3 버킷이 데이터 레이크로 사용되고 있는 경우 다음과 같은 특징을 확인할 수 있습니다.
- 다양한 포맷의 데이터가 섞여 있음: CSV, JSON, 로그 파일, 이미지 등
- 폴더 구조가 'raw', 'processed', 'curated' 등으로 구성되어 있음
- AWS Glue 크롤러가 연결되어 있고, 메타데이터가 자동으로 생성됨
- Athena를 통해 직접 쿼리가 가능 (schema-on-read 방식)
- EMR, Glue, Lambda 등을 통한 데이터 처리 파이프라인 존재
예를 들어, /my-bucket/data-lake/raw/logs/
아래에 JSON 로그 파일들이 존재하고, Glue Crawler가 주기적으로 이 경로를 스캔해 테이블을 자동 생성한다면, 이는 데이터 레이크의 전형적인 모습입니다.
데이터 웨어하우스인지 확인하는 방법
S3가 Redshift나 Snowflake 같은 데이터 웨어하우스의 외부 테이블 소스로 활용되고 있다면, 다음과 같은 특징이 보입니다.
- 데이터가 구조화되어 있고, 테이블처럼 명확히 정리되어 있음
- 포맷이 Parquet 또는 ORC 등 쿼리 최적화에 적합한 형식
- ETL 또는 ELT 과정을 통해 정제되어 저장됨
- Redshift Spectrum 또는 Snowflake External Table로 연결됨
- 스키마가 사전에 정의되어 있음 (schema-on-write)
예를 들어, /my-bucket/data-warehouse/sales/year=2024/month=03/
이런 식의 파티셔닝 구조로 Parquet 파일이 저장되어 있고, 이를 Redshift에서 CREATE EXTERNAL TABLE
로 참조하고 있다면, 해당 데이터는 웨어하우스 용도로 쓰이고 있다고 볼 수 있습니다.
실제 확인 방법 요약
- S3 콘솔 또는 CLI로 구조와 포맷 확인
- Glue Data Catalog 및 크롤러 확인
- Athena에서 쿼리 가능 여부 확인
- Redshift나 Snowflake 등과 연결된 외부 테이블 확인
- ETL/ELT 파이프라인 유무 확인 (Glue Job, Lambda, Airflow 등)
데이터 구조, 목적, 연동된 서비스 등을 종합적으로 살펴보면, 해당 S3 버킷이 데이터 레이크용인지 웨어하우스 용도인지 쉽게 파악할 수 있습니다.
반응형
'개발 (Development) > AWS' 카테고리의 다른 글
[AWS] AWS 환경에서 모델 학습 API 호출 시 Broken pipe 에러 해결 과정 (0) | 2025.06.28 |
---|---|
[AWS] S3 객체 권한 변경 - PutObjectAcl (0) | 2025.04.12 |
[AWS] AWS ECR에 MFA로 Docker 로그인 자동화하기 (.bat 파일) (0) | 2025.04.12 |