터칭 데이터

Redshift Spectrum, Athena, ML 개념 본문

데이터 웨어하우스(Data Warehouse)

Redshift Spectrum, Athena, ML 개념

터칭 데이터 2023. 11. 29. 18:24

 

어떤 것들이 있을까?

 

Redshift Serverless (가변비용 모델로 이미 앞에서 살펴봄)

Redshift Spectrum (S3 등에 있는 파일들을 테이블처럼 사용가능하게 해줌)
Athena (Apache Presto를 서비스화한 것, 부가 서비스가 아닌 별도 서비스입니다.)
Redshift ML

 

* Apache Presto는 고성능, 분산형 SQL 쿼리 엔진입니다. Presto는 페타바이트 규모의 데이터를 처리할 수 있으며, 여러 데이터 소스에서 데이터를 쿼리할 수 있습니다.

 

 

 

 

Redshift Serverless

앞서 설명했으니 간단하게 살펴보겠습니다.

 

일반 Redshift는 용량을 미리 결정하고 월정액(Fixed Cost)를 지불합니다. 즉, 고정비용입니다.

 

반면에 Redshift Serverless는 사용한 만큼 비용을 지불(On demand)합니다. 즉, 가변비용입니다. BigQuery와 Snowflake와 같은 가변비용 솔루션과 마찬가지로 컴퓨팅 자원과 스토리지가 별개로 존재 합니다. 가변비용이 더 Scalable하므로 비용을 예측하기 힘들다는 재무측면의 단점만 극복해낼 수 있다면 사용이 더 권장됩니다.

 

 

 

 

 

 

Redshift Spectrum

Redshift의 확장 기능입니다.

 

S3에 있는 파일들을 마치 테이블처럼 SQL로 처리 가능합니다.

 

S3 파일들을 외부 테이블들(external table)로 처리하면서 Redshift 테이블과 조인 가능합니다.

 

S3에 있는 매우 큰 테이블들(외부 테이블, external table)은 보통 Fact 테이블이라 부르고 상대적으로 크기가 작은 Redshift 테이블들은 Dimension 테이블이라고 부릅니다. Spectrum은 이 Fact 테이블과 Dimension 테이블을 자유롭게 조인할 수 있도록 해줍니다.

 

1TB를 스캔할 때마다 $5 비용이 발생합니다.


이를 사용하려면 Redshift 클러스터가 필요합니다.
S3와 Redshift 클러스터는 같은 region에 있어야 합니다.

 

S3등의 스토리지를 데이터 레이크라고 생각한다면 데이터 레이크에 있는 큰 데이터를 마치 내부에 있는 테이블처럼 로딩 및 프로세싱할 수 있도록 도와줍니다.

 

 

 

 

 

 

 

Athena

AWS의 Presto 서비스로 사실상 Redshift Spectrum과 아주 흡사한 기능을 제공합니다.

 

다만 아주 작은 차이점이 있는데 Athena는 Redshift내의 테이블에 접근하는 것보다는(할 수는 있습니다!) S3나 다른 데이터 소스의 데이터들을 마치 테이블처럼 접근하는 것에 더 초점이 맞춰져 있습니다. (아주 미세한 차이입니다.)

 

S3와 같은 데이터 레이크 혹은 스토리지의 데이터를 프로세싱 및 정제한 뒤 다시 S3에 적재하거나 다른 스토리지에 저장하는 등 굉장히 큰 비구조화된 데이터들(로그 파일)을 처리하는데 가장 좋은 옵션 중에 하나입니다.

 

Redshift를 사용중이라면 Redshift Spectrum을 그렇지 않은데 S3의 데이터를 처리하고 싶다면 Athena를 사용하면 됩니다.

 

굳이 비교하자면 Athena가 조금 더 체감 성능이 좋습니다.

 

 

 

 

 

 

 

Reshift ML

SQL만 사용하여 머신러닝 모델을 훈련하고 사용할 수 있게 해주는 Redshift 기능입니다.

 

Redshift ML은 혼자 작동하기보다는 AWS의 Sagemaker와 연동되어 작동합니다.

 

SageMaker는 머신러닝 모델을 빌딩하고 테스트하고 배포하고 모니터링하는 머신러닝과 관계된 End-to-End 프레임워크입니다. SageMaker는 Auto Pilot으로 훈련데이터를 로딩하면 가장 적절한 머신러닝 모델을 추천하고 세팅도 결정해줍니다. 지도기계학습(Supervised Machine Learning)에서 특히 유용하다고 합니다.