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.

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

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'
    )
  );
Copy

Important

Si vous configurez un volume externe pour des tables Iceberg gérées en externe, vous devez ajouter ALLOW_WRITES = FALSE à la syntaxe de la commande. Cette ligne indique que les opérations d’écriture ne sont pas autorisées pour le volume externe. Pour plus d’informations, consultez la syntaxe de la commande pour la commande CREATE EXTERNAL VOLUME.

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...'
  );
Copy