샘플 데이터베이스 - Amazon Redshift

샘플 데이터베이스

이 섹션에서는 Amazon Redshift 설명서 예제에서 사용하는 샘플 데이터베이스인 TICKIT에 대해 설명합니다.

이 작은 크기의 데이터베이스는 팩트 테이블 2개와 차원 테이블 5개, 총 7개의 테이블로 구성되어 있습니다. Amazon Redshift 시작 안내서의 4단계: Amazon S3에서 Amazon Redshift로 데이터 로드 단계에 따라 TICKIT 데이터 세트를 로드할 수 있습니다.

TICKIT 샘플 데이터베이스의 7개 테이블과 테이블 간의 관계입니다.

이 샘플 데이터베이스를 적용하면 사용자가 스포츠 이벤트, 공연 및 콘서트 등을 위한 온라인 티켓을 사고 팔 수 있는 가상의 TICKIT 웹사이트에서 분석가가 판매 작업을 추적하는 데 효과적입니다. 특히 시간 경과에 따른 티켓 이동과 판매자의 성공률, 그리고 티켓이 가장 많이 팔리는 이벤트, 공연장 및 계절 등을 구분할 수 있습니다. 분석가는 이러한 정보를 사용하여 사이트를 자주 방문하는 구매자와 판매자 모두에게 신규 사용자를 유치하거나 광고 및 홍보 효과를 높이는 동기를 제공할 수 있습니다.

예를 들어 다음은 2008년에 판매된 티켓 수를 기준으로 San Diego의 상위 판매자 5명을 찾는 쿼리입니다.

select sellerid, username, (firstname ||' '|| lastname) as name, city, sum(qtysold) from sales, date, users where sales.sellerid = users.userid and sales.dateid = date.dateid and year = 2008 and city = 'San Diego' group by sellerid, username, name, city order by 5 desc limit 5; sellerid | username | name | city | sum ----------+----------+-------------------+-----------+----- 49977 | JJK84WTE | Julie Hanson | San Diego | 22 19750 | AAS23BDR | Charity Zimmerman | San Diego | 21 29069 | SVL81MEQ | Axel Grant | San Diego | 17 43632 | VAG08HKW | Griffin Dodson | San Diego | 16 36712 | RXT40MKU | Hiram Turner | San Diego | 14 (5 rows)

본 설명서의 예에서 사용되는 데이터베이스에는 작은 크기의 데이터 세트가 저장됩니다. 팩트 테이블 2개에는 각각 200,000개 미만의 행이 있고, 차원 테이블은 CATEGORY 테이블의 11개 행부터 USERS 테이블의 50,000개 행에 이르기까지 다양합니다.

특히 본 설명서의 데이터베이스 예는 다음과 같이 Amazon Redshift 테이블 설계의 주요 특성을 잘 드러내고 있습니다.

  • 데이터 분산

  • 데이터 정렬

  • 열 기반 압축

TICKIT 데이터베이스의 테이블 스키마에 대한 자세한 내용을 보려면 다음 탭을 선택하세요.

CATEGORY table
열 명칭 데이터 유형 설명
CATID SMALLINT 각 행의 고유 ID 값을 나타내는 기본 키입니다. 각 행마다 티켓이 매매되는 특정 유형의 이벤트를 나타냅니다.
CATGROUP VARCHAR(10) 이벤트 그룹을 나타내는 서술형 이름(Shows, Sports 등)입니다.
CATNAME VARCHAR(10) 그룹 내 이벤트 유형을 나타내는 짧은 서술형 이름(Opera, Musicals 등)입니다.
CATDESC VARCHAR(50) 이벤트 유형을 나타내는 긴 서술형 이름(Musical theatre 등)입니다.
DATE table
열 명칭 데이터 유형 설명
DATEID SMALLINT 각 행의 고유 ID 값을 나타내는 기본 키입니다. 각 행마다 연중 날짜를 나타냅니다.
CALDATE 날짜 날짜(2008-06-24 등)입니다.
DAY CHAR) 짧은 형식의 주중 요일(SA 등)입니다.
SMALLINT 주의 수(26 등)입니다.
MONTH CHAR) 짧은 형식의 월 이름(JUN 등)입니다.
QTR CHAR) 분기 수(1 ~ 4)입니다.
YEAR SMALLINT 4자리 연도(2008 등)입니다.
holiday BOOLEAN 공휴일(미국 기준) 여부를 나타내는 플래그입니다.
EVENT table
열 명칭 데이터 유형 설명
EVENTID INTEGER 각 행의 고유 ID 값을 나타내는 기본 키입니다. 각 행마다 특정 장소와 시간에 열리는 이벤트를 나타냅니다.
VENUEID SMALLINT VENUE 테이블에 대한 외래 키 참조입니다.
CATID SMALLINT CATEGORY 테이블에 대한 외래 키 참조입니다.
DATEID SMALLINT DATE 테이블에 대한 외래 키 참조입니다.
EVENTNAME VARCHAR(200) Hamlet 또는 La Traviata와 같은 이벤트 이름입니다.
StartTime TIMESTAMP 이벤트가 개최되는 연도 및 날짜와 시작 시간(2008-10-10 19:30:00 등)입니다.
VENUE table
열 명칭 데이터 유형 설명
VENUEID SMALLINT 각 행의 고유 ID 값을 나타내는 기본 키입니다. 각 행마다 이벤트가 열리는 특정 장소를 나타냅니다.
VENUENAME VARCHAR(100) 정확한 장소 이름(Cleveland Browns Stadium 등)입니다.
VENUECITY VARCHAR(30) 도시 이름(Cleveland 등)입니다.
VENUESTATE CHAR) 미국 및 캐나다를 기준으로 2자로 축약된 주 또는 지방(OH 등)입니다.
VENUESEATS INTEGER 알려진 경우에 한해 해당 장소에서 사용할 수 있는 최대 좌석 수(73200 등)입니다. 이 열에는 표현상 null 값이나 0이 포함되기도 합니다.
USERS table
열 명칭 데이터 유형 설명
USERID INTEGER 각 행의 고유 ID 값을 나타내는 기본 키입니다. 각 행마다 1개 이상의 이벤트에서 티켓을 판매하였거나 구매한 등록 사용자(구매자, 판매자 또는 둘 다)를 나타냅니다.
USERNAME CHAR(8) 8자로 구성된 영숫자 사용자 이름(PGL08LJI 등)입니다.
FirstName VARCHAR(30) 사용자의 이름(Victor 등)입니다.
LastName VARCHAR(30) 사용자의 성(Hernandez 등)입니다.
CITY VARCHAR(30) 사용자가 태어난 도시(Naperville 등)입니다.
STATE CHAR) 사용자가 태어난 주(GA 등)입니다.
EMAIL VARCHAR(100) 사용자의 이메일 주소입니다. 이 열에는 임의의 Latin 값(turpis@accumsanlaoreet.org 등)이 포함됩니다.
PHONE CHAR) 14자리의 사용자 전화 번호((818) 765-4255 등)입니다.
LIKESPORTS, ... BOOLEAN truefalse 값으로 사용자의 호불호를 식별할 수 있도록 연속된 10개의 열입니다.
LISTING table
열 명칭 데이터 유형 설명
LISTID INTEGER 각 행의 고유 ID 값을 나타내는 기본 키입니다. 각 행마다 특정 이벤트의 티켓 목록을 나타냅니다.
SELLERID INTEGER USERS 테이블에 대한 외래 키 참조로서 티켓을 판매하는 사용자를 식별합니다.
EVENTID INTEGER EVENT 테이블에 대한 외래 키 참조입니다.
DATEID SMALLINT DATE 테이블에 대한 외래 키 참조입니다.
NUMTICKETS SMALLINT 판매할 수 있는 티켓 수(2, 20 등)입니다.
PRICEPERTICKET DECIMAL(8,2) 티켓 1장당 정가(27.00, 206.00 등)입니다.
TOTALPRICE DECIMAL(8,2) 이 목록의 가격 총액(NUMTICKETS*PRICEPERTICKET)입니다.
LISTTIME TIMESTAMP 이 목록이 게시된 연도 및 날짜와 시간(2008-03-18 07:19:35 등)입니다.
SALES table
열 명칭 데이터 유형 설명
SALESID INTEGER 각 행의 고유 ID 값을 나타내는 기본 키입니다. 각 행마다 특정 목록에서 나타낸 것처럼 특정 이벤트에 대한 1장 이상의 티켓 판매를 나타냅니다.
LISTID INTEGER LISTING 테이블에 대한 외래 키 참조입니다.
SELLERID INTEGER USERS 테이블(티켓을 판매한 사용자)에 대한 외래 키 참조입니다.
BUYERID INTEGER USERS 테이블(티켓을 구매한 사용자)에 대한 외래 키 참조입니다.
EVENTID INTEGER EVENT 테이블에 대한 외래 키 참조입니다.
DATEID SMALLINT DATE 테이블에 대한 외래 키 참조입니다.
QTYSOLD SMALLINT 판매된 티켓 수(1 ~ 8)입니다. 거래 1회에 판매 가능한 최대 티켓 수는 8장입니다.
PRICEPAID DECIMAL(8,2) 티켓을 판매한 가격 총액(75.00, 488.00 등)입니다. 티켓 1장당 가격은 PRICEPAID/QTYSOLD입니다.
COMMISSION DECIMAL(8,2) 사업체에서 티켓 판매 시 징수하는 15% 수수료(11.25, 73.20 등)입니다. 판매자는 PRICEPAID 값의 85%를 받습니다.
SALETIME TIMESTAMP 판매가 완료된 연도 및 날짜와 시간(2008-05-24 06:21:47 등)입니다.