Developer MJ

[AWS] Amazon Redshift 본문

AWS

[AWS] Amazon Redshift

MIN JOON 2019. 5. 22. 15:46

페타바이트 규모의 처리와 저장을 지원하는 AWS의 완전 관리형 데이터 웨어하우징 서비스

데이터 블록이 다수의 행인 하나의 열을 저장하는 기반 스토리지이므로 대규모 데이터 세트의 스캔 및 복합 분석 OLAP성 쿼리에 적합.

Redshift가 지원하는 압축 인코딩을 통해 데이터를 압축하여 읽기성능을 올릴 수 있다.

 

전통적인 데이터 처리방법샘플링된 데이터로 처리 프로세스를 수행했지만,

최근의 데이터 분석은 모집단 데이터가 있는 곳에서 어플리케이션을 구동하여 분석을 수행한다.

 

Amazon Redshift 쿼리 프로세스

SQL 클라이언트 도구 쿼리 생성 -> 리더 노드에서 쿼리 구문 분석 -> 컴퓨팅 노드에서 쿼리 수행 -> 컴퓨팅 노드는 쿼리 처리결과를 리더노드로 반환 -> 리더 노드는 처리 결과를 집계하여 SQL 클라이언트로 반환

 

클러스터는 리더노드와 다수의 컴퓨팅 노드로 구성되어있고, 데이터를 쉐어하기 위한 노드가 필요하지 않다.

 

MPP구조에서 로컬 스토리지를 이용하는 이유는 각 노드가 수행하려는 작업에 필요한 데이터가 다른 노드에 저장되어 있다면,

노드간 브로드캐스트 모션(데이터 교환)을 발생시킨다.

작업메모리 사이즈보다 큰 데이터를 교환하게 된다면 전체 성능이 떨어지기 때문에 데이터 분산저장 방식을 적절하게 선택해 성능을 향상시켜야 한다.

브로드캐스트되는 데이터의 사이즈가 각 노드의 작업메모리 사이즈보다 작다면, 압축을 하지 않더라도 원하는 성능을 얻을 수도 있다.

 

분산저장 방식 중 key 분산 방식을 선택하면 선택한 컬럼을 hash key 값으로 하여 각 노드의 슬라이스로 분산 저장하게 된다.

이때, key 컬럼의 데이터는 유니크한 값이 되어야하고 where절이나 join절에 조건으로 등장하는 컬럼이 되어야 원하는 성능을 얻을 수도 있다.

 

데이터가 분산될 때는 각 컴퓨팅 노드는 노드 슬라이스로 분할되어 저장된다.

분할된 슬라이스는 각각 코어 캐시 디스크 네트워크의 그룹을 갖는다.

 

리더노드는 쿼리 실행 엔진, 데이터베이스 함수, 클라이언트 리스너로 구성되어 있다.

데이터베이스 함수에서 데이터 로드/언로드는 전통적인 ETL방식처럼 원본 데이터를 데이터베이스에 push하는 방식이 아니라

컴퓨팅 노드가 원본에서 데이터를 pull 하는 방식으로 사용하여 데이터베이스에 적재하기 때문에 빠른 데이터 로딩이 가능하다.

단일 노드에서 발생하는 장애에 대한 처리를 위해 중복데이터가 다른 노드에 미러링 되어있다.

 

Redshift에 동시 쓰기작업을 할 경우 데드락 상태로 빠지지만,

쓰기 작업 중간에 읽기 작업을 수행할 경우 MVCC이기 때문에 쓰기작업 전 스냅샷을 기준으로 읽기작업을 수행할 수 있다.

 

*Redshift의 데이터 소스

S3, EMR(EMRFS), RDS, DynamoDB, 온프레미스 등

 

*데이터 레이크 (S3)

데이터 웨어하우스와 데이터 마트의 유용한 공급원으로 다른 시스템을 위해 데이터를 원시형식으로 저장 

데이터를 유연하게 분석할 수 있도록 사전처리, 필요성 파악 또는 집계없이 최대한 많은 양의 데이터를 수집해야 한다는 요구에서 비롯

 

*Amazon Redshift Spectrum

다양한 이유로 인해서 Redshift에서 언로드하였거나 굳이 Redshift에 적재하여 사용할 필요 없는 S3데이터와 Redshift 데이터를 함께 사용하여 분석작업을 수행하기 위해 사용되는 엑사바이트 규모의 분석이 가능한 서비스

Spectrum이 S3의 데이터를 바라보기 위해서는 외부 스키마를 생성해야 한다.

'AWS' 카테고리의 다른 글

[AWS] 데이터 웨어하우스 (Data Warehouse)  (0) 2019.05.22
[AWS] Big Data - Spark  (0) 2019.02.15
[AWS] Big Data - 하둡 프로그래밍 프레임워크  (0) 2019.02.15
[AWS] Big Data - Hadoop & EMR  (0) 2019.02.15
[AWS] Big Data - 스토리지  (0) 2019.02.15