CTASesempi - Amazon Redshift

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à.

CTASesempi

L'esempio seguente crea una tabella chiamata EVENT _ BACKUP per la EVENT tabella:

create table event_backup as select * from event;

La tabella risultante eredita le chiavi di distribuzione e ordinamento dalla EVENT tabella.

select "column", type, encoding, distkey, sortkey from pg_table_def where tablename = 'event_backup'; column | type | encoding | distkey | sortkey ----------+-----------------------------+----------+---------+-------- catid | smallint | none | false | 0 dateid | smallint | none | false | 1 eventid | integer | none | true | 0 eventname | character varying(200) | none | false | 0 starttime | timestamp without time zone | none | false | 0 venueid | smallint | none | false | 0

Il comando seguente crea una nuova tabella richiamata EVENTDISTSORT selezionando quattro colonne dalla EVENT tabella. La nuova tabella viene distribuita EVENTID e ordinata per EVENTID eDATEID:

create table eventdistsort distkey (1) sortkey (1,3) as select eventid, venueid, dateid, eventname from event;

Il risultato è illustrato di seguito.

select "column", type, encoding, distkey, sortkey from pg_table_def where tablename = 'eventdistsort'; column | type | encoding | distkey | sortkey ---------+------------------------+----------+---------+------- eventid | integer | none | t | 1 venueid | smallint | none | f | 0 dateid | smallint | none | f | 2 eventname | character varying(200)| none | f | 0

Puoi creare esattamente la stessa tabella utilizzando i nomi delle colonne per le chiavi di distribuzione e ordinamento. Ad esempio:

create table eventdistsort1 distkey (eventid) sortkey (eventid, dateid) as select eventid, venueid, dateid, eventname from event;

La seguente istruzione applica la distribuzione uniforme alla tabella ma non definisce una chiave di ordinamento esplicita.

create table eventdisteven diststyle even as select eventid, venueid, dateid, eventname from event;

La tabella non eredita la chiave di ordinamento dalla EVENT tabella (EVENTID) perché la EVEN distribuzione è specificata per la nuova tabella. La nuova tabella non ha la chiave di ordinamento e la chiave di distribuzione.

select "column", type, encoding, distkey, sortkey from pg_table_def where tablename = 'eventdisteven'; column | type | encoding | distkey | sortkey ----------+------------------------+----------+---------+--------- eventid | integer | none | f | 0 venueid | smallint | none | f | 0 dateid | smallint | none | f | 0 eventname | character varying(200) | none | f | 0

La seguente istruzione applica la distribuzione uniforme e definisce una chiave di ordinamento:

create table eventdistevensort diststyle even sortkey (venueid) as select eventid, venueid, dateid, eventname from event;

La tabella risultante ha una chiave di ordinamento ma non una chiave di distribuzione.

select "column", type, encoding, distkey, sortkey from pg_table_def where tablename = 'eventdistevensort'; column | type | encoding | distkey | sortkey ----------+------------------------+----------+---------+------- eventid | integer | none | f | 0 venueid | smallint | none | f | 1 dateid | smallint | none | f | 0 eventname | character varying(200) | none | f | 0

L'istruzione che segue ridistribuisce la EVENT tabella su una colonna chiave diversa dai dati in entrata, che vengono ordinati in base alla EVENTID colonna, e non definisce alcuna SORTKEY colonna; pertanto la tabella non viene ordinata.

create table venuedistevent distkey(venueid) as select * from event;

Il risultato è illustrato di seguito.

select "column", type, encoding, distkey, sortkey from pg_table_def where tablename = 'venuedistevent'; column | type | encoding | distkey | sortkey ----------+-----------------------------+----------+---------+------- eventid | integer | none | f | 0 venueid | smallint | none | t | 0 catid | smallint | none | f | 0 dateid | smallint | none | f | 0 eventname | character varying(200) | none | f | 0 starttime | timestamp without time zone | none | f | 0