20140806 aws meister blackbelt - amazon redshift (korean)

42
Amazon Redshift [AWS Meister - Black Belt] 웨비나 시리즈 발표자료 번역: 정윤진 솔루션스 아키텍트 자료의 내용은 웨비나가 진행된 시기에 맞춰져 있어 현재의 내용과는 다를 있습니다. 내용에 대한 문의사항이 있으신 경우 [email protected]으로 연락 주시기 바랍니다.

Upload: amazon-web-services-korea

Post on 12-Jul-2015

1.065 views

Category:

Technology


4 download

TRANSCRIPT

Amazon Redshift

[AWS Meister - Black Belt] 웨비나 시리즈 발표자료 번역: 정윤진 솔루션스 아키텍트

이 자료의 내용은 웨비나가 진행된 시기에 맞춰져 있어 현재의 내용과는 다를 수 있습니다. 내용에 대한 문의사항이 있으신 경우 [email protected]으로 연락 주시기 바랍니다.

Agenda

• Amazon Redshift? – Amazon Redshift 아키텍처

• 주요 업데이트

• 설계 및 튜닝 방법

• 사례 소개

• 정리

Amazon Redshift?

Amazon Redshift

• 데이터 저장 특징에 따른 구분

Amazon DynamoDB

Amazon RDS

Amazon ElastiCache

Amazon Redshift

SQL

NoSQL • 빠른 응답 속도

• 메모리 저장소

• 3개 거점에 데이터 분산 복제 저장

• SSD를 사용

• 트랜젝션 처리 • 범용 기술

• 집계 및 분석 처리 • 대량의 데이터

Amazon Redshift 아키텍처

• MPP(대량의 병렬 처리) – CPU、Disk・Network I/O 병렬 처리

– 논리적 자원 관리「노드 슬라이스」

• 데이터 저장 방법 – Row 가 아닌 Column 순차 저장

– 압축

• 데이터 통신 – 컴퓨트 노드간 통신

– 각 컴퓨팅 노드에서 리더 노드와 통신

– 다른 AWS서비스와 통신

아키텍처:MPP(병렬 처리)

SELECT *

FROM lineitem; 컴파일 된 코드의 생성 및 전달

CPU CPU CPU CPU CPU CPU

리더 노드

컴퓨팅 노드

아키텍처:병렬 쿼리 처리

SELECT *

FROM lineitem;

CPU CPU CPU CPU CPU CPU

SELECT *

FROM part;

최대 동시 쿼리 실행: 50

아키텍처:노드 슬라이스

노드 슬라이스 = 메모리와 디스크를 CPU 코어와 동일한 숫자로 분할한 논리 단위

CPU CPU CPU CPU CPU CPU

아키텍처:컬럼(Column) 기반 저장

• 행(row)(RDBMS) • 열(Redshift)

orderid name price

1 Book 100

2 Pen 50

n Eraser 70

orderid name price

1 Book 100

2 Pen 50

n Eraser 70

데이터 저장의 밸런싱

CPU CPU CPU CPU CPU CPU

노드간 데이터의 편차는 쿼리 실행 시간에 영향을 미침

데이터 전송

노드에 필요한 데이터가 없는 경우 데이터 전송이 발생 - 단일노드 전송 - 브로드 캐스팅

리더 노드에 각 컴퓨트 노드 결과를 집계

주요 업데이트

신규 노드 유형 – DW2

• 성능, 비용 효율적인 SSD 기반 스토리지 옵션 추가

DW1 - Dense Storage

vCPU ECU Memory(GB) Storage I/O Price / hour

dw1.xlarge 2 4.4 15 2TB HDD 0.30GB/s $1.250

dw1.8xlarge 16 35 120 16TB HDD 2.40GB/s $10.000

DW2 - Dense Compute

dw2.large 2 7 15 0.16TB SSD 0.20GB/s $0.330

dw2.8xlarge 32 104 244 2.56TB SSD 3.70GB/s $6.400

Free tier 범위확장과 3년 RI 가격 인하

• 2개월간 dw2.large 인스턴스를 730 시간 무료 사용 가능(클러스터 구성 가능)

• BI、Data Integration파트너가 제공하는 무료 평가판 존재 – http://aws.amazon.com/redshift/partners

• 아시아/태평양에서 3년 RI가 25% 이상 가격 인하

분산 방식 – ALL

• EVEN、DISTKEY외에 3번째 분산 방식

• 각 컴퓨팅 노드에 대상 테이블의 모든 레코드가 복제

• 마스터 테이블 등 레코드 수가 적은 테이블 방향

• 주로 조인의 고속화에 높은 효율

* 자세한 내용은 이후 섹션에서 설명

결과 세트의 크기(1)

• 커서마다 결과 세트를 저장

1 2 3 ・・・ n 결과 집합

커서 SELECT * FROM …

결과 세트의 크기(2)

• 결과 세트의 최대 크기 변경 가능 max_cursor_result_set_size:MB단위

A B

C D

dw1.8xlarge

450GB * 4 = 1800GB

A

dw1.8xlarge

225GB * 8 = 1800GB

C

B

D

E

G

F

H

크기 변경= 커서 수 변경

결과 세트의 크기(3)

• 대량의 결과 집합 커서는 권장되지 않음 – 대량의 데이터를 리더 노드에서 일단 집약, 출력(I/O)

• UNLOAD명령을 사용하여 S3에 결과 저장

• Fetch size 매개 변수를 사용하여 커서에서 검색 할 레코드 수를 제어

• 노드 유형마다 결과 세트의 디폴트 값이 다름 http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html#max-cursor-result-set-size-param

압축 유형 - LZO

• 컬럼에 대해 새로운 압축 유형 (LZO) 를 지원

• 문자열에 대해 효과적인 압축으로 자동 선택 – 압축 인코딩이 지정되지 않은 컬럼에 처음 COPY 수행 시

• S3에서 LZOP 형식의 압축 파일에서 COPY

COPY 명령의 확장(1)

• MANIFEST 를 특정 데이터 파일의 copy 에 지정

{

"entries": [

{"url":"s3://mybucket-alpha/2013-10-04-custdata", "mandatory":true},

{"url":"s3://mybucket-alpha/2013-10-05-custdata", "mandatory":true},

{"url":"s3://mybucket-beta/2013-10-04-custdata", "mandatory":true},

{"url":"s3://mybucket-beta/2013-10-05-custdata", "mandatory":true}

]

}

COPY명령의 확장(2)

• JSON 파일 COPY – 데이터 구조 자동인식 또는 JSONPath 에 의한 정의

• Amazon EMR에 대한 대응

copy sales from 'emr:// j-1H7OUO3B52HI5/myoutput/part*' credentials 'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>';

클러스터ID HDFS 경로

Cross-Region COPY

• 다른 region 의 DyanmoDB 및 S3 로 부터 COPY 가능

copy customer from 's3://mybucket/customer/customer.tbl.' credentials

‘aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>’ gzip delimiter '|' region 'us-east-1';

Cross-Region 스냅샷

• 기존 클러스터의 스냅샷을 다른 region 의 클러스터 생성에 사용 가능

• 보존 기간 지정 가능 (최대 35일)

• 지역간 데이터 전송 비용 발생

설계 및 튜닝 방법

테이블 디자인:분산 방식

• EVEN – 각 레코드가 슬라이스에 라운드 로빈 방식으로 분산, 균등하게 데이터가 저장됨

• DISTKEY – 명시적으로 지정한 컬럼을 기준으로 각 레코드의 슬라이스 배치가 결정됨

– 컬럼 카디널리티에 따라 슬라이스간 상당한 편차가 발생 할 수 있다

• ALL – 모든 레코드가 각 컴퓨팅 노드에 동일하게 복제

EVEN vs. DISTKEY

• EVEN • DISTKEY=p_partkey select trim(name) tablename, slice, sum(rows)

from stv_tbl_perm where name='part'

group by name, slice

order by slice;

tablename | slice | sum

-----------+-------+---------

part | 0 | 1600000

part | 1 | 1600000

part | 126 | 1600000

part | 127 | 1600000

tablename | slice | sum

-----------+-------+---------

part | 0 | 1596925

part | 1 | 1597634

part | 126 | 1610452

part | 127 | 1596154

각 슬라이스에 고르게 분산 키의 중요도에 따라

Collocation(1)

• 각 컴퓨트 노드에 공통으로 필요한 데이터의 배치 – 조인의 대상이 되는 레코드를 동일한 노드로 취합

• 처리 방법 1. 조인에 자주 사용되는 열을 DISTKEY로 만들거나 또는

2. 분산 방식 ALL에서 테이블을 생성(마스터 테이블)

select sum(l_extendedprice* (1 - l_discount)) as revenue

from lineitem, part

Where (p_partkey = l_partkey …

1. 각 테이블에서 자주 조인되는 키를 DISTKEY로 적용

또는 2. 분산방식 ALL을 사용하여 작성

Collocation(2):DISTKEY

6200995 | almond pale linen | Manufacturer#3| Brand#32

part

lineitem

5024338535 | 6200995 | 0.01 |0.08 | A | F |1992-01-02 | 1992-02-14

2201039 | almond pale linen | Manufacturer#1| Brand#11

part

lineitem

121932093 | 2201039 | 0.05 |0.43 | D | E |1994-07-11 | 1994-08-23

Collocation(3):ALL

part

lineitem

part

lineitem

l_partkey l_partkey

p_partkey p_partkey

업데이트:모든 노드에 복제 쿼리:조인은 각 컴퓨트 노드에서 처리

설계의 포인트 – 분산 방식

• 작은 테이블은 ALL (마스터 테이블)

• 조인을 자주하지 않고 비정규화 된 테이블은 EVEN으로 분산

• 여러 테이블에서 조인의 대상이 되는 경우 DISTKEY 로 분산

Workload Management

• 장시간 수행되는 쿼리는 단시간 실행되는 쿼리의 수행을 지연시켜 병목을 야기 할 수 있음

• 여러개의 큐를 사용하여 병렬로 쿼리를 수행 할 수 있음

• 쿼리를 지정된 큐로 라우팅 가능

WLM (1)

User Group A

Short-running queue Long-running queue

Long

Query Group

WLM (2)

1 5

WLM 사용의 효과

• 큐 단위로 쿼리의 병렬 수행을 보장 – 메모리의 할당 지정 가능

• 특정 사용자 또는 그룹에 의한 클러스터 점유 방지 – 최대 쿼리 실행 시간도 지정 가능

• 쿼리의 병렬처리 수의 증가가 항상 성능 향상으로 이어지지는 않음

사례의 소개

MUJI Passport

• 온/오프라인 구분 없이 팬들과 소통 – 다수의 미디어에서 데이터의 수집, 분석이 필요

– 소설 미디어 및 실제 매장 인터넷 등

• 지속적인 매장 방문객 증가 -> 매출향상

• 할인의 최소화 -> 대상 마케팅

분석 시스템 구성

SKYLARK Group POS 데이터 실시간 분석

• 수십억건 규모의 POS데이터를 지도, 날씨,

쿠폰 등의 주변 정보와 조합하여 실시간으로 분석

• すかいらーく 그룹은 약 3,000 개소의 매장을 확장 연간 약 4억명이 이용

• POS 데이터 수집, 자동화 된 쿼리의 응답 속도를 수십배 향상

• 기존 2일씩 걸리던 분석 업무를 실시간으로 제공

• 가설 검증 사이클을 최단시간에 처리

NTT DOCOMO의 DWH 통합 프로젝트

http://www.slideshare.net/minoruetoh/nttr4public

결론

• 스타트업 부터 엔터프라이즈까지 폭넓게 사용

• 무료 사용에서 시작하여 클러스터 구축까지 가능

• 노드 수량의 증가와 확장에 의존하지 않는 튜닝 – 테이블 디자인

– Workload Management

Q&A