Configurer un volume externe pour un stockage compatible S3¶
Pour les tables Apache Iceberg™ gérées en externe ou gérées par Snowflake dont les données et les métadonnées se trouvent dans un stockage compatible S3, vous pouvez configurer un volume externe associé à un emplacement de stockage compatible Amazon S3.
Pour créer un volume externe pour un stockage compatible S3, vous pouvez utiliser SQL ou utiliser Snowsight.
Conditions préalables¶
Pour utiliser le stockage compatible S3 pour les tables Iceberg, vous devez disposer d’un point de terminaison d’API compatible S3 pour Snowflake. Pour plus d’informations, voir Exigences pour un stockage compatible avec S3.
Créer un volume externe pour un stockage compatible S3 en utilisant SQL¶
Créez un volume externe qui spécifie un emplacement de stockage compatible S3. Pour des informations sur les paramètres compatibles S3 de la commande CREATE EXTERNAL VOLUME, voir la syntaxe de la commande.
CREATE OR REPLACE EXTERNAL VOLUME ext_vol_s3_compat
STORAGE_LOCATIONS = (
(
NAME = 'my_s3_compat_storage_location'
STORAGE_PROVIDER = 'S3COMPAT'
STORAGE_BASE_URL = 's3compat://mybucket/unload/mys3compatdata'
CREDENTIALS = (
AWS_KEY_ID = '1a2b3c...'
AWS_SECRET_KEY = '4x5y6z...'
)
STORAGE_ENDPOINT = 'mystorage.com'
)
);
Créer un volume externe pour un stockage compatible S3 en utilisant Snowsight¶
Connectez-vous à Snowsight.
Dans le coin inférieur gauche, sélectionnez votre nom » Switch role, puis sélectionnez ACCOUNTADMIN ou un rôle disposant du privilège CREATE EXTERNAL VOLUME.
Pour plus d’informations, voir Changer de rôle principal.
Dans le menu de navigation, sélectionnez Catalog » External data.
Sélectionnez l’onglet External volumes.
Sélectionnez + Create.
Sélectionnez S3 compatible storage.
Sélectionnez Next.
Dans votre fournisseur de stockage compatible S3, créez des identifiants de clé d’accès disposant des autorisations requises pour accéder à votre compartiment et obtenir des objets.
Pour plus d’informations, voir Exigences pour un stockage compatible avec S3.
Sélectionnez Next.
Pour configurer votre volume externe, à partir de la page Configure external volume, renseignez les champs suivants :
Champ
Description
External volume name
Saisissez un nom pour votre volume externe.
Storage endpoint
Spécifie un domaine entièrement qualifié qui pointe vers votre point de terminaison de l’API compatible avec S3.
Note
Le point de terminaison du stockage ne doit pas inclure de nom de compartiment ; par exemple, indiquez
example.comau lieu demy_bucket.example.com.AWS key ID
Spécifie l’ID de clé AWS pour la connexion et l’accès à votre emplacement de stockage compatible S3.
AWS secret key
Spécifie la clé secrète AWS pour la connexion et l’accès à votre emplacement de stockage compatible S3.
Access scope
Spécifie si les opérations d’écriture sont autorisées pour le volume externe ; doit être défini sur Allow writes pour les tables suivantes :
Tables Iceberg qui utilisent Snowflake comme catalogue.
Tables Iceberg qui utilisent un catalogue externe et sont accessibles en écriture. Les tables Iceberg gérées en externe sont accessibles en écriture lorsque vous y accédez via une base de données liée à un catalogue qui possède le paramètre ALLOWED_WRITE_OPERATIONS défini sur TRUE.
Pour les tables Iceberg créées à partir de fichiers de table Delta, la définition de ce paramètre sur Allow writes permet à Snowflake d’écrire des métadonnées Iceberg dans votre stockage externe. Pour plus d’informations, voir Tables basées sur Delta.
La valeur de ce champ doit également correspondre aux autorisations définies sur le compte de stockage Cloud pour chaque emplacement de stockage spécifié.
Note
Si vous prévoyez d’utiliser le volume externe pour accéder en lecture à des tables Iceberg gérées en externe, vous pouvez définir ce paramètre sur Off (Désactivé). Snowflake n’écrit pas de fichiers de métadonnées Iceberg ni de données dans votre stockage Cloud lorsque vous lisez des tables dans un catalogue Iceberg externe.
Scope
Choisissez si le volume externe doit devenir l’emplacement par défaut pour les futures tables Iceberg. Les valeurs possibles sont les suivantes :
Do not set a default : Ne définissez le volume externe comme volume par défaut nulle part.
Account : Définissez le volume externe comme volume par défaut pour les tables Iceberg créées sous l’ensemble du compte.
Specific database : Définissez le volume externe comme volume par défaut pour les tables Iceberg créées sous la base de données que vous spécifiez. Pour spécifier cette base de données, utilisez la liste déroulante Database qui apparaît lorsque vous sélectionnez Specific database.
Specific schema : Définissez le volume externe comme volume par défaut pour les tables Iceberg créées sous le schéma que vous spécifiez. Pour spécifier ce schéma, utilisez la liste déroulante Database qui apparaît pour sélectionner d’abord la base de données parente du schéma, puis le schéma.
Comment
Spécifie un commentaire pour le volume externe.
Storage base URL
Spécifie l’URL de base de votre emplacement de stockage Cloud.
Sélectionnez Next.
Sur la page Verify connection & create volume, Snowflake vérifie votre connexion à votre stockage compatible S3, puis affiche un message « Connecté avec succès ».
Note
Si Snowflake n’est pas en mesure de vérifier votre connexion, vérifiez votre autorisation ou la configuration de votre volume externe, puis sélectionnez Verify again.
Sélectionnez Create.
Mettre à jour les identifiants de connexion de votre volume externe¶
Pour modifier ou mettre à jour les identifiants du volume externe, vous pouvez utiliser la commande ALTER EXTERNAL VOLUME. .. UPDATE. Indiquez le nom de l’emplacement de stockage dont vous souhaitez modifier les identifiants de connexion.
ALTER EXTERNAL VOLUME ext_vol_s3_compat UPDATE
STORAGE_LOCATION = 'my_s3_compat_storage_location'
CREDENTIALS = (
AWS_KEY_ID = '4d5e6f...'
AWS_SECRET_KEY = '7g8h9i...'
);