Configurer un volume externe pour un stockage compatible S3

Pour les tables Iceberg gérées en externe avec des données et des métadonnées dans un stockage compatible S3, vous pouvez configurer un volume externe associé à un emplacement de stockage Amazon S3-compatible.

Les tables Iceberg qui utilisent un stockage compatible S3 sont des tables interrégionales et ne prennent pas en charge les actions suivantes :

Conditions préalables

Pour créer une table Iceberg qui utilise un stockage compatible S3, vous devez disposer d’un point de terminaison 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

Les étapes suivantes montrent comment configurer un volume externe pour un stockage compatible S3 et comment utiliser ce volume pour créer une table Iceberg gérée en externe.

  1. 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'
        )
      )
      ALLOW_WRITES = FALSE;
    
    Copy
  2. Si vous n’avez pas d”intégration dans le catalogue, créez-en une pour votre table Iceberg. Les tables Iceberg qui utilisent un stockage compatible S3 ne sont prises en charge que lorsque vous utilisez une intégration de catalogue. Pour plus d’informations, voir Créer une intégration de catalogue.

    L’exemple suivant crée une intégration de catalogue pour les fichiers Iceberg dans le stockage objet.

    CREATE OR REPLACE CATALOG INTEGRATION my_iceberg_catalog_int
      CATALOG_SOURCE = OBJECT_STORE
      TABLE_FORMAT = ICEBERG
      ENABLED = TRUE;
    
    Copy
  3. Utilisez l’intégration du volume externe et du catalogue pour créer une table Iceberg.

    Par exemple :

    CREATE ICEBERG TABLE my_iceberg_table
      EXTERNAL_VOLUME = 'ext_vol_s3_compat'
      CATALOG = 'my_iceberg_catalog_int'
      METADATA_FILE_PATH = 'path/to/metadata/v1.metadata.json';
    
    Copy

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