터칭 데이터
Redshift의 특징과 개념 본문
Redshift: Scalable SQL 엔진
Amazon Redshift는 Amazon Web Services(AWS)에서 제공하는 완전 관리형, 페타바이트 규모의 데이터 웨어하우스 서비스입니다.
Redshift 역시 SQL입니다.
Redshift의 특징 (1)
2 PB까지 지원
문제는 2페타바이트에 가까워질수록 성능상에 문제가 발생합니다. 이론상 최대 용량이라고 생각하시는게 좋습니다.
Still OLAP
데이터 웨어하우스가 그렇듯 응답속도가 아닌 데이터 크기에 집중했으므로 프로덕션 데이터베이스로는 사용 X
Columnar storate
기존의 프로덕션 데이터베이스는 행별로 데이터가 추가되었습니다. 반면에 Redshift는 컬럼별 압축이 가능합니다.
덕분에 컬럼을 추가, 삭제와 쿼리 실행이 아주 빠르며 데이터를 저장하는데 있어 더 스토리지를 더 효율적으로 사용합니다.
Redshift의 특징 (2)
벌크 업데이트 지원
insert로 행별로 레코드를 하나하나 입력하지 않고 레코드가 들어있는 csv파일, json파일을 한번에 웹 스토리지 AWS의 경우는 S3(Simple Storage Service)에 복사를 하고 COPY 커맨드를 이용해 Redshift로 일괄 복사할 수 있습니다. 덕분에 100만 단위의 레코드들도 수십초에서 1분내에 빠르게 복사할 수 있습니다.
이 메커니즘은 Big Query, Snowflake 모두 제공합니다.
고정 용량/비용 SQL 엔진
사용한 만큼 지불하고 싶다면 Snowflake와 BigQuery가 더 좋은 선택입니다.
(단, 보통 실습에서 사용하는 Redshift serverless는 가변 비용입니다.)
데이터 공유 기능 (Datashare)
다른 AWS 계정과 특정 데이터를 공유할 수 있으며, 데이터를 판매할 수도 있습니다. 이는 Snowflake의 기능을 따라한 것입니다.
primary key uniqueness를 보장하지 않음
다른 데이터 웨어하우스와 마찬가지로 primary key uniqueness를 보장하지 않습니다. 값의 유니크함을 보장하려면 레코드가 추가될 때마다 테이블에서 프라이머리키 로 지정한 필드(컬럼)에 값이 유일하게 존재하는지 체크해야합니다. 그런데 데이터 웨어하우스는 속도가 아닌 데이터의 크기에 초점을 맞췄으므로 이런 과정은 적합하지 않습니다.
테이블을 생성할 때 어떤 필드를 프라이머리 키로 지정해도 같은 값을 여러번 insert해도 전혀 지장이 없습니다.
그렇기 때문에 만일 primary key가 unique함을 보장하려면 데이터 엔지니어가 별도의 작업을 해줘야 합니다. 데이터 엔지니어에 뜻을 두고 계시다면 이러한 배경과 상황에 대해서는 꼭 기억을 해두셔야 합니다.
Redshift는 SQL 기반 관계형 데이터베이스
Postgresql 8.x와 SQL이 호환됨
하지만 Postgresql 8.x의 모든 기능을 지원하지는 않습니다. 예를 들어 Redshift SQL에는 text 타입이 존재하지 않습니다.
호환이 된다는 이야기는 Postgresql 8.x를 지원하는 툴이나 라이브러리를 Redshift도 접근할 수 있다는 뜻입니다.
다시 한번 강조합니다. Redshift는 SQL이 메인 언어입니다. 구조화된 데이터만 다룰 수 있으며 그렇기에 테이블 디자인이 매우 중요합니다.
'데이터 웨어하우스(Data Warehouse)' 카테고리의 다른 글
Redshift 벌크 업데이트 COPY (0) | 2023.11.28 |
---|---|
Redshift Scaling, 분산 저장 방식 (0) | 2023.11.28 |
데이터 플랫폼의 발전단계 (0) | 2023.11.27 |
데이터 웨어하우스 옵션들 (0) | 2023.11.27 |
데이터 레이크와 ELT (0) | 2023.11.27 |