이 실습에서는 외부 테이블을 생성합니다. 일반 Redshift 테이블과는 달리 외부 테이블은 Amazon S3에 저장된 데이터를 참조합니다.
먼저 외부 스키마를 정의합니다. 외부 스키마는 외부 데이터 카탈로그에 있는 데이터 베이스를 참조하고, 클러스터가 사용자 대신 Amazon S3에 액세스 할 수 있도록 권한을 부여하는 IAM 역할 식별자(ARN)를 제공합니다.
redshift_role의 ARN 값으로 대체하고 Editor에서 이 명령을 실행합니다.CREATE EXTERNAL SCHEMA spectrum
FROM DATA CATALOG DATABASE 'spectrumdb'
IAM_ROLE 'INSERT-YOUR-REDSHIFT-ROLE'
CREATE EXTERNAL DATABASE IF NOT EXISTS
Query editor의 결과는 별도 정보가 표시 되지않고 “No records found” 라는 메시지를 수신합니다. Schema “spectrum” already exists 라는 메시지를 수신하면, 다음 단계로 진행하십시오. 이제 spectrum 스키마에 저장될 외부테이블을 생성합니다.

CREATE EXTERNAL TABLE spectrum.sales(
salesid INTEGER,
listid INTEGER,
sellerid INTEGER,
buyerid INTEGER,
eventid INTEGER,
dateid SMALLINT,
qtysold SMALLINT,
pricepaid DECIMAL(8,2),
commission DECIMAL(8,2),
saletime TIMESTAMP
)
ROW FORMAT DELIMITED FIELDS
TERMINATED BY '\t'
STORED AS TEXTFILE LOCATION 's3://awssampledbuswest2/tickit/spectrum/sales/'
TABLE PROPERTIES ('numRows'='172000')
Editor에는 아무런 정보가 표시되지 않습니다. 외부 테이블은 테이블의 목록에 표시되지 않기 때문입니다.
이 문이 Amazon S3에 있는 디렉터리를 가리키는 테이블 정의를 생성했습니다. 디렉터리에는 172,456개의 행이 있는 11MB 텍스트 파일 1개가 포함되어 있습니다. 다음은 파일 콘텐츠 샘플입니다.

각 줄에는 수량, 가격 및 판매 날짜와 같은 판매 정보가 있습니다.