S3ステージの作成

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

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

注釈

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

このトピックの内容:

外部ステージ

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

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

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

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

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

外部ステージの作成

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

注釈

ステージを格納するデータベースおよびスキーマに対する USAGE 権限と、スキーマに対する CREATE STAGE 権限が付与または継承されたロールを使用する必要があります。

CREATE STAGE については、 アクセス制御の要件 をご参照ください。

SQL を使用して外部ステージを作成する

SQL を使用して外部ステージを作成するには、 CREATE STAGE コマンドを使用します。

次の例では、 SQL を使用して、 encrypted_files/ というフォルダーパスで mybucket というプライベート/保護されたS3バケットを参照する my_s3_stage という外部ステージを作成します。CREATE ステートメントには、S3バケットにアクセスするために オプション1:Amazon S3にアクセスするためのSnowflakeストレージ統合の構成 で作成された、 s3_int ストレージ統合が含まれています。ステージは、バケットパスに保存されているファイル内のデータを説明する、 my_csv_format という名前の名前付きファイル形式オブジェクトを参照します。

CREATE STAGE my_s3_stage
  STORAGE_INTEGRATION = s3_int
  URL = 's3://mybucket/encrypted_files/'
  FILE_FORMAT = my_csv_format;
Copy

注釈

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

Snowsightを使用して外部ステージを作成する

Snowsight を使用して名前付き外部ステージを作成するには、次を実行します。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Data » Databases を選択します。

  3. ステージを作成するデータベースとスキーマを選択します。

  4. Create » Stage を選択します。

  5. 使用するファイルのある、サポートされているクラウドストレージサービスを選択します。

  6. Stage Name を入力します。

  7. 外部クラウドストレージの場所の URL を入力します。

  8. 外部ストレージが公開されていない場合は、 Authentication を有効にして詳細を入力します。詳細については、 CREATE STAGE をご参照ください。

  9. オプションで、 Directory table の選択を解除します。ディレクトリテーブルを使用すると、ステージ上のファイルを確認できますが、ウェアハウスが必要になるためコストがかかります。現時点ではこのオプションの選択を解除し、後でディレクトリテーブルを有効にすることもできます。

    Directory table を有効にすると、オプションで Enable auto-refresh を選択して、イベント通知または通知統合を選択し、ファイルが追加または削除されたときにディレクトリテーブルを自動的にリフレッシュします。詳細については、 ディレクトリテーブルの自動化されたメタデータ更新 をご参照ください。

  10. ファイルが暗号化されている場合は、 Encryption を有効にして詳細を入力します。

  11. 必要に応じて、 SQL Preview を展開し、生成された SQL ステートメントを表示します。AUTO_REFRESH などのステージの追加オプションを指定するには、ワークシートでこの SQL プレビューを開きます。

  12. Create を選択します。

従来のコンソールを使用して外部ステージを作成する

Databases Databases tab » <データベース名> » Stages を選択します。

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