다루는 내용
· 아마존 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에 접속
∙ 메뉴 FileConnect 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 탭 클릭
∙ 데이터 로드 기록을 확인 할 수 있다.
∙ 아이콘 클릭
상세 정보를 확인 할 수 있다.