为 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'
)
);
重要
如果您要为外部管理的 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...'
);