S3互換ストレージ用の外部ボリュームの構成¶
S3互換ストレージにデータおよびメタデータがある 外部管理 Icebergテーブルの場合、 Amazon S3互換ストレージ の場所に関連付けられた外部ボリュームを構成できます。
S3互換ストレージを使用するIcebergテーブルは、 クロスリージョンテーブル、以下のアクションをサポートしていません。
Snowflake を Iceberg カタログとして使用 または Snowflake を Iceberg カタログとして使用するようにテーブルを変換します。
SYSTEM$GET_ICEBERG_TABLE_INFORMATION 関数を使用して、最新のリフレッシュされたスナップショットに関する情報を取得します。
前提条件¶
S3互換ストレージを使用するIcebergテーブルを作成するには、Snowflake用のS3互換 API エンドポイントが必要です。詳細については、 S3互換ストレージの要件 をご参照ください。
S3互換ストレージ用外部ボリュームの作成¶
以下の手順では、S3互換ストレージ用に外部ボリュームを構成する方法と、そのボリュームを使用して外部管理Icebergテーブルを作成する方法を示します。
S3互換のストレージ場所を指定する外部ボリュームを作成します。CREATE EXTERNAL VOLUME コマンドの S3 互換パラメーターに関する情報は、 コマンド構文 をご参照ください。
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;
カタログ統合 をお持ちでない場合は、Iceberg テーブル用に作成してください。S3互換ストレージを使用するIcebergテーブルは、カタログ統合を使用する場合にのみサポートされます。詳細情報については、 カタログ統合の作成 をご参照ください。
次の例では、Iceberg ファイルのカタログ統合をオブジェクトストレージに作成します。
CREATE OR REPLACE CATALOG INTEGRATION my_iceberg_catalog_int CATALOG_SOURCE = OBJECT_STORE TABLE_FORMAT = ICEBERG ENABLED = TRUE;
外部ボリュームとカタログの統合を使用して、Icebergテーブルを作成します。
例:
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';
外部ボリュームの認証情報を更新します。¶
外部ボリュームの認証情報を変更または更新するには、 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...'
);