AWS Athena를 S3 데이터 쿼리용으로 사용하고 있었는데, Redshift도 데이터 쿼리 기능을 제공하는 MPP (Massive parallel processing) data warehouse 이다. 그래서 두 서비스 및 같이 비교하여 제공하고 있는 EMR까지 비교해 보았다.
Redshift
- 데이터 웨어하우스 (DW)
- 여러 조인 및 하위 쿼리가 포함 된 매우 복잡한 SQL과 관련된 워크로드에 대해 가장 빠른 쿼리 성능을 가짐
- 인벤토리 시스템, 금융 시스템, 소매 판매 시스템 등 다양한 소스의 데이터 를 하나의 공통 형식으로 취합하여 장기간 보관하고 과거 데이터에서 비즈니스 리포트를 작성할 필요가 있을 때 사용
- TPC-DS: 이러한 사례에 맞게 설계된 표준 벤치마크
- Redshift는 비정형 데이터에 최적화된 쿼리 서비스보다 최대 20배 더 빠르게 실행함
- 결국 Redshift는 복잡한 정형 데이터 에 대한 쿼리에 최적화
Athena
Presto기반의 쿼리 서비스- 서버를 설정하거나 관리할 필요 없이
S3의 데이터에 대한 쿼리를 가장 쉽게 제공 Redshift가 복잡한 정형 데이터에 최적화된 쿼리 서비스인 반면, Athena는 데이터 형식 지정, 인프라 관리에 관계 없이 데이터에 대한 대화형 쿼리를 쉽게 실행할 수 있음- 사이트에서 성능 문제를 해결하기 위해 일부 웹 로그에서 빠른 쿼리를 실행하기만 될 경우에 좋음
- 데이터에 대한 테이블 정의하고, 표준 SQL 사용하면 됨
- Athena DDL은
Apache Hive기반. DDL 및 테이블/파티션을 작성/수정/삭제할 경우에 한해 Hive 쿼리 사용 가능
- Athena DDL은
EMR (Elastic Map Reduce)
- 데이터 처리 프레임워크
- SQL 쿼리를 실행하는 것 외에도 다양한 작업 수행
- Machine Learning, 그래프 분석, 데이터 변환, 스트리밍 데이터 등 애플리케이션에서 필요한 코딩 작업들
Hadoop,Spark,Presto,Hbase등 방대한 양의 데이터를 분산 처리 프레임워크로 가공, 분석- 인프라, 클러스터를 구성하고 관리해야 함
- 이에 대한 관리가 필요 없이
S3데이터에 대한 쿼리를 실행하려면Athena사용 Athena에서 DDL 문을 통해 테이블을 정의하면 EMR을 통해 데이터 쿼리 가능
- 이에 대한 관리가 필요 없이
참고 문서
- Amazon Athena FAQ - AWS 공식 홈페이지