data engineering/data warehouse

Amazon Redshift -1 (설계적 특성 - OLAP, Columnar, MPP, Provisioning)

nani-jin 2024. 9. 23. 17:40

Amazon Redshift는 직접 하둡 클러스터를 운영하지 않아도 클라우드상에서 데이터 웨어하우스를 운영할 수 있게 해준다. 데이터 웨어하우스는 대규모의 데이터를 분석하기 위해 설계되었기 때문에 여러 설계적 특성이 있는데 그중 Redshift가 가지고 있는 특성에 대해 살펴보자

 

 

OLAP(Online Analytics Processing), Columnar Storage, 컬럼별 압축

우리가 흔히 사용했던 OLTP(Online Transaction Processing) 데이터베이스는 트랜잭션 처리를 위해 설계되었다. 즉, OLTP 데이터베이스는 클라이언트가 요청하면 해당하는 로우를 빠르게 찾고 그 데이터를 제공하는 로우 지향 저장소였다

 

하지만 컬럼 단위로 검색이 자주 발생하는 분석 쿼리를 처리하기 위해 설계된 데이터 웨어하우스는 '분석 쿼리를 어떻게 더 효율적으로 처리할까?'라는 고민과 함께 설계되었기 때문에 분석 쿼리가 어떻게 구성되어 있는지 먼저 생각할 필요가 있었다

 

보통 우리가 대규모 데이터셋을 통해 보고싶은 결과는 사용자 단위가 아닌 속성 단위(컬럼 단위)로 검색된다. 따라서 데이터 웨어하우스는 OLAP(Online Analytics Processing) 데이터베이스로 데이터를 컬럼 단위로 저장해 빠르게 대규모 데이터셋에 대한 검색이 수행될 수 있도록 설계되었다

 

데이터를 컬럼별로 저장했을때 또다른 이점은 컬럼별로 데이터를 압축할 수 있다는 것이다. 컬럼별로 데이터를 압축하면 비슷한 값들이 한 저장소에 모이기 때문에 압축률이 좋아지며 스토리지를 효율적으로 사용할 수 있게 된다

 

 

MPP(Massively Parallel Processing)

데이터 웨어하우스는 분산 시스템의 근간인 하둡을 닮아있다. 즉, 하나의 서버에서 처리할 수 없는 데이터 양을 분산시켜 처리함으로써 병렬성을 최대화해 클라이언트에게 빠르게 결과를 전달하려 노력한다

 

MPP는 대규모 병렬 처리를 위한 구조로 Redshift는 리더 노드(머리 역할)와 여러 컴퓨팅 노드(하나의 클러스터에 최대 128개까지 확장할 수 있음)로 구성되고 컴퓨팅 노드에 데이터를 분산 저장/병렬 처리할 수 있다

 

*하둡과 유사한 방식으로 여러 노드에서 병렬 처리를 실행하지만, 사용자가 직접 하둡 클러스터를 구성하는 것은 아니다!

 

[출처] https://dev.to/alexantra/the-r-a-g-redshift-analyst-guide-what-is-redshift-fc1

 

The R.A.G (Redshift Analyst Guide): What is Redshift?

Welcome to the R.A.G, a guide about Amazon's Redshift Database written for the Analyst's out there in...

dev.to

 

 

Provisioning

최근 서버리스 Redshift도 출시되었지만, Redshift는 프로비저닝으로 개발자나 관리자가 필요한 컴퓨팅 리소스를 미리 할당하고 구성하는 형태였다. 인프라 관리에 대한 책임은 사용자에게 있고, 수동 또는 자동으로 리소스를 확장할 수는 있지만 미리 계획해야 한다

 

고정 비용 옵션으로 서버리스 데이터 웨어하우스인 Bigquery와는 다르게 쿼리 비용을 따로 청구하진 않지만, 스토리지만 부족해져도 노드를 늘려야한다는 단점이 존재한다

 

 

정리

Redshift는 하둡을 설치하고 운영하는 번거로움을 대신해 클라우드 환경에서 쉽게 노드를 확장하고 클러스터를 구성할 수 있게 해주는 데이터 웨어하우스 서비스라는 점과 컬럼 지향 저장소, 병렬성을 최대로 하는 MPP 구조라는 특징을 살펴봤다. Redshift는 여러모로 하둡을 닮아있지만 여러 서비스를 통해 하둡을 직접 구축하는 것보단 더 쉽게 접근할 수 있게 관리형으로 제공된다

 

물리적인 공간이 필요없다는 점과 직접 설치하는 번거러움은 줄지만 여전히 인프라 관리의 필요성이 있고, 고정비용 옵션을 선택하면 최소 비용이 만만치 않기 때문에 현재 상황을 살펴보고 도입하는 것이 중요하다