为 S3 兼容存储配置外部卷

对于数据和元数据存储在 S3 兼容存储中的 外部管理的Snowflake 管理的 Apache Iceberg™ 表,您可以配置与 Amazon S3 兼容存储 位置相关联的外部卷。

先决条件

若要对 Iceberg 表使用 S3 兼容存储,您必须为 Snowflake 配置一个 S3 兼容的 API 端点。有关更多信息,请参阅 与 S3 兼容的存储的要求

为 S3 兼容存储创建外部卷

创建一个外部卷,指定一个与 S3 兼容的存储位置。有关 CREATE EXTERNAL VOLUME 命令中与 S3 兼容的参数的信息,请参阅 :ref:` 命令语法 <label-iceberg_external_volume_s3_compatible_syntax>`。

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

重要

如果您要为外部管理的 Iceberg 表配置外部卷,则必须将 ALLOW_WRITES = FALSE 添加到命令语法中。此行指定了不允许对外部卷执行写入操作。有关更多信息,请参阅 CREATE EXTERNAL VOLUME 命令的命令语法

更新您的外部卷凭据

要更改或更新外部卷凭据,您可以使用 ALTER EXTERNAL VOLUME ...UPDATE 命令来暂停。指定您要更改凭据的存储位置的名称。

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
语言: 中文