S3ステージの作成

外部(つまり、S3)ステージは、ファイル内のデータをテーブルにロードできるように、データファイルの保存場所を指定します。

データは、フォルダーパス(またはS3用語ではプレフィックス)の有無にかかわらず、指定したS3バケット内のファイルから直接ロードできます。パスが / で終わる場合、対応するS3フォルダー内のすべてのオブジェクトがロードされます。

注釈

前のステップ で、外部S3バケットにアクセスするために必要なポリシーと権限を持つ AWS IAM ロールを指示に従って構成した場合、S3ステージは既に作成されています。この手順をスキップして S3ステージからのデータのコピー に進むことができます。

このトピックの内容:

外部ステージ

Snowflakeは、S3バケット内のファイルから直接ロードすることに加えて、次のようなステージングファイルに必要なすべての情報をカプセル化する名前付き外部ステージの作成をサポートしています。

  • ファイルがステージングされるS3バケット。

  • バケットの名前付きストレージ統合オブジェクトまたはS3認証情報(保護されている場合)。

  • 暗号化キー(バケット内のファイルが暗号化されている場合)。

名前付きの外部ステージはオプションですが、同じ場所から定期的にデータをロードする予定がある場合は、使用することを お勧め します。

外部ステージの作成

ウェブインターフェイスまたは SQLを使用して、名前付きステージを作成できます。

ウェブインターフェイス

Databases Databases tab » <データベース名> » Stages をクリックします

SQL

CREATE STAGE

次の例では、 SQL を使用して、 encrypted_files というフォルダーパスで mybucket というプライベート/保護されたS3バケットを参照する my_s3_stage という外部ステージを作成します。 CREATE ステートメントには、S3認証情報( AWS IAM ユーザーに関連付けられている)とマスター暗号化キーが含まれています。ステージは、 データロードの準備 で作成された my_csv_format という名前のファイル形式オブジェクトを参照します。

CREATE OR REPLACE STAGE my_s3_stage URL='s3://mybucket/encrypted_files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z')
  ENCRYPTION=(MASTER_KEY = 'eSxX0jzYfIamtnBKOEOwq80Au6NbSgPH5r4BDDwOaO8=')
  FILE_FORMAT = my_csv_format;

注釈

ステージに名前付きファイル形式オブジェクト(または個々のファイル形式オプション)を指定すると、後でステージからデータをロードするために使用する COPY コマンドで同じファイル形式オプションを指定する必要がありません。

次: S3ステージからのデータのコピー