CTASexemples - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

CTASexemples

L'exemple suivant crée une table nommée EVENT _ BACKUP pour la EVENT table :

create table event_backup as select * from event;

La table résultante hérite des clés de distribution et de tri de la EVENT table.

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

La commande suivante crée une nouvelle table appelée en EVENTDISTSORT sélectionnant quatre colonnes dans la EVENT table. Le nouveau tableau est distribué EVENTID et trié par EVENTID DATEID :

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

Le résultat est le suivant :

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

Vous pouvez créer exactement la même table à l’aide des noms de colonne pour les clés de tri et de distribution. Par exemple :

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

L’instruction suivante applique une distribution uniforme à la table, mais ne définit pas une clé de tri explicite :

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

La table n'hérite pas de la clé de tri de la EVENT table (EVENTID) car EVEN la distribution est spécifiée pour la nouvelle table. La nouvelle table n’a ni clé de tri, ni clé de distribution.

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

L’instruction suivante applique une distribution uniforme et définit une clé de tri :

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

La table en résultant dispose d’une clé de tri, mais pas de clé de distribution.

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'instruction suivante redistribue le EVENT tableau sur une colonne clé différente de celle des données entrantes, qui sont triées dans la EVENTID colonne, et ne définit aucune SORTKEY colonne ; le tableau n'est donc pas trié.

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

Le résultat est le suivant :

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