
RedShift 사용에 앞서 짧게 RedShift란 무엇인가에 대해 정리해 보았다.
데이터 웨어하우스 서비스이다. PetaByte 규모의 데이터까지 처리할 수 있다.PostgreSQL을 기반으로 두고 있어 표준 SQL을 이용하는 데이터 처리를 지원하며 이를 통해 BI를 얻을 수 있다.컬럼 기반 스토리지가 사용 가능하다. -> 데이터의 압축률을 높이고 저장 용량을 최적화 대용량 병렬 처리(MPP) 기능을 제공한다. -> 대규모 데이터 집합을 빠르게 처리 가능 SQL 기반의 쿼리 언어를 지원한다. 다른 AWS 서비스와 통합되어 있어 데이터를 쉽게 가지고 올 수 있다. -> 높은 유연성과 확장성 제공 RedShift는 고정 비용 옵션이기 때문에 제약이 존재한다. 그래서 대용량의 데이터 (기업에서 사용하는 데이터)를 처리할 때는 Redshift가 아닌 가변 비용 옵션의 데이터 웨어하우스 서비스 Big Query와 Snowflake를 쓰는 것을 추천한다.
출처: https://hevodata.com/blog/amazon-redshift-data-warehouse/
노드 클러스터가 사용된다. Cluster는 하나 이상의 Compute Node로 구성된다.Compute Node가 구성되면 추가적인 Leader Node가 이를 조정하고 외부 통신을 처리한다.Client Application은 Leader Node와만 직접 상호 작용한다.Client Application과 Compute Node 간의 모든 통신을 관리한다. 실행 계획을 기반으로 Leader Node는 코드를 컴파일 하고 이를 Compute Node에 배포해 각 Compute Node에 데이터 일부를 할당한다.Leader Node는 쿼리가 Compute Node의 테이블을 참조하는 경우에만 Compute Node에 SQL문을 전달한다.Leader Node에서만 특정 SQL 함수를 구현 및 설계할 수 있다. 📑 Leader Node에서만 사용할 수 있는 특정 SQL 함수Leader Node에서 전달받은 컴파일된 코드를 실행하고 중간 결과를 Leader Node로 보내 최종 집계를 수행한다.Compute Node는 노드 유형에 따라 자체 전용 CPU와 메모리를 가지게 된다.Node 수를 늘리거나 Node 유형을 업그레이드해 Cluster 컴퓨팅 용량을 늘릴 수 있다.RA3, DC2를 선택하는 것이 좋다.Amazon RedShift Serverless 서비스를 사용할 경우 적절한 리소스를 자동으로 프로비저닝하므로 Node 유형을 선택하지 않아도 된다.Amazon Redshift Spectrum 및 Concurrency Scaling과 같은 고급 기능도 모두 지원된다.Redshift Managed Storage (RMS)와 완벽하게 통합되어 있다.Amazon S3를 사용하여 스토리지를 자동으로 확장하며, 클러스터 크기를 기존 데이터 처리 능력과 스토리지 요구 사항에 따라 조정 가능하다.고성능 스토리지 중심으로 설계됨.RA3 노드와 달리 전용 로컬 스토리지를 사용하여 데이터를 처리하기 때문에 높은 성능을 제공하지만 노드의 스토리지 용량을 확장하는 게 쉽지 않다.고용량 스토리지 중심으로 설계됨.DS2.8xlarge가 존재한다.