레드시프트의 특징은 여러가지가 있는데요, 그 중 빠른 성능, 간단신속한 확장과 백업, 데이터 레이크 쿼리를 이 세가지를 꼽아보았습니다.
1) 빠른 성능입니다.
레드시프트는 기존의 데이터웨어 하우스보다 10배 빠른 성능을 자랑합니다. 그것이 가능한 것은 기계학습, 대량 병렬 쿼리 실행, 열 기반 스토리지, 결과 캐싱 때문입니다.
2) 간단신속한 확장과 백업입니다.
3) 데이터 레이크 쿼리입니다.
레드시프트는 레드시프트가 가진 페타바이트 규모의 데이터와 S3에 구축된 데이터 레이크에 있는 엑사바이트 규모의 데이터에 대해 쿼리를 실행할 수 있습니다.
레드시프트는 쿼리를 통한 실행이 가능한건 PostgreSQL을 기반으로 만들어졌기 때문입니다. 레드시프트는 데이터 레이크인 S3에 바로 접근할 수 있기에 데이터를 로딩하는 시간이 없어 시간이 절약됩니다.
레드시프트가 날리는 쿼리로는 Map 안에 Map이 들어간 중첩데이터(ex: c.name.Famliy)에도 접근할 수 있다고 합니다.
1) 확장성
2) 데이터집합적
3) 가격
Oracle
Hbase
Hbase는 와이드 칼럼(wide-column) 저장소입니다. 그래서 다른 비관계형 데이터베이스보다 정형 데이터 및 반정형 데이터 처리에 더 능하고, 관계형 데이터베이스보다 수평 확장성이 더 크고 속도가 더 빠르다는 점이 특징입니다.
Hbase는 확장성이 뛰어납니다. Region은 HBase에서 수평확장(Scale-in/out)의 기본단위인데요, Region은 함께 저장되는 테이블 데이터의 부분집합입니다. 처음에는 테이블은 오직 한개의 Region에만 있는데 만약 Region에 많은 row 들이 추가되서 그 크기가 너무 커지면, 중간키를 이용해서 Region을 반으로 나눠서 저장합니다. key가 있어 빠른 대규모 데이터 탐색이 용이하며 Json 저장을 지원합니다.
다만 클라우드 서비스는 아직 미지원이며, row 단위로 데이터를 다루기 때문에 소규모 데이터 처리가 어렵습니다. 트랜잭션은 row 혹은 rowgroup 단위로 이루어지며, 스키마가 단순하여 복잡한 연산이 어려워 스파크 등에 연산 처리를 맡깁니다.
▶ 데이터를 통째로 가져오는 일: hbase. 열을 가져와서 행대로 나누는게 레드시프트는 적합하지 않다.
Spark
스파크는 DB는 아니지만 레드시프트와 그 기능이 유사한 면이 있어 비교해보았습니다. 스파크는 분산 데이터 처리를 위해 설계된 오픈 소스 클러스터 컴퓨팅 프레임워크 입니다. 레드시프트와 마찬가지로 클러스터를 통한 병렬처리로 인해 빠른 처리속도가 장점이며, 라이브러리를 통해 확장하는 것이 용이합니다. 그리고 실시간으로 데이터를 처리할 수 있습니다.
다만 스파크는 DB가 아니기 때문에 데이터를 저장할 DB가 따로 필요하며, OLTP 기능이 없고, 데이터를 메모리로 읽어들여 처리하기 때문에 만약 데이터가 너무 많으면 노드가 죽을 수도 있습니다(그래서 OLTP 기능이 없음).
▶ 데이터가 적당히 클 때: 스파크. 실시간으로 처리도 가능하고.
▶ 데이터가 클 때: 레드시프트. 가져오는 시간도 많이 걸리는데 S3에 바로 접근할 수 있기에 로드 시간이 없다. 빅데이터 분산 시스템의 운영을 통합해도 좋을듯. 그리고 레드시프트는 기계의 노후화 이런거 신경 안 써도 되니까요... 하드웨어 비용과 비교하여 결정하면 될듯.
DB 성능 측정 산업 표준인 TPC-H 벤치마크의 1TB TPC-H 데이터 세트를 이용한 결과입니다.
TPC-H 데이터 세트는 8개 테이블을 조인한 22개의 쿼리를 이용하여 86.6억개의 레코드를 가져옵니다.
레드시프트와 레드시프트 스펙트럼 모두 10 node cluster dc2.8xlarge 제품을 이용하였습니다.
비용은 시간당 48달러이며 클러스터를 구성하는 시간이 20여분 정도 소요된다고 합니다.
레드시프트
로컬 저장소에 저장되어있는 데이터에 쿼리를 날립니다.
S3에서 클러스터로 COPY를 통해 파일을 로드하였습니다.
22개의 쿼리를 실행한 후 평균을 냈을 때 쿼리 1개당 40.6초 정도 걸렸습니다.
레드시프트 스펙트럼
S3에 저장되어있는 데이터에 직접 쿼리를 날립니다.
22개의 쿼리를 실행한 후 평균을 냈을 때 쿼리 1개당 108초 정도 걸렸습니다.
레드시프트는 RDB이지만 데이터웨어 하우스를 위한 DB로, 분석에 집중하였습니다.
대량의 데이터를 분석하고 BI를 통해 분석리포트를 제공하는 것에 특화되어있으며(OLAP) OLTP용으로는 적합하지 않습니다.
오로라는 MySQL과 PostgreSQL 호환 RDB 입니다. MySQL보다 5배 빠르고 PostgreSQL보다 3배 빠르다는 점을 강점으로 내세우며 해당 DB들에 대해 마이그레이션을 지원합니다. 읽고 쓰기 기능이 빠르며 각 행이나 열에 대한 트랜잭션이 빠릅니다(OLTP). OLAP용으로는 적합하지 않습니다.
1) 키네시스로 리얼타임으로 요청오는 DATA를 수집 및 S3에 적재
2) 적재된 파일을 레드시프트 스펙트럼을 이용하여 분석
3) 분석된 결과를 오로라 DB에 넣어서 BI 같은 툴로 보여주던가 아님 별도 화면을 우리가 만들어서 조회 함 (사용자 실시간 조회)