ALTER EXTERNAL VOLUME¶
Modifie les propriétés d’un volume externe existant.
- Voir aussi :
CREATE EXTERNAL VOLUME , DROP EXTERNAL VOLUME , SHOW EXTERNAL VOLUMES , DESCRIBE EXTERNAL VOLUME
Dans ce chapitre :
Syntaxe¶
ALTER EXTERNAL VOLUME [ IF EXISTS ] <name> ADD STORAGE_LOCATION =
(
NAME = '<name>'
cloudProviderParams
)
ALTER EXTERNAL VOLUME [ IF EXISTS ] <name> REMOVE STORAGE_LOCATION '<name>'
ALTER EXTERNAL VOLUME [ IF EXISTS ] <name> SET ALLOW_WRITES = TRUE
ALTER EXTERNAL VOLUME [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'
Où :
cloudProviderParams (for Amazon S3) ::= STORAGE_PROVIDER = 'S3' STORAGE_AWS_ROLE_ARN = '<iam_role>' STORAGE_BASE_URL = 's3://<bucket>[/<path>/]' [ ENCRYPTION = ( [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ] ] | [ TYPE = 'NONE' ] ) ]cloudProviderParams (for Google Cloud Storage) ::= STORAGE_PROVIDER = 'GCS' STORAGE_BASE_URL = 'gcs://<bucket>[/<path>/]' [ ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' ] [ KMS_KEY_ID = '<string>' ] | [ TYPE = 'NONE' ] ) ]cloudProviderParams (for Microsoft Azure) ::= STORAGE_PROVIDER = 'AZURE' AZURE_TENANT_ID = '<tenant_id>' STORAGE_BASE_URL = 'azure://<account>.blob.core.windows.net/<container>[/<path>/]'
Paramètres¶
name
Indique l’identificateur du volume externe à modifier.
Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus d’informations, voir Exigences relatives à l’identificateur.
ADD STORAGE_LOCATION
Ajoute l’emplacement de stockage spécifié à la définition du volume externe. Pour ajouter plusieurs emplacements de stockage, exécutez une instruction ALTER EXTERNAL VOLUME pour chaque emplacement de stockage.
Note
Les tables Iceberg écrivent dans le et lisent à partir du premier emplacement de stockage de l’ensemble qui se trouve dans la même région que celle de votre compte Snowflake. Pour afficher la définition du volume externe et les régions d’emplacement de stockage, exécutez DESCRIBE EXTERNAL VOLUME.
REMOVE STORAGE_LOCATION
Supprime l’emplacement de stockage spécifié de la définition du volume externe. Pour supprimer plusieurs emplacements de stockage, exécutez une instruction ALTER EXTERNAL VOLUME pour chaque emplacement de stockage.
Note
L’instruction ALTER EXTERNAL VOLUME échoue si vous tentez de supprimer l’emplacement de stockage actif utilisé par les tables Iceberg dans votre compte.
SET ...
Spécifie un(e) ou plusieurs paramètres/propriétés à définir pour le volume externe (séparé(e)s par des espaces, des virgules ou de nouvelles lignes) :
ALLOW_WRITES = TRUE
Spécifie que les opérations d’écriture sont autorisées pour le volume externe ; doit être défini sur
TRUE
pour les tables Iceberg qui utilisent Snowflake comme catalogue.COMMENT = 'string_literal'
Chaîne (littéral) qui spécifie un commentaire pour le volume externe.
Paramètres du fournisseur Cloud (cloudProviderParams
)¶
Amazon S3
STORAGE_PROVIDER = 'S3'
Spécifie le fournisseur de stockage dans le Cloud qui stocke vos fichiers de données.
STORAGE_AWS_ROLE_ARN = iam_role
Spécifie le nom de ressource Amazon (ARN) du rôle AWS de gestion des identités et des accès (IAM) qui octroie des privilèges sur le compartiment S3 contenant vos fichiers de données. Pour plus d’informations, voir Configuration de l’accès sécurisé à Amazon S3.
STORAGE_BASE_URL = 's3://bucket[/path/]'
Spécifie l’URL de base de votre emplacement de stockage Cloud, où :
bucket
est le nom d’un compartiment S3 qui stocke vos fichiers de données.
path
est un chemin facultatif qui peut être utilisé pour fournir un contrôle granulaire sur les objets du compartiment.ENCRYPTION = ( [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = 'string' ] ] | [ TYPE = 'NONE' ] )
Spécifie les propriétés nécessaires au chiffrement des données sur le volume externe.
TYPE = ...
Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :
AWS_SSE_S3
: Chiffrement côté serveur à l’aide de clés de chiffrement gérées par S3. Pour plus d’informations, voir Utilisation du chiffrement côté serveur à l’aide de clés de chiffrement gérées par Amazon S3 (SSE-S3).
AWS_SSE_KMS
: Chiffrement côté serveur à l’aide de clés stockées dans KMS. Pour plus d’informations, voir Utilisation du chiffrement côté serveur à l’aide du service de gestion de clés AWS (SSE-KMS).
NONE
: pas de chiffrement.KMS_KEY_ID = 'string'
(s’applique uniquement au chiffrementAWS_SSE_KMS
)Spécifie éventuellement l’ID de la clé gérée par AWS KMS qui est utilisée pour chiffrer les fichiers écrits dans le compartiment. Si aucune valeur n’est fournie, votre clé KMS par défaut est utilisée pour chiffrer les fichiers pour écrire les données.
Notez que cette valeur est ignorée lors de la lecture des données.
Google Cloud Storage
STORAGE_PROVIDER = 'GCS'
Spécifie le fournisseur de stockage dans le Cloud qui stocke vos fichiers de données.
STORAGE_BASE_URL = 'gcs://bucket[/path/]'
Spécifie l’URL de base de votre emplacement de stockage Cloud, où :
bucket
est le nom d’un compartiment Cloud Storage qui stocke vos fichiers de données.
path
est un chemin facultatif qui peut être utilisé pour fournir un contrôle granulaire sur les objets du compartiment.ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' ] [ KMS_KEY_ID = 'string' ] | [ TYPE = 'NONE' ] )
Spécifie les propriétés nécessaires au chiffrement des données sur le volume externe.
TYPE = ...
Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :
GCS_SSE_KMS
: Chiffrement côté serveur à l’aide de clés stockées dans KMS. Pour plus d’informations, voir clés de chiffrement gérées par le client.
NONE
: pas de chiffrement.KMS_KEY_ID = 'string'
(s’applique uniquement au chiffrementGCS_SSE_KMS
)Spécifie l’ID de la clé gérée par Cloud KMS qui est utilisée pour chiffrer les fichiers écrits dans le compartiment.
Cette valeur est ignorée lors de la lecture des données. L’opération de lecture devrait réussir si le compte de service dispose d’autorisations suffisantes pour les données et des clés KMS spécifiées.
Microsoft Azure
STORAGE_PROVIDER = 'AZURE'
Spécifie le fournisseur de stockage dans le Cloud qui stocke vos fichiers de données.
AZURE_TENANT_ID = 'tenant_id'
Spécifie l” ID de votre client Office 365 auquel appartiennent les comptes de stockage autorisés et bloqués. Un volume externe peut s’authentifier auprès d’un seul client, de sorte que les emplacements de stockage autorisés et bloqués doivent donc faire référence aux comptes de stockage qui appartiennent tous à ce client.
Pour trouver votre ID de client, connectez-vous au portail Azure et cliquez sur Azure Active Directory » Properties. L” ID de client s’affiche dans le champ Tenant ID.
STORAGE_BASE_URL = 'azure://account.blob.core.windows.net/container[/path/]'
Spécifie l’URL de base de votre emplacement de stockage Cloud, où :
account
est le nom de votre compte Azure ; par exemple,myaccount
.
container
est le nom d’un conteneur Azure qui stocke vos fichiers de données.
path
est un chemin facultatif qui peut être utilisé pour fournir un contrôle granulaire sur les répertoires logiques du conteneur.
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
Remarques |
---|---|---|
OWNERSHIP |
Volume externe |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Exemples¶
L’exemple suivant supprime l’emplacement de stockage nommé my-us-east-1
du volume externe exvol1
:
ALTER EXTERNAL VOLUME exvol1 REMOVE STORAGE_LOCATION 'my-us-east-1';
Les exemples suivants ajoutent un emplacement de stockage à un volume externe :
Amazon S3
ALTER EXTERNAL VOLUME exvol1
ADD STORAGE_LOCATION =
(
NAME = 'my-s3-us-central-2'
STORAGE_PROVIDER = 'S3'
STORAGE_BASE_URL = 's3://my_bucket_us_central-1/'
STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/myrole'
);
Google Cloud Storage
ALTER EXTERNAL VOLUME exvol2
ADD STORAGE_LOCATION =
(
NAME = 'my-gcs-europe-west4'
STORAGE_PROVIDER = 'GCS'
STORAGE_BASE_URL = 'gcs://my_bucket_europe-west4/'
);
Microsoft Azure
ALTER EXTERNAL VOLUME exvol3
ADD STORAGE_LOCATION =
(
NAME = 'my-azure-japaneast'
STORAGE_PROVIDER = 'AZURE'
STORAGE_BASE_URL = 'azure://sfcdev1.blob.core.windows.net/my_container_japaneast/'
AZURE_TENANT_ID = 'a9876545-4321-987b-b23c-2kz436789d0'
);