Banco de dados de exemplo
Esta seção descreve o TICKIT, um banco de dados que os exemplos da documentação do Amazon Redshift usam.
Este pequeno banco de dados consiste em sete tabelas: duas tabelas de fatos e cinco dimensões. É possível carregar o conjunto de dados TICKIT seguindo as etapas em Etapa 4: Carregar dados do Amazon S3 para o Amazon Redshift no Guia de conceitos básicos do Amazon Redshift.
Esse aplicativo de banco de dados de exemplo ajuda analistas a acompanhar a atividade de vendas do site fictício TICKIT, onde usuários compram e vendem ingressos online para eventos esportivos, shows e concertos. Especificamente, os analistas podem identificar o movimento dos ingressos ao longo do tempo, as taxas de sucesso para vendedores e os eventos, locais e estações mais bem vendidos. Os analistas podem usar essas informações para fornecer incentivos para compradores e vendedores que frequentam o site, para atrair novos usuários e para promover publicidade e promoções.
Por exemplo, a seguinte consulta localiza os cinco principais vendedores em San Diego com base no número de ingressos vendidos em 2008:
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)
O banco de dados usado para os exemplos neste guia contém um pequeno conjunto de dados; as duas tabelas de fatos contêm menos de 200.000 linhas e as dimensões variam de 11 linhas na tabela CATEGORY a, aproximadamente, 50.000 linhas na tabela USERS.
Especificamente, os exemplos do banco de dados neste guia demonstram os recursos chave do design de tabelas do Amazon Redshift:
-
Distribuição de dados
-
Classificação de dados
-
Compactação de colunas
Para obter informações sobre os esquemas das tabelas no banco de dados TICKIT, escolha as seguintes guias:
- CATEGORY table
-
Nome da coluna |
Tipo de dados |
Descrição |
CATID |
SMALLINT |
Chave primária, um valor de ID exclusivo para cada linha. Cada linha representa um tipo específico de evento para o qual ingressos são comprados e vendidos. |
CATGROUP |
VARCHAR (10) |
Nome descritivo para um grupo de eventos, como Shows e Sports . |
CATNAME |
VARCHAR (10) |
Nome descritivo curto para um tipo de evento dentro de um grupo, como Opera e Musicals . |
CATDESC |
VARCHAR(50) |
Nome descritivo mais longo do tipo de evento, como Musical theatre . |
- DATE table
-
Nome da coluna |
Tipo de dados |
Descrição |
DATEID |
SMALLINT |
Chave primária, um valor de ID exclusivo para cada linha. Cada linha representa um dia no ano civil. |
CALDATE |
DATA |
Data do calendário, como 2008-06-24 . |
DAY |
CHAR(3) |
Dia de semana (forma resumida), como SA . |
WEEK |
SMALLINT |
Número da semana, como 26 . |
MONTH |
CHAR(5) |
Nome do mês (forma resumida), como JUN . |
QTR |
CHAR(5) |
Número do trimestre (1 a 4 ). |
YEAR |
SMALLINT |
Ano de quatro dígitos (2008 ). |
HOLIDAY |
BOOLEAN |
Bandeira que denota se o dia é um feriado público (EUA). |
- EVENT table
-
Nome da coluna |
Tipo de dados |
Descrição |
EVENTID |
INTEGER |
Chave primária, um valor de ID exclusivo para cada linha. Cada linha representa um evento distinto que ocorre em um local específico e em uma hora específica. |
VENUEID |
SMALLINT |
Referência de chave estrangeira para a tabela VENUE. |
CATID |
SMALLINT |
Referência de chave estrangeira para a tabela CATEGORY. |
DATEID |
SMALLINT |
Referência de chave estrangeira para a tabela DATE. |
EVENTNAME |
VARCHAR (200) |
Nome do evento, como Hamlet ou La Traviata . |
STARTTIME |
TIMESTAMP |
Data completa e hora de início do evento, como 2008-10-10 19:30:00 . |
- VENUE table
-
Nome da coluna |
Tipo de dados |
Descrição |
VENUEID |
SMALLINT |
Chave primária, um valor de ID exclusivo para cada linha. Cada linha representa um local específico onde os eventos ocorrem. |
VENUENAME |
VARCHAR (100) |
Nome exato do local do evento, como Cleveland Browns Stadium . |
VENUECITY |
VARCHAR (30) |
Nome da cidade, como Cleveland . |
VENUESTATE |
CHAR(2) |
Abreviação de duas letras do estado ou da província (Estados Unidos e Canadá), como OH . |
VENUESEATS |
INTEGER |
Número máximo de assentos disponíveis no local do evento, se conhecido, como 73200 . Para fins de demonstração, essa coluna contém alguns valores nulos e zeros. |
- USERS table
-
Nome da coluna |
Tipo de dados |
Descrição |
USERID |
INTEGER |
Chave primária, um valor de ID exclusivo para cada linha. Cada linha representa um usuário registrado (um comprador ou vendedor ou ambos) que tenha listado ou comprado ingressos para, pelo menos, um evento. |
USERNAME |
CHAR(8) |
Um nome de usuário alfanumérico de 8 caracteres, como PGL08LJI . |
FIRSTNAME |
VARCHAR (30) |
O primeiro nome do usuário, como Victor . |
LASTNAME |
VARCHAR (30) |
O sobrenome do usuário, como Hernandez . |
CITY |
VARCHAR (30) |
A cidade de residência do usuário, como Naperville . |
STATE |
CHAR(2) |
O estado de residência do usuário, como GA . |
EMAIL |
VARCHAR (100) |
O endereço de e-mail do usuário; essa coluna contém valores latinos aleatórios, como turpis@accumsanlaoreet.org . |
PHONE |
CHAR(14) |
O número de telefone com 14 caracteres do usuário, como (818) 765-4255 . |
LIKESPORTS, ... |
BOOLEAN |
Uma série de 10 colunas diferentes que identifica o que usuário gosta e não gosta com os valores true e false . |
- LISTING table
-
Nome da coluna |
Tipo de dados |
Descrição |
LISTID |
INTEGER |
Chave primária, um valor de ID exclusivo para cada linha. Cada linha representa uma listagem de um lote de ingressos para um evento específico. |
SELLERID |
INTEGER |
Referência de chave estrangeira para a tabela USERS, identificando o usuário que está vendendo os ingressos. |
EVENTID |
INTEGER |
Referência de chave estrangeira para a tabela EVENT. |
DATEID |
SMALLINT |
Referência de chave estrangeira para a tabela DATE. |
NUMTICKETS |
SMALLINT |
O número de ingressos disponíveis para venda, como 2 ou 20 . |
PRICEPERTICKET |
DECIMAL(8,2) |
O preço fixo de um ingresso individual, como 27.00 ou 206.00 . |
TOTALPRICE |
DECIMAL(8,2) |
O preço total para esta oferta (NUMTICKETS*PRICEPERTICKET). |
LISTTIME |
TIMESTAMP |
A data e hora completas quando a oferta foi publicada, como 2008-03-18 07:19:35 . |
- SALES table
-
Nome da coluna |
Tipo de dados |
Descrição |
SALESID |
INTEGER |
Chave primária, um valor de ID exclusivo para cada linha. Cada linha representa uma venda de um ou mais ingressos para um evento específico, conforme oferecido na oferta específica. |
LISTID |
INTEGER |
Referência de chave estrangeira para a tabela LISTING. |
SELLERID |
INTEGER |
Referência de chave estrangeira para a tabela USERS (o usuário que vendeu os ingressos). |
BUYERID |
INTEGER |
Referência de chave estrangeira para a tabela USERS (o usuário que comprou os ingressos). |
EVENTID |
INTEGER |
Referência de chave estrangeira para a tabela EVENT. |
DATEID |
SMALLINT |
Referência de chave estrangeira para a tabela DATE. |
QTYSOLD |
SMALLINT |
O número de ingressos que foram vendidos, de 1 a 8 . (No máximo, 8 ingressos podem ser vendidos em uma única transação.) |
PRICEPAID |
DECIMAL(8,2) |
O preço total pago pelos ingressos, como 75.00 ou 488.00 . O preço individual de um ingresso é PRICEPAID/QTYSOLD. |
COMMISSION |
DECIMAL(8,2) |
A comissão de 15% que a empresa coleta da venda, como 11.25 ou 73.20 . O vendedor recebe 85% do valor de PRICEPAID. |
SALETIME |
TIMESTAMP |
A data e hora completas quando a venda foi efetivada, como 2008-05-24 06:21:47 . |