View a markdown version of this page

Database di esempio - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Database di esempio

In questa sezione viene descritto TICKIT, un database di esempio che viene utilizzato nella maggior parte degli esempi della documentazione di Amazon Redshift.

Questo piccolo database è composto da sette tabelle: due tabelle di fatti e cinque di dimensioni. Per caricare il set di dati TICKIT, segui la procedura descritta in Fase 4: caricare i dati da Amazon S3 in Amazon Redshift nella Guida alle operazioni di base di Amazon Redshift.

Le sette tabelle del database di esempio TICKIT e le relative relazioni reciproche.

Questa applicazione del database di esempio consente agli analisti di tenere traccia delle attività di vendita per il sito Web fittizio TICKIT in cui gli utenti acquistano e vendono biglietti online per eventi sportivi, spettacoli e concerti. In particolare, gli analisti possono monitorare il movimento dei biglietti nel tempo, le percentuali di successo dei venditori e le stagioni, i luoghi e gli eventi più venduti. Gli analisti possono utilizzare queste informazioni per offrire incentivi agli acquirenti e ai venditori che visitano il sito, attirare nuovi utenti e sostenere pubblicità e promozioni.

Ad esempio, la seguente query restituisce i migliori cinque venditori di San Diego, in base al numero di biglietti venduti nel 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)

Il database utilizzato per gli esempi in questa guida contiene un piccolo set di dati, le due tabelle dei fatti contengono ciascuna meno di 200.000 righe e le dimensioni variano da 11 righe nella tabella CATEGORY fino a circa 50.000 righe nella tabella USERS.

In particolare, gli esempi del database in questa guida dimostrano le funzionalità chiave della progettazione della tabella Amazon Redshift:

  • Distribuzione dei dati

  • Ordinamento dei dati

  • Compressione delle colonne

Per informazioni sugli schemi delle tabelle nel database TICKIT, scegli le schede seguenti:

CATEGORY table
Nome della colonna Tipo di dati Description
CATID SMALLINT Chiave primaria, un valore ID univoco per ogni riga. Ogni riga rappresenta un tipo specifico di evento per cui i biglietti sono acquistati e venduti.
CATGROUP VARCHAR(10) Nome descrittivo per un gruppo di eventi, ad esempio Shows e Sports.
CATNAME VARCHAR(10) Breve nome descrittivo per un tipo di evento all'interno di un gruppo, ad esempio Opera e Musicals.
CATDESC VARCHAR(50) Nome descrittivo più lungo per il tipo di evento, ad esempio Musical theatre.
DATE table
Nome della colonna Tipo di dati Description
DATEID SMALLINT Chiave primaria, un valore ID univoco per ogni riga. Ogni riga rappresenta un giorno dell'anno di calendario.
CALDATE DATE Data di calendario, ad esempio 2008-06-24.
GIORNO CHAR(3) Giorno della settimana (forma breve), ad esempio SA.
WEEK SMALLINT Numero della settimana, ad esempio 26.
MESE CHAR(5) Nome del mese (forma breve), ad esempio JUN.
QTR CHAR(5) Numero del trimestre (da 1 a 4).
ANNO SMALLINT Four-digit anno (2008).
HOLIDAY BOOLEAN Bandiera che indica se il giorno è un giorno festivo (U.S.).
EVENT table
Nome della colonna Tipo di dati Description
EVENTID INTEGER Chiave primaria, un valore ID univoco per ogni riga. Ogni riga rappresenta un evento separato che si svolge in un luogo specifico in un determinato momento.
VENUEID SMALLINT Foreign-key riferimento alla tabella VENUE.
CATID SMALLINT Foreign-key riferimento alla tabella CATEGORY.
DATEID SMALLINT Foreign-key riferimento alla tabella DATE.
EVENTNAME VARCHAR(200) Nome dell'evento, ad esempio Hamlet o La Traviata.
STARTTIME TIMESTAMP Data completa e ora di inizio dell'evento, ad esempio 2008-10-10 19:30:00.
VENUE table
nome della colonna Tipo di dati Description
VENUEID SMALLINT Chiave primaria, un valore ID univoco per ogni riga. Ogni riga rappresenta un luogo specifico in cui si svolgono gli eventi.
VENUENAME VARCHAR(100) Nome esatto della sede, ad esempio Cleveland Browns Stadium.
VENUECITY VARCHAR(30) Nome della città, ad esempio Cleveland.
VENUESTATE CHAR(2) Two-letter abbreviazione di stato o provincia (Stati Uniti d'America e Canada), ad esempio. OH
VENUESEATS INTEGER Numero massimo di posti a sedere disponibili presso il luogo, se noti, ad esempio 73200. A scopo dimostrativo, questa colonna contiene valori nulli e zero.
USERS table
Nome della colonna Tipo di dati Description
USERID INTEGER Chiave primaria, un valore ID univoco per ogni riga. Ogni riga rappresenta un utente registrato (un acquirente o un venditore o entrambi) che ha proposto o acquistato i biglietti per almeno un evento.
USERNAME CHAR(8) Un nome utente alfanumerico composto da 8 caratteri, ad esempio PGL08LJI.
FIRSTNAME VARCHAR(30) Il nome dell'utente, ad esempio Victor.
LASTNAME VARCHAR(30) Il cognome dell'utente, ad esempio Hernandez.
CITY VARCHAR(30) La città di origine dell'utente, ad esempio Naperville.
STATE CHAR(2) Il paese di origine dell'utente, ad esempio GA.
EMAIL VARCHAR(100) L'indirizzo e-mail dell'utente; questa colonna contiene valori latini casuali, ad esempio turpis@accumsanlaoreet.org.
PHONE CHAR(14) Il numero di telefono dell'utente composto da 14 caratteri, ad esempio (818) 765-4255.
LIKESPORTS, ... BOOLEAN Una serie di 10 diverse colonne che identificano i "mi piace" e i "non mi piace" dell'utente con i valori true e false.
LISTING table
Nome della colonna Tipo di dati Description
LISTID INTEGER Chiave primaria, un valore ID univoco per ogni riga. Ogni riga rappresenta l'elenco di un lotto di biglietti per un evento specifico.
SELLERID INTEGER Foreign-key riferimento alla tabella USERS, che identifica l'utente che vende i biglietti.
EVENTID INTEGER Foreign-key riferimento alla tabella EVENT.
DATEID SMALLINT Foreign-key riferimento alla tabella DATE.
NUMTICKETS SMALLINT Il numero di biglietti disponibili per la vendita, ad esempio 2 o 20.
PRICEPERTICKET DECIMAL(8,2) Il prezzo fisso di un singolo biglietto, ad esempio 27.00 o 206.00.
TOTALPRICE DECIMAL(8,2) Il prezzo totale per questo elenco (NUMTICKETS*PRICEPERTICKET).
LISTTIME TIMESTAMP La data completa e l'ora di pubblicazione dell'elenco, ad esempio 2008-03-18 07:19:35.
SALES table
nome della colonna Tipo di dati Description
SALESID INTEGER Chiave primaria, un valore ID univoco per ogni riga. Ogni riga rappresenta la vendita di uno o più biglietti per un evento specifico, come viene offerto in un elenco specifico.
LISTID INTEGER Foreign-key riferimento alla tabella LISTING.
SELLERID INTEGER Foreign-key riferimento alla tabella USERS (l'utente che ha venduto i biglietti).
BUYERID INTEGER Foreign-key riferimento alla tabella USERS (l'utente che ha acquistato i biglietti).
EVENTID INTEGER Foreign-key riferimento alla tabella EVENT.
DATEID SMALLINT Foreign-key riferimento alla tabella DATE.
QTYSOLD SMALLINT Il numero di biglietti venduti, da 1 a 8. È possibile vendere un massimo di 8 biglietti in un'unica transazione.
PRICEPAID DECIMAL(8,2) Il prezzo totale pagato per i biglietti, ad esempio 75.00 o 488.00. Il prezzo individuale di un biglietto è PRICEPAID/QTYSOLD.
COMMISSION DECIMAL(8,2) La commissione del 15% che l'azienda riscuote sulla vendita, ad esempio 11.25 o 73.20. Il venditore riceve l'85% del valore di PRICEPAID.
SALETIME TIMESTAMP La data completa e l'ora di completamento della vendita, ad esempio 2008-05-24 06:21:47.