S3互換ストレージ用の外部ボリュームの構成

S3互換ストレージにデータおよびメタデータがある 外部管理 Icebergテーブルの場合、 Amazon S3互換ストレージ の場所に関連付けられた外部ボリュームを構成できます。

S3互換ストレージを使用するIcebergテーブルは、 クロスリージョンテーブル、以下のアクションをサポートしていません。

前提条件

S3互換ストレージを使用するIcebergテーブルを作成するには、Snowflake用のS3互換 API エンドポイントが必要です。詳細については、 S3互換ストレージの要件 をご参照ください。

S3互換ストレージ用外部ボリュームの作成

以下の手順では、S3互換ストレージ用に外部ボリュームを構成する方法と、そのボリュームを使用して外部管理Icebergテーブルを作成する方法を示します。

  1. 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;
    
    Copy
  2. カタログ統合 をお持ちでない場合は、Iceberg テーブル用に作成してください。S3互換ストレージを使用するIcebergテーブルは、カタログ統合を使用する場合にのみサポートされます。詳細情報については、 カタログ統合の作成 をご参照ください。

    次の例では、Iceberg ファイルのカタログ統合をオブジェクトストレージに作成します。

    CREATE OR REPLACE CATALOG INTEGRATION my_iceberg_catalog_int
      CATALOG_SOURCE = OBJECT_STORE
      TABLE_FORMAT = ICEBERG
      ENABLED = TRUE;
    
    Copy
  3. 外部ボリュームとカタログの統合を使用して、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';
    
    Copy

外部ボリュームの認証情報を更新します。

外部ボリュームの認証情報を変更または更新するには、 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