ALTER TABLE - Amazon Redshift

ALTER TABLE

Modifie la définition d'une table de base de données ou d'une table externe Amazon Redshift Spectrum. Cette commande met à jour les valeurs et les propriétés définies par CREATE TABLE ou CREATE EXTERNAL TABLE.

Vous ne pouvez pas exécuter ALTER TABLE sur une table externe au sein d'un bloc de transaction (BEGIN ... END). Pour plus d'informations sur les transactions, consultez Isolement sérialisable.

ALTER TABLE verrouille la table pour les opérations de lecture et d'écriture jusqu'à la fin de la transaction englobant l'opération ALTER TABLE, sauf s'il est indiqué spécifiquement dans la documentation que vous pouvez interroger des données ou effectuer d'autres opérations sur la table pendant sa modification.

Privilèges requis

Les privilèges suivants sont requis pour ALTER TABLE :

  • Superuser

  • Utilisateurs disposant du privilège ALTER TABLE

  • Propriétaire de la table ou du schéma

Syntaxe

ALTER TABLE table_name 
{
ADD table_constraint 
| DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ] 
| OWNER TO new_owner 
| RENAME TO new_name 
| RENAME COLUMN column_name TO new_name            
| ALTER COLUMN column_name TYPE new_data_type
| ALTER COLUMN column_name ENCODE new_encode_type     
| ALTER COLUMN column_name ENCODE encode_type, 
| ALTER COLUMN column_name ENCODE encode_type, .....;      
| ALTER DISTKEY column_name 
| ALTER DISTSTYLE ALL       
| ALTER DISTSTYLE EVEN
| ALTER DISTSTYLE KEY DISTKEY column_name 
| ALTER DISTSTYLE AUTO             
| ALTER [COMPOUND] SORTKEY ( column_name [,...] ) 
| ALTER SORTKEY AUTO 
| ALTER SORTKEY NONE
| ALTER ENCODE AUTO
| ADD [ COLUMN ] column_name column_type
  [ DEFAULT default_expr ]
  [ ENCODE encoding ]
  [ NOT NULL | NULL ] |
| DROP [ COLUMN ] column_name [ RESTRICT | CASCADE ] }

where table_constraint is:

[ CONSTRAINT constraint_name ]
{ UNIQUE ( column_name [, ... ] )  
| PRIMARY KEY ( column_name [, ... ] ) 
| FOREIGN KEY (column_name [, ... ] )
   REFERENCES  reftable [ ( refcolumn ) ]}

The following options apply only to external tables:

SET LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file' } 
| SET FILE FORMAT format |
| SET TABLE PROPERTIES ('property_name'='property_value') 
| PARTITION ( partition_column=partition_value [, ...] ) 
  SET LOCATION { 's3://bucket/folder' |'s3://bucket/manifest_file' } 
| ADD [IF NOT EXISTS] 
    PARTITION ( partition_column=partition_value [, ...] ) LOCATION { 's3://bucket/folder' |'s3://bucket/manifest_file' }
    [, ... ]
| DROP PARTITION ( partition_column=partition_value [, ...] )  

Pour réduire le temps d'exécution de la commande ALTER TABLE, vous pouvez combiner certaines clauses de la commande ALTER TABLE.

Amazon Redshift prend en charge les combinaisons suivantes des clauses ALTER TABLE :

ALTER TABLE tablename ALTER SORTKEY (column_list), ALTER DISTKEY column_Id; ALTER TABLE tablename ALTER DISTKEY column_Id, ALTER SORTKEY (column_list); ALTER TABLE tablename ALTER SORTKEY (column_list), ALTER DISTSTYLE ALL; ALTER TABLE tablename ALTER DISTSTYLE ALL, ALTER SORTKEY (column_list);

Amazon Redshift prend en charge le contrôle de sécurité de niveau des lignes de la clause ALTER TABLE :

ALTER TABLE tablename ROW LEVEL SECURITY { ON | OFF };

Pour activer l'actualisation automatique d'une vue matérialisée, utilisez la commande ALTER TABLE suivante.

ALTER TABLE mv_name ALTER AUTOREFRESH = [TRUE | FALSE]

Paramètres

table_name

Nom de la table à modifier. Spécifiez simplement le nom de la table ou choisissez le format nom_schéma.nom_table pour utiliser un schéma spécifique. Les tables externes doivent être qualifiées à l'aide d'un nom de schéma externe. Vous pouvez aussi spécifier un nom de vue si vous utilisez l'instruction ALTER TABLE pour renommer une vue ou modifier son propriétaire. La longueur maximale d'un nom de table est de 127 octets ; les noms plus longs sont tronqués à 127 octets. Vous pouvez utiliser des caractères multioctets UTF-8 jusqu'à un maximum de quatre octets. Pour plus d'informations sur les noms valides, consultez Noms et identificateurs.

ADD contrainte_table

Clause qui ajoute la contrainte spécifiée à la table. Pour obtenir les descriptions des valeurs de contrainte_table valides, consultez CREATE TABLE.

Note

Vous ne pouvez pas ajouter une contrainte de clé primaire à une colonne acceptant la valeur null. Si la colonne a été créée à l'origine avec la contrainte NOT NULL, vous pouvez ajouter la contrainte de clé primaire.

DROP CONSTRAINT nom_contrainte

Clause qui supprime la contrainte nommée de la table. Pour supprimer une contrainte, spécifiez son nom et non son type. Pour afficher le nom des contraintes de la table, exécutez la requête suivante.

select constraint_name, constraint_type from information_schema.table_constraints;
RESTRICT

Clause qui supprime uniquement la contrainte spécifiée. RESTRICT est une option de DROP CONSTRAINT. RESTRICT ne peut pas être utilisée avec CASCADE.

CASCADE

Clause qui supprime la contrainte spécifiée ainsi que tout ce qui en dépend. CASCADE est une option de DROP CONSTRAINT. CASCADE ne peut pas être utilisée avec RESTRICT.

OWNER TO nouveau_propriétaire

Clause qui modifie le propriétaire de la table (ou de la vue) avec la valeur nouveau_propriétaire.

RENAME TO nouveau_nom

Clause qui renomme une table (ou une vue) selon la valeur spécifiée dans nouveau_nom. La longueur maximale d'un nom de table est de 127 octets ; les noms plus longs sont tronqués à 127 octets.

Vous ne pouvez pas renommer une table permanente en un nom commençant par « # ». Un nom de table commençant par « # » indique une table temporaire.

Vous ne pouvez pas renommer une table externe.

ALTER COLUMN nom_colonne TYPE new_data_type

Clause qui modifie la taille d'une colonne définie en tant que type de données VARCHAR. Prenez en compte les restrictions suivantes :

  • Vous ne pouvez pas modifier une colonne avec des encodages de compression BYTEDICT, RUNLENGTH, TEXT255 ou TEXT32K.

  • Vous ne pouvez pas réduire la taille en dessous de la taille maximale des données existantes.

  • Vous ne pouvez pas modifier des colonnes avec des valeurs par défaut.

  • Vous ne pouvez pas modifier des colonnes avec UNIQUE, PRIMARY KEY ou FOREIGN KEY.

  • Vous ne pouvez pas modifier des colonnes dans un bloc de transaction (BEGIN ... END). Pour plus d'informations sur les transactions, consultez Isolement sérialisable.

ALTER COLUMN column_name ENCODE new_encode_type

Clause qui modifie l'encodage de compression d'une colonne. Si vous spécifiez le codage de compression pour une colonne, la table n'est plus définie sur ENCODE AUTO. Pour obtenir des informations sur l'encodage de la compression, consultez Utilisation de la compression de colonne.

Lorsque vous modifiez l'encodage de compression pour une colonne, la table reste disponible à des fins d'interrogation.

Prenez en compte les restrictions suivantes :

  • Vous ne pouvez pas modifier une colonne avec le même encodage que celui actuellement défini pour la colonne.

  • Vous ne pouvez pas modifier l'encodage d'une colonne dans une table avec une clé de tri entrelacée.

ALTER COLUMN column_name ENCODE encode_type, ALTER COLUMN column_name ENCODE encode_type, .....;

Clause qui modifie le codage de compression de plusieurs colonnes dans une seule commande. Pour obtenir des informations sur l'encodage de la compression, consultez Utilisation de la compression de colonne.

Lorsque vous modifiez l'encodage de compression pour une colonne, la table reste disponible à des fins d'interrogation.

Prenez en compte les restrictions suivantes :

  • Vous ne pouvez pas modifier une colonne pour un type de codage identique ou différent plusieurs fois dans une seule commande.

  • Vous ne pouvez pas modifier une colonne avec le même encodage que celui actuellement défini pour la colonne.

  • Vous ne pouvez pas modifier l'encodage d'une colonne dans une table avec une clé de tri entrelacée.

ALTER DISTSTYLE ALL

Clause qui modifie le style de distribution existant d'une table en ALL. Éléments à prendre en compte :

  • ALTER DISTSYTLE, ALTER SORTKEY et VACUUM ne peuvent pas s'exécuter simultanément sur la même table.

    • Si VACUUM est en cours d'exécution, l'exécution de ALTER DISTSTYLE ALL renvoie une erreur.

    • Si ALTER DISTSTYLE ALL est en cours d'exécution, une opération VACCUM en arrière-plan ne démarre pas sur une table.

  • La commande ALTER DISTSTYLE ALL n'est pas prise en charge pour les tables ayant des clés de tri entrelacées et les tables temporaires.

  • Si le style de distribution était précédemment défini sur AUTO, la table n'est plus candidate à l'optimisation automatique.

Pour plus d'informations sur DISTSTYLE ALL, consultez CREATE TABLE.

ALTER DISTSTYLE EVEN

Clause qui modifie le style de distribution existant d'une table en EVEN. Éléments à prendre en compte :

  • ALTER DISTSYTLE, ALTER SORTKEY et VACUUM ne peuvent pas être exécutés simultanément sur la même table.

    • Si VACUUM est en cours d'exécution, l'exécution d'ALTER DISTSTYLE EVEN renvoie une erreur.

    • Si ALTER DISTSTYLE EVEN est en cours d'exécution, une opération VACUUM en arrière-plan ne démarre pas sur une table.

  • La commande ALTER DISTSTYLE EVEN n'est pas prise en charge pour les tables ayant des clés de tri entrelacées et des tables temporaires.

  • Si le style de distribution était précédemment défini sur AUTO, la table n'est plus candidate à l'optimisation automatique.

Pour plus d'informations sur DISTSTYLE ALL, consultez CREATE TABLE.

ALTER DISTKEY nom_colonne ou ALTER DISTSTYLE KEY DISTKEY nom_colonne

Clause qui modifie la colonne utilisée en tant que clé de distribution d'une table. Éléments à prendre en compte :

  • VACUUM et ALTER DISTKEY ne peuvent pas s'exécuter simultanément sur la même table.

    • Si VACUUM est déjà en cours d'exécution, ALTER DISTKEY renvoie une erreur.

    • Si ALTER DISTKEY est en cours d'exécution, l'opération VACCUM en arrière-plan ne démarre pas sur une table.

    • Si ALTER DISTKEY est en cours d'exécution, l'opération VACCUM au premier plan renvoie une erreur.

  • Vous pouvez exécuter une seule commande ALTER DISTKEY sur une table simultanément.

  • La commande ALTER DISTKEY n'est pas prise en charge pour les tables ayant des clés de tri entrelacées.

  • Si le style de distribution était précédemment défini sur AUTO, la table n'est plus candidate à l'optimisation automatique.

Lorsque DISTSTYLE KEY est spécifié, les données sont distribuées par les valeurs figurant dans la colonne DISTKEY. Pour plus d'informations sur DISTSTYLE, consultez CREATE TABLE.

ALTER DISTSTYLE AUTO

Clause qui modifie le style de distribution existant d'une table en AUTO.

Lorsque vous modifiez un style de distribution sur AUTO, le style de distribution de la table est défini comme suit :

  • Une petite table avec DISTSTYLE ALL est convertie en AUTO(ALL).

  • Une petite table avec DISTSTYLE EVEN est convertie en AUTO(ALL).

  • Une petite table avec DISTSTYLE KEY est convertie en AUTO(ALL).

  • Une grande table avec DISTSTYLE ALL est convertie en AUTO(EVEN).

  • Une grande table avec DISTSTYLE EVEN est convertie en AUTO(EVEN).

  • Une grande table avec DISTSTYLE KEY est convertie en AUTO(KEY) et la DISTKEY est conservée.

Si Amazon Redshift détermine qu'un nouveau style de distribution ou une nouvelle clé améliorera les performances des requêtes, Amazon Redshift peut modifier le style de distribution ou la clé de votre table à l'avenir.

Pour plus d'informations sur DISTSTYLE AUTO, consultez CREATE TABLE.

Pour afficher le style de distribution appliqué à une table, interrogez la vue du catalogue système SVV_TABLE_INFO. Pour plus d'informations, consultez SVV_TABLE_INFO. Pour afficher les recommandations Amazon Redshift Advisor pour les tables, recherchez la vue catalogue système SVV_ALTER_TABLE_RECOMMENDATIONS. Pour plus d'informations, consultez SVV_ALTER_TABLE_RECOMMENDATIONS. Pour afficher les actions effectuées par Amazon Redshift, interrogez la vue catalogue système SVL_AUTO_WORKER_ACTION. Pour plus d'informations, consultez SVL_AUTO_WORKER_ACTION.

ALTER [COMPOUND] SORTKEY ( column_name [,...] )

Clause qui modifie ou ajoute la clé de tri utilisée pour une table.

Lorsque vous modifiez une clé de tri, l'encodage par compression des colonnes de la nouvelle clé de tri ou de la clé de tri originale peut changer. Si aucun encodage n'est explicitement défini pour la table, Amazon Redshift attribue automatiquement les codages de compression comme suit :

  • Les colonnes qui sont définies comme des clés de tri se voient attribuer une compression RAW.

  • Les colonnes qui sont définies comme des types de données BOOLEAN, REAL ou DOUBLE PRECISION se voient attribuer une compression RAW.

  • Les colonnes qui sont définies comme des types de données SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMETZ, TIMESTAMP ou TIMESTAMPTZ se voient attribuer une compression AZ64.

  • Les colonnes définies comme CHAR ou VARCHAR sont affectées à la compression LZO.

Éléments à prendre en compte :

  • Vous pouvez définir 400 colonnes au maximum par table pour une clé de tri.

  • Vous pouvez modifier une clé de tri entrelacée en clé de tri composée ou en aucune clé de tri. Toutefois, vous ne pouvez pas modifier une clé de tri composée par une clé de tri entrelacée.

  • Si la clé de tri était précédemment définie sur AUTO, la table n'est plus candidate à l'optimisation automatique.

  • Amazon Redshift recommande d'utiliser l'encodage RAW (sans compression) pour les colonnes définies comme des clés de tri. Lorsque vous modifiez une colonne pour la choisir comme clé de tri, la compression de la colonne passe en compression RAW (sans compression). Cela peut augmenter la quantité de stockage requise par la table. L'augmentation de la taille de la table dépend de la définition et du contenu spécifiques de la table. Pour plus d'informations sur la compression, consultez encodages de compression.

Les données sont chargées dans une table en fonction de la clé de tri. Lorsque vous modifiez la clé de tri, Amazon Redshift modifie l'ordre des données. Pour plus d'informations sur SORTKEY, consultez CREATE TABLE.

ALTER TRUTKEY AUTO

Clause qui modifie ou ajoute la clé de tri de la table cible à AUTO.

Lorsque vous modifiez une clé de tri en AUTO, Amazon Redshift conserve la clé de tri existante de la table.

Si Amazon Redshift détermine qu'une nouvelle clé de tri améliorera les performances des requêtes, Amazon Redshift peut modifier la clé de tri de votre table à l'avenir.

Pour plus d'informations sur SORTKEY AUTO, consultez CREATE TABLE.

Pour afficher la clé de tri d'une table, interrogez la vue catalogue système SVV_TABLE_INFO. Pour plus d'informations, consultez SVV_TABLE_INFO. Pour afficher les recommandations Amazon Redshift Advisor pour les tables, recherchez la vue catalogue système SVV_ALTER_TABLE_RECOMMENDATIONS. Pour plus d'informations, consultez SVV_ALTER_TABLE_RECOMMENDATIONS. Pour afficher les actions effectuées par Amazon Redshift, interrogez la vue catalogue système SVL_AUTO_WORKER_ACTION. Pour plus d'informations, consultez SVL_AUTO_WORKER_ACTION.

ALTER SORTKEY NONE

Clause qui supprime la clé de tri de la table cible.

Si la clé de tri était précédemment définie sur AUTO, la table n'est plus candidate à l'optimisation automatique.

ALTER ENCODE AUTO

Clause qui modifie le type d'encodage des colonnes de la table cible en AUTO. Lorsque vous modifiez l'encodage en AUTO, Amazon Redshift conserve le type d'encodage existant des colonnes de la table. Ensuite, si Amazon Redshift détermine qu'un nouveau type d'encodage peut améliorer les performances de la requête, Amazon Redshift peut modifier le type d'encodage des colonnes de la table.

Si vous modifiez une ou plusieurs colonnes pour spécifier un encodage, Amazon Redshift n'ajuste plus automatiquement l'encodage pour toutes les colonnes de la table. Les colonnes conservent les paramètres d'encodage actuels.

Les actions suivantes n'affectent pas le paramètre ENCODE AUTO pour la table :

  • Renommage de la table.

  • Modification du paramètre DISTSTYLE ou SORTKEY pour la table.

  • Ajout ou suppression d'une colonne avec un paramètre ENCODE.

  • Utilisation de l'option COMPUPDATE de la commande COPY. Pour plus d'informations, consultez Opérations de chargement de données.

Pour afficher l'encodage d'une table, interrogez la vue catalogue système SVV_TABLE_INFO. Pour plus d'informations, consultez SVV_TABLE_INFO.

RENAME COLUMN nom_colonne TO nouveau_nom

Clause qui renomme une colonne selon la valeur spécifiée dans nouveau_nom. La longueur maximale d'un nom de colonne est de 127 octets ; les noms plus longs sont tronqués à 127 octets. Pour plus d'informations sur les noms valides, consultez Noms et identificateurs.

ADD [ COLUMN ] nom_colonne

Clause qui ajoute une colonne avec le nom spécifié à la table. Vous ne pouvez ajouter qu'une seule colonne à chaque instruction ALTER TABLE.

Vous ne pouvez pas ajouter une colonne qui soit la clé de distribution (DISTKEY) ou une clé de tri (SORTKEY) de la table.

Vous ne pouvez pas utiliser une commande ALTER TABLE ADD COLUMN pour modifier les attributs de table et de colonne suivants :

  • UNIQUE

  • PRIMARY KEY

  • REFERENCES (clé étrangère)

  • IDENTITY ou GENERATED BY DEFAULT AS IDENTITY

La longueur maximale d'un nom de colonne est de 127 octets ; les noms plus longs sont tronqués à 127 octets. Le nombre maximal de colonnes que vous pouvez définir dans une seule table est de 1 600.

Les restrictions suivantes s'appliquent lorsque vous ajoutez une colonne à une table externe :

  • Vous ne pouvez pas ajouter une colonne à une table externe dont les contraintes de table sont DEFAULT, ENCODE, NOT NULL ou NULL.

  • Vous ne pouvez pas ajouter des colonnes à une table externe définie à l'aide du format de fichier AVRO.

  • Si les pseudo-colonnes sont activées, le nombre maximal de colonnes que vous pouvez définir dans une seule table externe est 1 598. Si les pseudo-colonnes ne sont pas activées, le nombre maximal de colonnes que vous pouvez définir dans une seule table est 1 600.

Pour plus d'informations, consultez CREATE EXTERNAL TABLE.

type_colonne

Type de données de la colonne ajoutée. Pour les colonnes CHAR et VARCHAR, vous pouvez utiliser le mot-clé MAX au lieu de déclarer une longueur maximale. MAX définit la longueur maximale sur 4 096 octets pour CHAR ou 65 535 octets pour VARCHAR. La taille maximum d'un objet GEOMETRY est de 1 048 447 octets.

Pour obtenir des informations sur les types de données pris en charge par Amazon Redshift, consultez Types de données.

DEFAULT expr_défaut

Clause qui attribue une valeur de données par défaut à la colonne. Le type de données de expr_défaut doit correspondre au type de données de la colonne. La valeur DEFAULT doit être une expression exempte de variable. Les sous-requêtes, les références croisées aux autres colonnes de la table active et les fonctions définies par l'utilisateur ne sont pas autorisées.

expr_défaut est utilisé dans toute opération INSERT qui ne spécifie pas une valeur pour la colonne. Si aucune valeur par défaut n'est spécifiée, la valeur par défaut de la colonne est la valeur null.

Si une opération COPY rencontre un champ null dans une colonne qui a une valeur DEFAULT et une contrainte NOT NULL, la commande COPY insère la valeur de expr_défaut.

DEFAULT n'est pas pris en charge pour les tables externes.

ENCODE encodage

Encodage de compression pour une colonne. Par défaut, Amazon Redshift gère automatiquement l'encodage de compression pour toutes les colonnes d'une table si vous ne spécifiez pas d'encodage de compression pour une colonne de la table ou si vous spécifiez l'option ENCODE AUTO pour la table.

Si vous spécifiez l'encodage de compression pour une colonne de la table ou si vous ne spécifiez pas l'option ENCODE AUTO pour la table, Amazon Redshift attribue automatiquement l'encodage de compression aux colonnes pour lesquelles vous ne spécifiez pas l'encodage de compression comme suit :

  • Toutes les colonnes de tables temporaires se voient attribuer une compression RAW par défaut.

  • Les colonnes qui sont définies comme des clés de tri se voient attribuer une compression RAW.

  • Les colonnes qui sont définies comme des types de données BOOLEAN, REAL, DOUBLE PRECISION ou GEOMETRY ou GEOGRAPHY se voient attribuer une compression RAW.

  • Les colonnes qui sont définies comme des types de données SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMETZ, TIMESTAMP ou TIMESTAMPTZ se voient attribuer une compression AZ64.

  • Les colonnes définies comme CHAR, VARCHAR ou VARBYTE sont affectées à la compression LZO.

Note

Si vous ne souhaitez pas qu'une colonne soit compressée, spécifiez explicitement un encodage RAW (brut).

Les encodages compression encodings suivants sont pris en charge :

  • AZ64

  • BYTEDICT

  • DELTA

  • DELTA32K

  • LZO

  • MOSTLY8

  • MOSTLY16

  • MOSTLY32

  • RAW (aucune compression)

  • RUNLENGTH

  • TEXT255

  • TEXT32K

  • ZSTD

ENCODE n'est pas pris en charge pour les tables externes.

NOT NULL | NULL

NOT NULL spécifie que la colonne n'est pas autorisée à contenir des valeurs null. NULL, valeur par défaut, spécifie que la colonne accepte les valeurs null.

NOT NULL et NULL ne sont pas pris en charge pour les tables externes.

DROP [ COLUMN ] nom_colonne

Nom de la colonne à supprimer de la table.

Vous ne pouvez pas supprimer la dernière colonne d'une table. Une table doit avoir au moins une colonne.

Vous ne pouvez pas supprimer une colonne qui est la clé de distribution (DISTKEY) ou une clé de tri (SORTKEY) de la table. Le comportement par défaut pour DROP COLUMN est RESTRICT si la colonne a des objets dépendants, tels qu'une vue, une clé primaire, une clé étrangère ou une restriction UNIQUE.

Les restrictions suivantes s'appliquent lors de la suppression d'une colonne d'une table externe :

  • Par ailleurs, vous ne pouvez pas supprimer une colonne d'une table externe si cette colonne est utilisée comme partition.

  • Vous ne pouvez pas supprimer une colonne d'une table externe définie à l'aide du format de fichier AVRO.

  • RESTRICT et CASCADE sont ignorés pour les tables externes.

  • Vous ne pouvez pas supprimer les colonnes de la table de politique référencée dans la définition de la politique à moins de supprimer ou de dissocier la stratégie. Cela s'applique également lorsque l'option CASCADE est spécifiée. Vous pouvez supprimer d'autres colonnes dans le tableau des politiques.

Pour plus d'informations, consultez CREATE EXTERNAL TABLE.

RESTRICT

Lorsque RESTRICT est utilisé avec DROP COLUMN, cela signifie que la colonne à supprimer n'est pas supprimée dans les cas suivants :

  • Si une vue définie référence la colonne en cours de suppression

  • Si une clé étrangère référence la colonne

  • Si la colonne fait partie d'une clé en plusieurs parties

RESTRICT ne peut pas être utilisée avec CASCADE.

RESTRICT et CASCADE sont ignorés pour les tables externes.

CASCADE

Lorsqu'il est utilisé avec DROP COLUMN, supprime la colonne spécifiée et tout ce qui dépend de cette colonne. CASCADE ne peut pas être utilisée avec RESTRICT.

RESTRICT et CASCADE sont ignorés pour les tables externes.

Les options suivantes s'appliquent uniquement aux tables externes.

SET LOCATION { 's3://compartiment/dossier/' | 's3://compartiment/fichier_manifeste' }

Chemin menant au dossier Amazon S3 qui contient les fichiers de données ou un fichier manifeste qui contient une liste de chemins d'objets Amazon S3. Les compartiments doivent se trouver dans la même région AWS que le cluster Amazon Redshift. Pour obtenir une liste des régions AWS prises en charge, consultez Considérations relatives à Amazon Redshift Spectrum. Pour plus d'informations sur l'utilisation d'un fichier manifeste, consultez l'option LOCATION dans la référence Paramètres CREATE EXTERNAL TABLE.

SET FILE FORMAT format

Format des fichiers de données externes.

Les formats valides sont les suivants :

  • AVRO

  • PARQUET

  • RCFILE

  • SEQUENCEFILE

  • TEXTFILE

SET TABLE PROPERTIES ( 'nom_propriété'='valeur_propriété')

Clause qui définit la définition de table pour des propriétés de table d'une table externe.

Note

Les propriétés de table sont sensibles à la casse.

'numRows'='nombre_lignes'

Propriété qui définit la valeur numRows de la définition de table. Afin de mettre à jour explicitement les statistiques d'une table externe, définissez la propriété numRows pour indiquer la taille de la table. Amazon Redshift n'analyse pas les tables externes pour générer les statistiques de table utilisées par l'optimiseur de requête afin de générer un plan de requête. Si des statistiques de table ne sont pas définies pour une table externe, Amazon Redshift génère un plan d'exécution de requête. Ce plan se base sur une hypothèse selon laquelle les tables externes sont les tables les plus volumineuses et les tables locales les tables les plus petites.

'skip.header.line.count'='nombre_lignes'

Propriété qui définit le nombre de lignes à ignorer au début de chaque fichier source.

PARTITION ( colonne_partition=valeur_partition [, ...] SET LOCATION { 's3://compartiment/dossier' | 's3://compartiment/fichier_manifeste' }

Clause qui définit un nouvel emplacement pour une ou plusieurs colonnes de partition.

ADD [ IF NOT EXISTS ] PARTITION ( partition_column=partition_value [, ...] ) LOCATION { 's3://bucket/folder' | 's3://bucket/manifest_file' } [, ... ]

Clause qui ajoute une ou plusieurs partitions. Vous pouvez spécifier plusieurs clauses PARTITION à l'aide d'une seule instruction ALTER TABLE … ADD.

Note

Si vous utilisez le catalogue AWS Glue, vous pouvez ajouter jusqu'à 100 partitions à l'aide d'une seule instruction ALTER TABLE.

La clause IF NOT EXISTS indique que si la partition spécifiée existe déjà, la commande ne doit effectuer aucun changement. Elle indique également que la commande doit renvoyer un message indiquant que la partition existe, plutôt que s'arrêter avec une erreur. Comme cette clause est utile à l'écriture de scripts, ce script n'échoue pas si ALTER TABLE tente d'ajouter une partition qui existe déjà.

DROP PARTITION (colonne_partition=valeur_partition [, ...] )

Clause qui supprime la partition spécifiée. La suppression d'une partition modifie uniquement les métadonnées des tables externes. Ceci n'a aucun impact sur les données sur Amazon S3.

ROW LEVEL SECURITY { ON | OFF }

Une clause qui active ou désactive la sécurité au niveau des lignes pour une politique de sécurité.

Lorsque la sécurité au niveau des lignes est activée pour une table, vous ne pouvez lire que les lignes dont la politique au niveau des lignes autorise l'accès. Lorsqu'il n'existe aucune politique vous accordant un accès à la table, vous ne pouvez visualiser aucune ligne de la table.