WiseN

아마존 Redshift 활용

Sep 01,2015   |   AWS

작성자_GS Neotek

페이스북 공유하기 트위터 공유하기
Blog thumbnail

다루는 내용


· 아마존 Redshift cluster 실행하기
· SQL 클라이언트 소프트웨어로 Redshift에 접속하기
· S3에서 Redshift로 데이터 입력하기
· Redshift 데이터 쿼리하기
· Redshift에서 데이터 가져오기와 스냅샷 생성하기
· Redshift 성능 모니터링하기


 

 

실습






 

실습에 사용될 데이터는 Oregon 리전의 S3에 저장되어 있다. 원활한 진행을 위해 Oregon 리전에 Redshift 클러스터를 생성하기 바란한다.

 

 




아마존 Redshift 클러스터 생성






 


  • 보안그룹 생성




Redshift 클러스터 생성시 보안그룹을 자동 생성해주지 않는다. 선택만 가능하므로 미리 생성해 둔다.


 

1. 콘솔에서 VPC 클릭
2. 왼쪽 메뉴에서 Security Groups 클릭
3. Create Security Group 클릭

∙ Name 등 입력


 



 

∙ Yes, Create 클릭


4. SGforRedshift 보안그룹 선택
5. Inbound Rules 수정

 



 




 


  • Redshift 클러스터 생성




1. 콘솔에서 Redshift 클릭
2. Launch Cluster 클릭
3. CLUSTER DETAILS 페이지에서

∙ Cluster Identifier : lab
∙ Database Name : lab
∙ Database Port : 5439
∙ Master User Name : master
∙ Master User Password : Redshift123
∙ Confirm Password : Redshift123
∙ Continue 클릭


4. NODE CONFIGURATION 페이지에서

∙ Node Type : dw2.large 선택
∙ Cluster Type : Multi Node 선택
∙ Number of Compute Nodes : 2
∙ Continue 클릭


5. ADDITIONAL CONFIGURATION 페이지에서

∙ VPC Security Groups : SGforRedshift 선택
∙ Create CloudWatch Alarm : No
∙ Continue 클릭


6. REVIEW 페이지에서

∙ Launch Cluster 클릭


7. 확인

 



 

 




SQL 클라이언트 소프트웨어 설치






 

1. 소프트웨어 다운로드

http://www.sql-workbench.net/


 



 

SQL Workbench/J 는 설치형이 아니다. 압축을 푼 후 실행파일을 실행하면 된다.


2. 자바 버츄얼 머신 설치

http://www.java.com/ko/
현재 버전은 자바 버츄얼 머신 7 이후 버전에서 실행되므로 필요한 경우 설치 해준다.


3. 아마존 Redshift JDBC Driver

https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.2.0002.jar
SQL Workbench/J에서 Redshift에 JDBC로 연결할 때 필요한 드라이버이다.


 

 




아마존 Redshift 이해






 


  • 노드와 클러스터




∙ 노드 : 컴퓨팅 자원의 집합
∙ 클러스터 : 노드의 집합


 



 




 


  • 확장성




클러스터를 생성한 후 Scale in/out은 노드의 추가/삭제로 가능하다. Scale up/down은 노드 타입의 변경으로 가능하다. Scale in/out/up/down 모든 경우에 기존 클러스터는 읽기 전용 상태가 되며, 새로운 클러스터가 준비되면 교체된다. 따라서 잠깐의 downtime이 발생한다.


 




 


  • Columnar Storage




Redshift는 data를 전체 row 단위로 저장하는 것보다 column 단위로 저장하는 것이 disk I/O에 유리하다.


 




 


  • 스냅샷과 백업




스냅샷은 클러스터의 point-in-time 백업이다. 스냅샷은 수동, 자동으로 생성될 수 있으며, Redshift는 스냅샷을 SSL 연결로 S3에 저장한다. 스냅샷으로부터 복원시에는 새로운 클러스터가 생성된다.


 




 


  • 클라이언트 툴




아마존 Redshift는 industry-standard SQL을 사용하며, 표준 JDBC와 ODBC 드라이버를 통해 접속할 수 있다.


 




 


  • Workflow




 



 

대용량 데이터를 S3 Bucket에 보관하다가 필요시에 Redshift에 로드하여 쿼리를 통해 분석 작업을 할 수 있다.


 




 


  • Redshift vs RDS




관계형 데이터베이스를 실행할 수 있는 것은 동일하다. RDS는 온라인 트랜잭션 처리에 적합하고, Redshift는 대용량 데이터를 다중 노드와 고성능 리소스를 활용하여 분석하는 작업에 적합하다.


 




 


  • Redshift vs EMR




Redshift는 구조화된 데이터에 쿼리하는 것에 적합하고, EMR은 구조화되지 않은 데이터를 분석하는데 적합하다.


 

 




아마존 Redshift 접속






 

1. 콘솔에서 Redshift 클릭
2. 아이콘 클릭
3. Cluster Database Properties 섹션에서

∙ JDBC URL : jdbc:redshift://lab.c3odhauvxkou.us-west-2.redshift.amazonaws.com:5439/lab


 



 

4. SQL Workbench/J로 Redshift에 접속

∙ 메뉴 FileConnect windows 클릭
∙ 프로파일명 : Redshift 입력
∙ Manage Drivers 클릭
∙ Amazon Redshift JDBC Driver 선택
∙ Select the JAR file(s) that are needed for the JDBC Driver 아이콘 클릭
∙ 다운 받은 RedshiftJDBC-version.jar 파일 선택
∙ Open 클릭
∙ Ok 클릭
∙ URL : jdbc:redshift://lab.c3odhauvxkou.us-west-2.redshift.amazonaws.com:5439/lab
∙ Username : master
∙ Password : Redshift123
∙ OK 클릭


 



 

 




데이터 입력






 


  • 테이블 생성




1. 쿼리 입력 후 실행

 





 




 


  • 테이블 리스트 확인




1. 쿼리 입력 후 실행

 



 




 


  • 테이블에 데이터 입력




1. 쿼리 입력

 



 

2. access key와 secret key 부분 수정 후 실행

 



 




 


  • 테이블 테스트




1. 쿼리 입력 후 실행

 





 

 




쿼리 실행






 


  • 테이블 컨텐츠 보기




1. 쿼리 입력 후 실행

 





 

2. departures의 합을 carrier 기준으로 쿼리

 



 

 




아마존 Redshift 콘솔






 


  • Redshift 모니터링




1. 클러스터 상세 페이지에서 Queries 탭 클릭

 



 

최근에 쿼리한 내역을 확인 할 수 있다.


2. Loads 탭 클릭

∙ 데이터 로드 기록을 확인 할 수 있다.
아이콘 클릭


 



 

상세 정보를 확인 할 수 있다.


 

 




참고