CREATETABLEEN TANT QUE - 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.

CREATETABLEEN TANT QUE

Crée une table basée sur une requête. Le propriétaire de cette table est l’utilisateur qui émet la commande.

La nouvelle table est chargée avec les données définies par la requête dans la commande. Les colonnes ont des noms et des types de données associés aux colonnes de sortie de la requête. La commande CREATE TABLE AS (CTAS) crée une nouvelle table et évalue la requête pour charger la nouvelle table.

Syntaxe

CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ ( column_name [, ... ] ) ] [ BACKUP { YES | NO } ] [ table_attributes ] AS query where table_attributes are: [ DISTSTYLE { AUTO | EVEN | ALL | KEY } ] [ DISTKEY( distkey_identifier ) ] [ [ COMPOUND | INTERLEAVED ] SORTKEY( column_name [, ...] ) ]

Paramètres

LOCAL

Même si ce mot-clé facultatif est accepté dans l’instruction, il n’a aucun effet dans Amazon Redshift.

TEMPORARY | TEMP

Crée une table temporaire. Une table temporaire est automatiquement supprimée à la fin de la séance dans laquelle elle a été créée.

table_name

Nom de la table à créer.

Important

Si vous spécifiez un nom de table qui commence par « # », la table est créée comme table temporaire. Par exemple :

create table #newtable (id) as select * from oldtable;

La longueur maximale d’un nom de table est de 127 octets ; les noms plus longs sont tronqués à 127 octets. Amazon Redshift applique un quota correspondant au nombre de tables par cluster et par type de nœud. Le nom de la table peut être qualifié avec le nom de la base de données et le nom du schéma, comme illustré dans le tableau ci-dessous.

create table tickit.public.test (c1) as select * from oldtable;

Dans cet exemple, tickit est le nom de la base de données et public le nom du schéma. Si la base de données ou le schéma n’existe pas, l’instruction renvoie une erreur.

Si un nom de schéma est donné, la nouvelle table est créée dans ce schéma (en supposant que le créateur ait accès au schéma). Le nom de la table doit être un nom unique pour ce schéma. Si aucun schéma n’est spécifié, la table est créée à l’aide du schéma de base de données actuel. Si vous créez une table temporaire, vous ne pouvez pas spécifier un nom de schéma, car les tables temporaires existent dans un schéma spécial.

Plusieurs tables temporaires avec le même nom sont autorisées à exister en même temps dans la base de données même si elles sont créées dans des séances distinctes. Ces tables sont affectées à des schémas différents.

column_name

Nom d’une colonne de la nouvelle table. Si aucun nom de la colonne n’est fourni, les noms de colonnes sont extraits des noms de colonnes de sortie de la requête. Les noms de colonne par défaut sont utilisés pour les expressions. Pour plus d’informations sur les noms valides, consultez Noms et identificateurs.

BACKUP{YES| NON}

Clause qui spécifie si la table doit être incluse dans les instantanés de cluster automatiques et manuels.

Pour les tables, telles que les tables intermédiaires, qui ne contiennent pas de données critiques, spécifiez BACKUP NON pour réduire le temps de traitement lors de la création de snapshots et de la restauration à partir de snapshots et pour réduire l'espace de stockage sur Amazon Simple Storage Service. Le paramètre BACKUP NO n'a aucun effet sur la réplication automatique des données vers les autres nœuds du cluster, de sorte que les tables pour lesquelles la BACKUP valeur NO est spécifiée sont restaurées en cas de défaillance d'un nœud. La valeur par défaut est BACKUPYES.

DISTSTYLE { AUTO | EVEN | KEY | ALL }

Mot-clé qui définit le style de distribution des données pour l’ensemble de la table. Amazon Redshift répartit les lignes d’une table entre les nœuds de calcul selon le style de distribution spécifié pour la table. La valeur par défaut est DISTSTYLEAUTO.

Le style de distribution que vous sélectionnez pour les tables affecte les performances globales de votre base de données. Pour de plus amples informations, veuillez consulter Distribution des données pour l'optimisation des requêtes.

  • AUTO: Amazon Redshift attribue un style de distribution optimal en fonction des données de la table. Pour afficher le style de distribution appliqué à une table, interrogez la table du catalogue du CLASS système PG_. Pour de plus amples informations, veuillez consulter Affichage des styles de distribution.

  • EVEN: les données du tableau sont réparties uniformément sur les nœuds d'un cluster dans le cadre d'une distribution circulaire. IDsLes lignes sont utilisées pour déterminer la distribution, et approximativement le même nombre de lignes est distribué à chaque nœud. Il s’agit de la méthode de distribution par défaut.

  • KEY: Les données sont distribuées par les valeurs de la DISTKEY colonne. Lorsque vous définissez les colonnes de jointure des tables de jointure comme clés de distribution, les lignes de jointure des deux tables sont colocalisées sur les nœuds de calcul. Lorsque les données sont colocalisées, l’optimiseur peut effectuer les jointures plus efficacement. Si vous le spécifiez DISTSTYLEKEY, vous devez nommer une DISTKEY colonne.

  • ALL: une copie de la table complète est distribuée à chaque nœud. Ce style de distribution garantit que toutes les lignes obligatoires pour une jointure sont disponibles sur chaque nœud, mais il multiplie les besoins de stockage et augmente les temps de charge et de maintenance de la table. ALLla distribution peut améliorer le temps d'exécution lorsqu'elle est utilisée avec certaines tables de dimensions pour lesquelles KEY la distribution n'est pas appropriée, mais les améliorations de performances doivent être mises en balance avec les coûts de maintenance.

DISTKEY(colonne)

Spécifie un nom de la colonne ou un numéro positionnel pour la clé de distribution. Utilisez le nom spécifié dans la liste facultative de colonnes de la table ou de la liste de sélection de la requête. Sinon, utilisez un numéro positionnel, où la première colonne sélectionnée est 1, la deuxième 2 et ainsi de suite. Une seule colonne d’une table peut être la clé de distribution.

  • Si vous déclarez une colonne en tant que DISTKEY colonne, elle DISTSTYLE doit être définie sur KEY ou ne pas être définie du tout.

  • Si vous ne déclarez aucune DISTKEY colonne, vous pouvez la DISTSTYLE définir surEVEN.

  • Si vous ne spécifiez pas DISTKEY ou DISTSTYLE si vous CTAS déterminez le style de distribution de la nouvelle table en fonction du plan de requête pour la SELECT clause. Pour de plus amples informations, veuillez consulter Héritage des attributs de colonne et de table.

Vous pouvez définir la même colonne comme clé de distribution et clé de tri ; cette approche a tendance à accélérer les jointures lorsque la colonne en question est une colonne de jointure de la requête.

[COMPOUND|INTERLEAVED] SORTKEY (nom_colonne [,...])

Spécifie une ou plusieurs clés de tri pour la table. Lorsque les données sont chargées dans la table, les données sont triées sur les colonnes désignées comme clés de tri.

Vous pouvez éventuellement spécifier COMPOUND ou INTERLEAVED trier le style. La valeur par défaut estCOMPOUND. Pour de plus amples informations, veuillez consulter Clés de tri.

Vous pouvez définir un maximum de 400 COMPOUND SORTKEY colonnes ou 8 INTERLEAVED SORTKEY colonnes par tableau.

Si vous ne le spécifiez pasSORTKEY, CTAS détermine les clés de tri pour la nouvelle table en fonction du plan de requête de la SELECT clause. Pour de plus amples informations, veuillez consulter Héritage des attributs de colonne et de table.

COMPOUND

Spécifie que les données sont triées à l’aide d’une clé composée, constituée de toutes les colonnes affichées, dans leur ordre d’apparition. Une clé de tri composée est surtout utile lorsqu’une requête analyse les lignes selon l’ordre des colonnes de tri. Les avantages en termes de performances d’un tri avec une clé composée diminuent lorsque les requêtes reposent sur des colonnes de tri secondaires. Vous pouvez définir un maximum de 400 COMPOUND SORTKEY colonnes par table.

INTERLEAVED

Spécifie que les données sont triées à l’aide d’une clé de tri entrelacée. Un maximum de huit colonnes peut être spécifié pour une clé de tri entrelacée.

Comme un tri entrelacé confère un poids égal à chaque colonne, ou sous-ensemble de colonnes, de la clé de tri, les requêtes ne dépendent pas de l’ordre des colonnes de la clé de tri. Quand une requête utilise une ou plusieurs colonnes de tri secondaires, le tri entrelacé améliore les performances des requêtes de façon significative. Le tri entrelacé entraîne un léger coût de traitement pour les opérations de chargement de données et les opérations VACUUM.

AS requête

Toute requête (SELECTinstruction) prise en charge par Amazon Redshift.