Amazon Redshift를 처음 사용하는 경우 프로비저닝된 클러스터 사용을 시작하는 데 도움이 되도록 다음 섹션을 읽는 것이 좋습니다. Amazon Redshift의 기본 흐름은 프로비저닝된 리소스를 생성하고, Amazon Redshift에 연결하고, 샘플 데이터를 로드한 다음, 데이터에 대한 쿼리를 실행하는 것입니다. 이 안내서에서는 Amazon Redshift 또는 Amazon S3 버킷에서 샘플 데이터를 로드하도록 선택할 수 있습니다. 샘플 데이터는 Amazon Redshift 설명서 전체에서 기능을 설명하는 데 사용됩니다.
이 자습서에서는 시스템 리소스를 관리하는 AWS 데이터 웨어하우스 객체인 Amazon Redshift 프로비저닝 클러스터를 사용하는 방법을 보여 줍니다. Amazon Redshift를 서버리스 작업 그룹과 함께 사용할 수도 있습니다. 이는 사용량에 따라 자동으로 규모가 조정되는 데이터 웨어하우스 객체입니다. Redshift 서버리스 사용을 시작하려면 Amazon Redshift Serverless 데이터 웨어하우스 시작하기 단원을 참조하세요.
Amazon Redshift 프로비저닝 콘솔을 생성하고 로그인한 후 클러스터, 노드, 데이터베이스를 포함한 Amazon Redshift 객체를 생성하고 관리할 수 있습니다. 또한 SQL 클라이언트를 사용하여 쿼리를 실행하고, 쿼리를 보고, 기타 SQL 데이터 정의 언어(DDL) 및 데이터 조작 언어(DML) 작업을 수행할 수도 있습니다.
중요
이 연습에서 프로비저닝하는 클러스터는 실제 환경에서 실행됩니다. 실행되는 동안에는 AWS 계정에 요금이 발생합니다. 요금 정보는 Amazon Redshift 요금 페이지
불필요한 과금을 피하려면 클러스터를 사용한 후 삭제해야 합니다. 이 장의 마지막 섹션에서는 그 방법을 설명합니다.
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/redshiftv2/
Amazon Redshift 콘솔 사용을 시작하려면 먼저 프로비저닝된 클러스터 대시보드로 이동하는 것이 좋습니다.
구성에 따라 Amazon Redshift 프로비저닝 콘솔의 탐색 창에 다음 항목이 나타납니다.
Redshift 서버리스 – Amazon Redshift 프로비저닝된 클러스터를 설정, 조정 및 관리할 필요 없이 데이터에 액세스하고 분석합니다.
프로비저닝된 클러스터 대시보드 - AWS 리전의 클러스터 목록을 보고, 클러스터 지표 및 쿼리 개요에서 지표 데이터(예: CPU 사용률) 및 쿼리 정보에 대한 인사이트를 확인할 수 있습니다. 이를 통해 지정된 시간 범위 동안 성능 데이터가 비정상인지 판단할 수 있습니다.
클러스터 - 이 AWS 리전의 클러스터 목록을 확인하거나, 쿼리를 시작할 클러스터를 선택하거나, 클러스터 관련 작업을 수행합니다. 이 페이지에서 새 클러스터를 생성할 수도 있습니다.
쿼리 편집기 – Amazon Redshift 클러스터에 호스팅된 데이터베이스에 대한 쿼리를 실행합니다. 대신 쿼리 에디터 v2를 사용하는 것이 좋습니다.
쿼리 에디터 v2 – Amazon Redshift 쿼리 에디터 v2는 Amazon Redshift 데이터 웨어하우스에서 쿼리를 작성하고 실행하는 별도의 웹 기반 SQL 클라이언트 애플리케이션입니다. 결과를 차트로 시각화하고 팀의 다른 사용자와 쿼리를 공유하여 협업할 수 있습니다.
쿼리 및 로드(Queries and loads) - 최근 쿼리 목록과 각 쿼리의 SQL 텍스트와 같은 참조 또는 문제 해결을 위한 정보를 제공합니다.
Datashare – 생산자 계정 관리자로서 소비자 계정에 datashare 액세스 권한을 부여하거나 어떠한 액세스 권한도 부여하지 않도록 선택할 수 있습니다. 권한이 부여된 데이터 공유를 사용하기 위해 소비자 계정 관리자는 데이터 공유를 전체 AWS 계정 또는 계정의 특정 클러스터 네임스페이스와 연결할 수 있습니다. 관리자가 datashare를 거부할 수도 있습니다.
제로 ETL 통합 - 지원되는 소스에 작성된 트랜잭션 데이터를 Amazon Redshift에서 사용할 수 있도록 통합을 관리합니다.
IAM Identity Center 연결 - Amazon Redshift와 IAM Identity Center 간의 연결을 구성합니다.
구성(Configurations) – JDBC(Java Database Connectivity) 및 ODBC(Open Database Connectivity) 연결을 통해 SQL 클라이언트 도구에서 Amazon Redshift 클러스터로 연결합니다. Amazon Redshift 관리형 Virtual Private Cloud(VPC) 엔드포인트를 설정할 수도 있습니다. 이렇게 하면 클러스터가 포함된 Amazon VPC 서비스를 기반으로 하는 VPC와 클라이언트 도구를 실행하는 다른 VPC 간에 프라이빗 연결이 제공됩니다.
AWS 파트너 통합 - 지원되는 AWS 파트너와의 통합을 생성합니다.
Advisor - 최적화의 우선순위를 지정하기 위해 Amazon Redshift 클러스터에 적용할 수 있는 변경 사항에 대한 구체적인 권장 사항을 제공합니다.
AWS Marketplace - Amazon Redshift와 함께 작동하는 다른 도구 또는 AWS 서비스에 대한 정보를 제공합니다.
경보(Alarms) - 클러스터 지표에 대한 경보를 생성하여 성능 데이터를 보고 지정한 기간 동안 지표를 추적합니다.
이벤트(Events) - 이벤트를 추적하고 이벤트가 발생한 날짜, 설명 또는 이벤트 소스와 같은 정보에 대한 보고서를 가져옵니다.
새로운 소식(What's new) – 새로운 Amazon Redshift 기능과 제품 업데이트를 봅니다.
이 자습서에서는 다음 단계를 수행합니다.

주제
AWS에 가입
아직 AWS 계정이 없다면 가입하세요. 계정이 이미 있는 경우 이 사전 조건 단계를 건너뛰고 기존 계정을 사용할 수 있습니다.
https://portal.aws.amazon.com/billing/signup
을 엽니다. 온라인 지시 사항을 따릅니다.
등록 절차 중 전화를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.
AWS 계정 루트 사용자에 가입하면 AWS 계정 루트 사용자가 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 루트 사용자 액세스 권한이 필요한 작업을 수행하는 것입니다.
방화벽 규칙 확인
참고
이 자습서에서는 클러스터가 기본 포트 5439를 사용하고 Amazon Redshift 쿼리 에디터 v2를 사용하여 SQL 명령을 실행할 수 있다고 가정합니다. 환경에 필요할 수 있는 네트워킹 구성 또는 SQL 클라이언트 설정에 대해서는 자세히 다루지 않습니다.
일부 환경에서는 Amazon Redshift 클러스터를 시작할 때 포트를 지정합니다. 클러스터의 엔드포인트 URL과 함께 이 포트를 사용하여 클러스터에 액세스합니다. 또한 보안 그룹에 인바운드 수신 규칙을 생성하여 포트를 통해 클러스터에 대한 액세스를 허용합니다.
클라이언트 컴퓨터가 방화벽을 사용하는 경우 사용할 수 있는 개방된 포트를 알아야 합니다. 이 개방된 포트를 사용하여 SQL 클라이언트 도구에서 클러스터에 연결하고 쿼리를 실행할 수 있습니다. 개방된 포트를 모르는 경우 사용자의 네트워크 방화벽 규칙을 알고 있는 사람과 작업하여 방화벽의 개방된 포트를 확인합니다.
Amazon Redshift는 기본적으로 포트 5439를 사용하지만, 포트가 방화벽에서 막혀 있으면 연결이 실패합니다. Amazon Redshift 클러스터의 포트 번호는 생성한 후에는 변경할 수 없습니다. 따라서 시작 프로세스 중에 환경에서 작업하는 개방된 포트를 지정해야 합니다.
1단계: 샘플 Amazon Redshift 클러스터 생성
이 자습서에서는 데이터베이스가 포함된 Amazon Redshift 클러스터를 생성하는 프로세스를 안내합니다. 그런 다음, Amazon S3의 데이터세트를 데이터베이스의 테이블에 로드합니다. 이 샘플 클러스터를 사용하여 Amazon Redshift 서비스를 평가할 수 있습니다.
Amazon Redshift 클러스터 설정을 시작하기 전에 AWS에 가입 및 방화벽 규칙 확인과 같은 필수 사전 요구 사항을 완료했는지 확인합니다.
다른 AWS 리소스의 데이터에 액세스하는 작업의 경우 클러스터에 사용자를 대신해 리소스와 리소스의 데이터에 액세스할 권한이 필요합니다. 예에서는 SQL COPY 명령을 사용하여 Amazon Simple Storage Service(S3)에서 데이터를 로드합니다. AWS Identity and Access Management(IAM)을 사용하여 그러한 권한을 제공합니다. 생성하여 클러스터에 연결한 IAM 역할을 통해 이 작업을 수행할 수 있습니다. 자격 증명 및 액세스 권한에 관한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 자격 증명 및 액세스 권한을 참조하세요.
Amazon Redshift 클러스터를 생성하려면
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/redshiftv2/
에서 Amazon Redshift 콘솔을 엽니다. 중요
IAM 사용자 자격 증명을 사용하는 경우 사용자에게 클러스터 작업을 수행하는 데 필요한 권한이 있는지 확인해야 합니다. 자세한 내용은 Amazon Redshift 관리 안내서의 Amazon Redshift의 보안을 참조하세요.
-
AWS 콘솔에서 클러스터를 생성하려는 AWS 리전을 선택합니다.
-
탐색 메뉴에서 클러스터(Clusters)를 선택한 다음 클러스터 생성(Create cluster)을 선택합니다. 클러스터 생성 페이지가 표시됩니다.
-
[클러스터 구성(Cluster configuration)] 섹션에서 [클러스터 식별자(Cluster identifier)], [노드 유형(Node type)] 및 [노드(Nodes)] 값을 지정합니다.
-
[클러스터 식별자(Cluster identifier)]: 이 튜토리얼의 경우
examplecluster
를 입력합니다. 이 식별자는 고유해야 합니다. 식별자는 유효한 문자로 a~z(소문자만) 및 -(하이픈)을 사용하여 1~63자여야 합니다. -
다음 방법 중 하나를 선택하여 클러스터 크기를 조정합니다.
참고
다음 단계에서는 RA3 노드 유형을 지원하는 AWS 리전을 가정합니다. RA3 노드 유형을 지원하는 AWS 리전 목록은 Amazon Redshift 관리 안내서의 RA3 노드 유형 개요를 참조하세요. 각 노드 유형 및 크기의 노드 사양에 대해 자세히 알아보려면 노드 유형 세부 정보를 참조하세요.
-
클러스터 크기를 얼마로 조정해야 할지 모르는 경우 선택 도움말(Help me choose)을 선택합니다. 이렇게 하면 데이터 웨어하우스에 저장하려는 데이터의 크기 및 쿼리 특성에 대한 질문을 하는 크기 조정 계산기가 열립니다.
클러스터의 필요한 크기(즉, 노드 유형 및 노드 수)를 알고 있는 경우 직접 선택(I'll choose)을 선택합니다. 그런 다음 노드 유형(Node type)과 노드(Nodes) 수를 선택하여 클러스터 크기를 조정합니다.
이 자습서에서는 노드 유형으로 ra3.4xlarge를 선택하고 노드 수로 2를 선택합니다.
AZ 구성을 선택할 수 있는 경우 단일 AZ를 선택합니다.
Amazon Redshift가 제공하는 샘플 데이터 집합을 사용하려면 [샘플 데이터(Sample data)]에서 [샘플 데이터 로드(Load sample data)]를 선택합니다. Amazon Redshift는 샘플 데이터 집합 Tickit을 기본
dev
데이터베이스와public
스키마로 로드합니다.
-
-
-
데이터베이스 구성 섹션에서 관리자 사용자 이름 값을 지정합니다. 관리자 암호의 경우 다음 옵션 중에서 선택합니다.
-
암호 생성 - Amazon Redshift에서 생성된 암호를 사용합니다.
-
관리자 암호 수동 추가 - 내 암호를 사용합니다.
-
AWS Secrets Manager에서 관리자 보안 인증 정보 관리 - Amazon Redshift는 관리자 암호를 생성하고 관리하는 데 AWS Secrets Manager를 사용합니다. AWS Secrets Manager를 사용하여 암호의 보안 암호를 생성하고 관리하면 수수료가 발생합니다. AWS Secrets Manager 요금에 대한 자세한 내용은 AWS Secrets Manager 요금
을 참조하세요.
이 튜토리얼에서는 다음 값을 사용합니다.
[관리자 이름(Admin user name)]:
awsuser
를 입력합니다.관리 사용자 암호: 암호에
Changeit1
을 입력합니다.
-
-
이 자습서에서는 다음에 설명된 대로 IAM 역할을 생성하고 클러스터의 기본값으로 설정합니다. 클러스터에 대해 설정된 기본 IAM 역할은 하나만 있을 수 있습니다.
클러스터 권한(Cluster permissions)의 IAM 역할 관리(Manage IAM roles)에서 IAM 역할 생성(Create IAM role)을 선택합니다.
다음 방법 중 하나로 IAM 역할이 액세스할 Amazon S3 버킷을 지정합니다.
생성된 IAM 역할이
redshift
로 명명된 Amazon S3 버킷에만 액세스하도록 허용하려면 추가 Amazon S3 버킷 없음(No additional Amazon S3 bucket)을 선택합니다.생성된 IAM 역할이 모든 Amazon S3 버킷에 액세스하도록 허용하려면 모든 Amazon S3 버킷(Any Amazon S3 bucket)을 선택합니다.
생성된 IAM 역할이 액세스할 Amazon S3 버킷을 하나 이상 지정하려면 특정 Amazon S3 버킷(Specific Amazon S3 buckets)을 선택합니다. 그런 다음 테이블에서 Amazon S3 버킷을 하나 이상 선택합니다.
기본값으로 IAM 역할 생성(Create IAM role as default)을 선택합니다. Amazon Redshift는 IAM 역할을 자동으로 생성하고 클러스터의 기본값으로 설정합니다.
콘솔에서 IAM 역할을 생성했기 때문에
AmazonRedshiftAllCommandsFullAccess
정책이 연결되어 있습니다. 이를 통해 Amazon Redshift는 IAM 계정의 Amazon 리소스에서 데이터를 복사, 로드, 쿼리 및 분석할 수 있습니다.
클러스터의 기본 IAM 역할을 관리하는 방법에 대한 자세한 내용은 Amazon Redshift 관리 안내서의 Amazon Redshift의 기본값으로 IAM 역할 생성을 참조하세요.
-
(옵션) Additional configurations(추가 구성) 섹션에서 Use defaults(기본값 사용)를 해제하여 Network and security(네트워크 및 보안), Database configuration(데이터베이스 구성), Maintenance(유지 관리), Monitoring(모니터링) 및 Backup(백업) 설정을 수정합니다.
경우에 따라 샘플 데이터 로드(Load sample data) 옵션을 사용하여 클러스터를 생성하고 Enhanced Amazon VPC Routing을 설정할 수 있습니다. 이러한 경우 Virtual Private Cloud(VPC)의 클러스터는 데이터를 로드하기 위해 Amazon S3 엔드포인트에 액세스해야 합니다.
클러스터를 공개적으로 액세스할 수 있도록 하려면 다음 두 가지 중 하나를 수행합니다. 클러스터가 인터넷에 액세스할 수 있도록 VPC에서 네트워크 주소 변환(NAT) 주소를 구성할 수 있습니다. 또는 VPC에서 Amazon S3 VPC 엔드포인트를 구성할 수 있습니다. 향상된 Amazon VPC 라우팅에 관한 자세한 내용은 Amazon Redshift 관리 안내서의 향상된 Amazon VPC 라우팅 단원을 참조하세요.
-
클러스터 생성을 선택합니다. 클러스터 페이지에서 클러스터가
Available
상태로 생성될 때까지 기다립니다.
2단계: SQL 클라이언트에 대한 인바운드 규칙 구성
참고
이 단계를 건너뛰고 Amazon Redshift 쿼리 에디터 v2를 사용하여 클러스터에 액세스하는 것이 좋습니다.
이 튜토리얼의 뒷부분에서는 Amazon VPC 서비스를 기반으로 하는 Virtual Private Cloud(VPC) 내에서 클러스터에 액세스합니다. 그러나 방화벽 외부에서 SQL 클라이언트를 사용하여 클러스터에 액세스하는 경우 인바운드 액세스 권한을 부여해야 합니다.
방화벽을 확인하고 클러스터에 대한 인바운드 액세스 권한을 부여하려면
방화벽 외부에서 클러스터에 액세스해야 하는 경우 방화벽 규칙을 확인합니다. 예를 들어 클라이언트는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스이거나 외부 컴퓨터일 수 있습니다.
방화벽 규칙에 대한 자세한 내용은 Amazon EC2 사용 설명서의 보안 그룹 규칙을 참조하세요.
Amazon EC2 외부 클라이언트에서 액세스하려면 클러스터에 연결된 보안 그룹에 인바운드 트래픽을 허용하는 수신 규칙을 추가합니다. Amazon EC2 콘솔에서 Amazon EC2 보안 그룹 규칙을 추가합니다. 예를 들어 CIDR/IP 192.0.2.0/24를 사용하면 해당 IP 주소 범위의 클라이언트가 사용자의 클러스터에 연결할 수 있습니다. 환경에 맞는 올바른 CIDR/IP를 찾습니다.
3단계: SQL 클라이언트에 대한 액세스 권한 부여 및 쿼리 실행
Amazon Redshift 클러스터에서 호스팅하는 데이터베이스를 쿼리하려는 경우 SQL 클라이언트에 대한 몇 가지 옵션이 있습니다. 다음이 포함됩니다.
클러스터에 연결하고 Amazon Redshift 쿼리 에디터 v2를 사용하여 쿼리를 실행합니다.
쿼리 에디터 v2를 사용하는 경우 SQL 클라이언트 애플리케이션을 다운로드하고 설정할 필요가 없습니다. Amazon Redshift 콘솔에서 Amazon Redshift 쿼리 에디터 v2를 시작합니다.
RSQL을 사용하여 클러스터에 연결합니다. 자세한 내용은 Amazon Redshift 관리 안내서의 Amazon Redshift RSQL을 사용하여 연결을 참조하세요.
-
SQL Workbench/J와 같은 SQL 클라이언트 도구를 통해 클러스터에 연결합니다. 자세한 내용은 Amazon Redshift 관리 안내서의 SQL Workbench/J를 사용하여 클러스터에 연결 단원을 참조하세요.
이 자습서에서는 Amazon Redshift 클러스터에서 호스팅하는 데이터베이스에 대한 쿼리를 실행하는 쉬운 방법으로 Amazon Redshift 쿼리 에디터 v2를 사용합니다. 클러스터를 생성한 후 즉시 쿼리를 실행할 수 있습니다. Amazon Redshift 쿼리 에디터 v2 사용 시 고려 사항에 관한 자세한 내용은 Amazon Redshift 관리 안내서의 쿼리 에디터 v2로 작업할 때 고려할 사항 단원을 참조하세요.
쿼리 편집기 v2에 대한 액세스 권한 부여
관리자가 AWS 계정에 대해 쿼리 편집기 v2를 처음 구성할 때 쿼리 편집기 v2 리소스를 암호화하는 데 사용되는 AWS KMS key를 선택합니다. Amazon Redshift 쿼리 에디터 v2 리소스에는 저장된 쿼리, 노트북, 차트가 포함됩니다. 기본적으로 AWS 소유의 키가 리소스를 암호화하는 데 사용됩니다. 또는 관리자가 구성 페이지에서 키에 대한 Amazon 리소스 이름(ARN)을 선택하여 고객 관리형 키를 사용할 수 있습니다. 계정을 구성한 후에는 AWS KMS 암호화 설정을 변경할 수 없습니다. 자세한 내용은 Amazon Redshift 관리 안내서의 AWS 계정 구성 단원을 참조하세요.
쿼리 편집기 v2에 액세스하려면 권한이 있어야 합니다. 관리자는 Amazon Redshift 쿼리 에디터 v2에 대한 AWS 관리형 정책 중 하나를 IAM 역할 또는 사용자에 연결하여 권한을 부여할 수 있습니다. 이러한 AWS 관리형 정책은 리소스 태깅이 쿼리 공유를 허용하는 방법을 제어하는 다양한 옵션으로 작성됩니다. IAM 콘솔((https://console.aws.amazon.com/iam/
제공된 관리형 정책에서 허용 및 거부된 권한을 기반으로 고유한 정책을 생성할 수도 있습니다. IAM 콘솔 정책 편집기를 사용하여 고유한 정책을 생성하는 경우 시각적 편집기에서 정책을 생성할 서비스로 SQL Workbench를 선택합니다. 쿼리 편집기 v2는 시각적 편집기와 IAM 정책 시뮬레이터에서 서비스 이름으로 AWS SQL Workbench를 사용합니다.
자세한 정보는 Amazon Redshift 관리 안내서의 쿼리 편집기 v2 작업을 참조하세요.
4단계: Amazon S3에서 Amazon Redshift로 데이터 로드
클러스터를 생성한 후 Amazon S3의 데이터를 데이터베이스 테이블로 로드할 수 있습니다. Amazon S3에서 데이터를 로드하는 방법에는 여러 가지가 있습니다.
SQL 클라이언트를 사용해 SQL CREATE TABLE 명령을 실행하여 데이터베이스에 테이블을 생성한 다음, SQL COPY 명령을 사용해 Amazon S3에서 데이터를 로드할 수 있습니다. Amazon Redshift 쿼리 에디터 v2는 SQL 클라이언트입니다.
Amazon Redshift 쿼리 에디터 v2 로드 마법사를 사용할 수 있습니다.
이 자습서에서는 Amazon Redshift Query Editor V2를 사용해 SQL 명령으로 CREATE 테이블 및 COPY 데이터를 실행하는 방법을 보여 줍니다. Amazon Redshift 콘솔 탐색 창에서 쿼리 에디터 v2를 시작합니다. 쿼리 에디터 v2 내에서 관리자 awsuser
로 dev
라는 데이터베이스 및 examplecluster
클러스터에 대한 연결을 생성합니다. 이 자습서에서는 연결을 생성할 때 데이터베이스 사용자 이름을 사용하는 임시 자격 증명을 선택합니다. Amazon Redshift 쿼리 에디터 v2 사용에 대한 자세한 내용은 Amazon Redshift 관리 안내서의 Amazon Redshift 데이터베이스에 연결을 참조하세요.
SQL 명령을 사용하여 Amazon S3에서 데이터 로드
쿼리 에디터 v2 쿼리 편집기 창에서 examplecluster
클러스터 및 dev
데이터베이스에 연결되어 있는지 확인합니다. 다음으로, 데이터베이스에 테이블을 생성하고 테이블에 데이터를 로드합니다. 이 자습서에서는 로드하는 데이터를 여러 AWS 리전에서 액세스할 수 있는 Amazon S3 버킷에서 사용할 수 있습니다.
다음 절차에서는 테이블을 생성하고 퍼블릭 Amazon S3 버킷에서 데이터를 로드합니다.
Amazon Redshift 쿼리 에디터 v2를 사용해 다음 create table 문을 복사하고 실행하여 dev
데이터베이스의 public
스키마에 테이블을 생성합니다. 구문에 대한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 CREATE TABLE 섹션을 참조하세요.
쿼리 에디터 v2와 같은 SQL 클라이언트를 사용하여 데이터를 생성하고 로드하는 방법
-
다음 SQL 명령을 실행하여
sales
테이블을 생성합니다.drop table if exists sales;
create table sales( salesid integer not null, listid integer not null distkey, sellerid integer not null, buyerid integer not null, eventid integer not null, dateid smallint not null sortkey, qtysold smallint not null, pricepaid decimal(8,2), commission decimal(8,2), saletime timestamp);
-
다음 SQL 명령을 실행하여
date
테이블을 생성합니다.drop table if exists date;
create table date( dateid smallint not null distkey sortkey, caldate date not null, day character(3) not null, week smallint not null, month character(5) not null, qtr character(5) not null, year smallint not null, holiday boolean default('N'));
-
COPY 명령을 사용하여 Amazon S3에서
sales
테이블을 로드합니다.참고
Amazon S3에서 Amazon Redshift로 대용량 데이터세트를 로드하려면 COPY 명령을 사용하는 것이 좋습니다. COPY 구문에 대한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 COPY 섹션을 참조하세요.
클러스터가 사용자를 대신하여 Amazon S3에 액세스하여 샘플 데이터를 로드할 수 있도록 인증을 제공합니다. 클러스터를 생성할 때 IAM 역할을 기본값으로 생성을 선택한 경우 생성하고 클러스터의
default
로 설정한 IAM 역할을 참조함으로써 인증을 제공합니다.다음 SQL 명령을 사용하여
sales
테이블을 로드합니다. 필요에 따라 Amazon S3에서sales
테이블의 소스 데이터를 다운로드하고 볼 수 있습니다. . COPY sales FROM 's3://redshift-downloads/tickit/sales_tab.txt' DELIMITER '\t' TIMEFORMAT 'MM/DD/YYYY HH:MI:SS' REGION 'us-east-1' IAM_ROLE default;
-
다음 SQL 명령을 사용하여
date
테이블을 로드합니다. 필요에 따라 Amazon S3에서date
테이블의 소스 데이터를 다운로드하고 볼 수 있습니다. . COPY date FROM 's3://redshift-downloads/tickit/date2008_pipe.txt' DELIMITER '|' REGION 'us-east-1' IAM_ROLE default;
쿼리 에디터 v2를 사용하여 Amazon S3에서 데이터 로드
이 섹션에서는 자체 데이터를 Amazon Redshift 클러스터에 로드에 관해 설명합니다. 쿼리 에디터 v2는 데이터 로드 마법사를 사용할 때 데이터 로드를 간소화합니다. 쿼리 에디터 v2 데이터 로드 마법사에서 생성되고 사용되는 COPY 명령은 Amazon S3에서 데이터를 로드하기 위해 COPY 명령 구문에 사용할 수 있는 많은 파라미터를 지원합니다. COPY 명령 및 Amazon S3에서 로드를 복사하는 데 사용되는 옵션에 대한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 Amazon S3에서 COPY를 참조하세요.
Amazon S3에서 Amazon Redshift로 데이터를 로드하려면 Amazon Redshift에 지정된 Amazon S3 버킷에서 데이터를 로드하는 데 필요한 권한이 있는 IAM 역할이 필요합니다.
Amazon S3에서 Amazon Redshift로 자체 데이터를 로드하려면 Query Editor V2 로드 데이터 마법사를 사용합니다. 로드 데이터 마법사 사용 방법에 관한 자세한 내용은 Amazon Redshift 관리 가이드의 Amazon S3에서 데이터 로드 섹션을 참조하시기 바랍니다.
클러스터에 TICKIT 데이터 생성
TICKIT은 Amazon Redshift에서 데이터를 쿼리하는 방법을 학습하기 위해 필요에 따라 Amazon Redshift 클러스터에 로드할 수 있는 샘플 데이터베이스입니다. 다음과 같은 방법으로 전체 TICKIT 테이블 집합을 생성하고 클러스터에 데이터를 로드할 수 있습니다.
Amazon Redshift 콘솔에서 클러스터를 생성할 때 샘플 TICKIT 데이터를 동시에 로드할 수 있습니다. Amazon Redshift 콘솔에서 클러스터, 클러스터 생성을 선택합니다. 샘플 데이터 섹션에서 샘플 데이터 로드를 선택합니다. Amazon Redshift는 클러스터 생성 중에 자동으로 Amazon Redshift 클러스터
dev
데이터베이스에 샘플 데이터세트를 로드합니다.기존 클러스터에 연결하려면 다음과 같이 수행합니다.
Amazon Redshift 콘솔의 탐색 창에서 클러스터를 선택합니다.
클러스터 창에서 클러스터를 선택합니다.
Query Editor V2에서 데이터 쿼리를 선택합니다.
리소스 목록에서 examplecluster를 펼칩니다. 클러스터에 처음 연결하는 경우 examplecluster에 연결이 나타납니다. 데이터베이스 사용자 이름 및 암호를 선택합니다. 데이터베이스를
dev
로 둡니다. 사용자 이름에서awsuser
, 암호에서Changeit1
를 지정합니다.연결 생성을 선택합니다.
Amazon Redshift 쿼리 에디터 v2를 사용하면 TICKIT 데이터를 sample_data_dev라는 샘플 데이터베이스에 로드할 수 있습니다. 리소스 목록에서 sample_data_dev 데이터베이스를 선택합니다. tickit 노드 옆의 샘플 노트북 열기 아이콘을 선택합니다. 샘플 데이터베이스를 생성할지 확인합니다.
Amazon Redshift 쿼리 에디터 v2는 tickit-sample-notebook이라는 샘플 노트북과 함께 샘플 데이터베이스를 생성합니다. 모두 실행을 선택하여 이 노트북을 실행하여 샘플 데이터베이스의 데이터를 쿼리합니다.
TICKIT 데이터에 관한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 샘플 데이터베이스를 참조하세요.
5단계: 쿼리 편집기를 사용하여 예제 쿼리 시도
Amazon Redshift 쿼리 에디터 v2를 설정하고 사용하여 데이터베이스를 쿼리하려면 Amazon Redshift 관리 안내서의 쿼리 에디터 v2 작업 단원을 참조하세요.
이제 다음과 같이 몇 가지 예제 쿼리를 시도합니다. Query Editor V2에서 새 쿼리를 생성하려면 쿼리 창의 오른쪽 상단에 있는 + 아이콘을 선택하고 SQL을 선택합니다. 다음 SQL 쿼리를 복사하여 붙여넣을 수 있는 새 쿼리 페이지가 나타납니다.
참고
먼저 노트북에서 첫 번째 쿼리를 실행해야 합니다. 이는 다음 SQL 명령을 사용하여 search_path
서버 구성 값을 tickit
스키마로 설정합니다.
set search_path to tickit;
SELECT 명령 작업에 대한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 SELECT 단원을 참조하세요.
-- Get definition for the sales table.
SELECT *
FROM pg_table_def
WHERE tablename = 'sales';
-- Find total sales on a given calendar date.
SELECT sum(qtysold)
FROM sales, date
WHERE sales.dateid = date.dateid
AND caldate = '2008-01-05';
-- Find top 10 buyers by quantity.
SELECT firstname, lastname, total_quantity
FROM (SELECT buyerid, sum(qtysold) total_quantity
FROM sales
GROUP BY buyerid
ORDER BY total_quantity desc limit 10) Q, users
WHERE Q.buyerid = userid
ORDER BY Q.total_quantity desc;
-- Find events in the 99.9 percentile in terms of all time gross sales.
SELECT eventname, total_price
FROM (SELECT eventid, total_price, ntile(1000) over(order by total_price desc) as percentile
FROM (SELECT eventid, sum(pricepaid) total_price
FROM sales
GROUP BY eventid)) Q, event E
WHERE Q.eventid = E.eventid
AND percentile = 1
ORDER BY total_price desc;
6단계: 환경 재설정
이전 단계에서는 Amazon Redshift 클러스터를 생성하고, 테이블에 데이터를 로드하며, Amazon Redshift 쿼리 에디터 v2와 같은 SQL 클라이언트를 사용하여 데이터를 쿼리했습니다.
이 튜토리얼을 마쳤으면 샘플 클러스터를 삭제하여 환경을 이전 상태로 재설정하는 것이 좋습니다. 클러스터를 삭제할 때까지 Amazon Redshift 서비스에 대해 사용 요금이 계속 부과됩니다.
그러나 다른 Amazon Redshift 안내서의 작업이나 데이터 웨어하우스에서 데이터베이스를 정의하고 사용하는 명령 실행에 설명된 작업을 시도해 보려는 경우 샘플 클러스터를 계속 실행하고자 할 수 있습니다.
클러스터를 삭제하려면
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/redshiftv2/
에서 Amazon Redshift 콘솔을 엽니다. -
탐색 메뉴에서 클러스터(Clusters)를 선택하여 클러스터 목록을 표시합니다.
-
examplecluster
클러스터를 선택합니다. 작업에 대해 삭제를 선택합니다. examplecluster 삭제 페이지가 나타납니다. -
삭제할 클러스터를 확인하고 최종 스냅샷 생성 설정을 선택 취소한 다음
delete
를 입력하여 삭제를 확인합니다. 클러스터 삭제(Delete cluster)를 선택합니다.
클러스터가 삭제되면 클러스터 목록 페이지에서 클러스터 상태가 업데이트됩니다.
이 튜토리얼을 마친 후에는 Amazon Redshift에 대해 알아볼 수 있는 추가 리소스에서 Amazon Redshift에 대한 보다 자세한 내용과 다음 단계를 찾아볼 수 있습니다.