CREATE STAGE¶
ファイルからSnowflakeテーブルにデータをロードし、テーブルからファイルにデータをアンロードするために使用する新しい名前付きの 内部 または 外部 ステージを作成します。
- 内部ステージ:
- Snowflake内にデータファイルを内部的に保存します。詳細については、 ローカルファイルに対する内部ステージの選択 をご参照ください。 
- 外部ステージ:
- Snowflake以外の場所に保存されているデータファイルを参照します。現在、次のクラウドストレージサービスがサポートされています。 - Amazon S3バケット 
- Google Cloud Storageバケット 
- Microsoft Azureコンテナー 
 - ストレージの場所は、プライベート/保護またはパブリックのいずれかです。 - 取得する前に復元が必要な、アーカイブクラウドストレージクラスに保持されているデータにアクセスすることはできません。これらのアーカイブストレージクラスには、たとえば、Amazon S3 Glacier Flexible RetrievalまたはGlacier Deep Archiveストレージクラス、またはMicrosoft Azure Archive Storageが含まれます。 
内部ステージまたは外部ステージには、 ディレクトリテーブル を含めることができます。ディレクトリテーブル は、ステージングされたファイルのカタログをクラウドストレージに保存します。
さらに、このコマンドは以下のバリアントをサポートしています。
- CREATE OR ALTER STAGE: ステージが存在しない場合は新規に作成し、存在する場合は既存のステージを変更します。 
- CREATE STAGE ... CLONE: 既存のステージのクローンを作成します。詳細については、 クローニングに関する考慮事項 をご参照ください。 
- こちらもご参照ください。
構文¶
-- Internal stage
CREATE [ OR REPLACE ] [ { TEMP | TEMPORARY } ] STAGE [ IF NOT EXISTS ] <internal_stage_name>
    internalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
-- External stage
CREATE [ OR REPLACE ] [ { TEMP | TEMPORARY } ] STAGE [ IF NOT EXISTS ] <external_stage_name>
    externalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
条件:
internalStageParams ::=
  [ ENCRYPTION = (   TYPE = 'SNOWFLAKE_FULL'
                   | TYPE = 'SNOWFLAKE_SSE' ) ]
externalStageParams (for Amazon S3) ::=
  URL = '<protocol>://<bucket>[/<path>/]'
  [ AWS_ACCESS_POINT_ARN = '<string>' ]
  [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( {  { AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' [ AWS_TOKEN = '<string>' ] } | AWS_ROLE = '<string>'  } ) } ]
  [ ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] MASTER_KEY = '<string>'
                   | TYPE = 'AWS_SSE_S3'
                   | TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ]
                   | TYPE = 'NONE' ) ]
  [ USE_PRIVATELINK_ENDPOINT = { TRUE | FALSE } ]
externalStageParams (for Google Cloud Storage) ::=
  URL = 'gcs://<bucket>[/<path>/]'
  [ STORAGE_INTEGRATION = <integration_name> ]
  [ ENCRYPTION = (   TYPE = 'GCS_SSE_KMS' [ KMS_KEY_ID = '<string>' ]
                   | TYPE = 'NONE' ) ]
externalStageParams (for Microsoft Azure) ::=
  URL = 'azure://<account>.blob.core.windows.net/<container>[/<path>/]'
  [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( [ AZURE_SAS_TOKEN = '<string>' ] ) } ]
  [ ENCRYPTION = (   TYPE = 'AZURE_CSE' MASTER_KEY = '<string>'
                   | TYPE = 'NONE' ) ]
  [ USE_PRIVATELINK_ENDPOINT = { TRUE | FALSE } ]
externalStageParams (for Amazon S3-compatible Storage) ::=
  URL = 's3compat://{bucket}[/{path}/]'
  ENDPOINT = '<s3_api_compatible_endpoint>'
  [ { CREDENTIALS = ( AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' ) } ]
directoryTableParams (for internal stages) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ AUTO_REFRESH = { TRUE | FALSE } ] ) ]
directoryTableParams (for Amazon S3) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ AUTO_REFRESH = { TRUE | FALSE } ] ) ]
directoryTableParams (for Google Cloud Storage) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ AUTO_REFRESH = { TRUE | FALSE } ]
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]
directoryTableParams (for Microsoft Azure) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ AUTO_REFRESH = { TRUE | FALSE } ]
                  [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]
formatTypeOptions ::=
-- If TYPE = CSV
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     RECORD_DELIMITER = '<string>' | NONE
     FIELD_DELIMITER = '<string>' | NONE
     MULTI_LINE = TRUE | FALSE
     FILE_EXTENSION = '<string>'
     PARSE_HEADER = TRUE | FALSE
     SKIP_HEADER = <integer>
     SKIP_BLANK_LINES = TRUE | FALSE
     DATE_FORMAT = '<string>' | AUTO
     TIME_FORMAT = '<string>' | AUTO
     TIMESTAMP_FORMAT = '<string>' | AUTO
     BINARY_FORMAT = HEX | BASE64 | UTF8
     ESCAPE = '<character>' | NONE
     ESCAPE_UNENCLOSED_FIELD = '<character>' | NONE
     TRIM_SPACE = TRUE | FALSE
     FIELD_OPTIONALLY_ENCLOSED_BY = '<character>' | NONE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
     ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     EMPTY_FIELD_AS_NULL = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
     ENCODING = '<string>' | UTF8
-- If TYPE = JSON
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     DATE_FORMAT = '<string>' | AUTO
     TIME_FORMAT = '<string>' | AUTO
     TIMESTAMP_FORMAT = '<string>' | AUTO
     BINARY_FORMAT = HEX | BASE64 | UTF8
     TRIM_SPACE = TRUE | FALSE
     MULTI_LINE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
     FILE_EXTENSION = '<string>'
     ENABLE_OCTAL = TRUE | FALSE
     ALLOW_DUPLICATE = TRUE | FALSE
     STRIP_OUTER_ARRAY = TRUE | FALSE
     STRIP_NULL_VALUES = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     IGNORE_UTF8_ERRORS = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
-- If TYPE = AVRO
     COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     TRIM_SPACE = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = ORC
     TRIM_SPACE = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = PARQUET
     COMPRESSION = AUTO | LZO | SNAPPY | NONE
     SNAPPY_COMPRESSION = TRUE | FALSE
     BINARY_AS_TEXT = TRUE | FALSE
     USE_LOGICAL_TYPE = TRUE | FALSE
     TRIM_SPACE = TRUE | FALSE
     USE_VECTORIZED_SCANNER = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = XML
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     IGNORE_UTF8_ERRORS = TRUE | FALSE
     PRESERVE_SPACE = TRUE | FALSE
     STRIP_OUTER_ELEMENT = TRUE | FALSE
     DISABLE_AUTO_CONVERT = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
注釈
CREATE STAGE、 ALTER STAGE、 CREATE TABLE、または ALTER TABLE コマンドを使用して、ファイルフォーマットオプションやコピーオプションを指定しないでください。コピーオプションの指定には、 COPY INTO <テーブル> コマンドを使用することをお勧めします。
バリアント構文¶
CREATE OR ALTER STAGE¶
ステージがまだ存在しない場合は新規に作成し、存在する場合は既存のステージをステートメントで定義されたステージに変換します。CREATE OR ALTER STAGE ステートメントは、 CREATE STAGE ステートメントの構文ルールに従い、このステートメントには ALTER STAGE ステートメントと同じ制限があります。
詳細については、 CREATE OR ALTER STAGE の使用上の注意 をご参照ください。
-- Internal stage
CREATE OR ALTER [ { TEMP | TEMPORARY } ] STAGE <internal_stage_name>
    internalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
  [ COMMENT = '<string_literal>' ]
-- External stage
CREATE OR ALTER [ { TEMP | TEMPORARY } ] STAGE <external_stage_name>
    externalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
  [ COMMENT = '<string_literal>' ]
CREATE STAGE ... CLONE¶
同じパラメーター値で新しいステージを作成します。
CREATE [ OR REPLACE ] STAGE [ IF NOT EXISTS ] <name> CLONE <source_stage>
  [ ... ]
詳細については、 CREATE <オブジェクト> ... CLONE をご参照ください。
必須パラメーター¶
- internal_stage_nameまたは .- external_stage_name
- ステージの識別子を指定します。ステージが作成されるスキーマに対して一意である必要があります。 - また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: - "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。- 詳細については、 識別子の要件 をご参照ください。 
注釈
外部ステージを作成するときは、 URL も必要です。詳細については、 外部ステージパラメーター (このトピック)をご参照ください。
URL が指定されていない場合、Snowflakeはデフォルトで内部ステージを作成します。
オプションのパラメーター¶
- { TEMP | TEMPORARY }
- 作成されたステージが仮であり、作成されたセッションの終了時にドロップされることを指定します。注意: - 仮の 外部 ステージがドロップされると、ステージ自体のみがドロップされます。データファイルは削除されません。 
- 仮の 内部 ステージがドロップされると、ロードステータスに関係なく、ステージ内のすべてのファイルがSnowflakeからパージされます。これにより、仮の内部ステージのファイルがデータストレージを使用することでストレージ料金が発生することを防ぎます。ただし、これは、ステージがドロップされると、Snowflakeを介してステージングされたファイルを回復できないことも意味します。 - Tip - 仮の内部ステージを作成して使用する予定がある場合は、Snowflakeの外部にデータファイルのコピーを保持する必要があります。 
 
- FILE_FORMAT = ( FORMAT_NAME = 'file_format_name' )または .- FILE_FORMAT = ( TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM [ ... ] )
- ステージのファイル形式を指定します。次のいずれかです。 - FORMAT_NAME = 'file_format_name'
- ステージに使用する既存の名前付きファイル形式を指定します。指定されたファイル形式は、このステージを使用してロードされるデータファイルの形式タイプ(CSV、 JSONなど)およびその他の形式オプションを決定します。詳細については、 CREATE FILE FORMAT をご参照ください。 
- TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM [ ... ]
- ステージのファイルのタイプを指定します。 - ステージからのデータのロード( COPY INTO <テーブル> を使用)は、サポートされているすべての形式タイプに対応しています。 
- ( COPY INTO <場所> を使用して)ステージにデータをアンロードすることは、 - CSV、- JSON、または- PARQUETに対応します。
 - ファイル形式タイプが指定されている場合は、追加の形式固有のオプションを指定できます。詳細については、 形式タイプオプション(formatTypeOptions) (このトピック)をご参照ください。 - CUSTOMフォーマット・タイプは、基礎となるステージが非構造化データを保持することを指定し、- FILE_PROCESSORコピー・オプションとともにのみ使用できます。
 - デフォルト: - TYPE = CSV
注釈
FORMAT_NAME と TYPE は相互に排他的です。ステージに指定できるのはどちらか一方のみです。
- COMMENT = 'string_literal'
- ステージのコメントを指定します。 - デフォルト: 値なし 
- TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
- タグ の名前とタグ文字列の値を指定します。 - タグ値は常に文字列であり、タグ値の最大文字数は256です。 - ステートメントでのタグの指定に関する情報については、 オブジェクトのタグクォータ をご参照ください。 
内部ステージパラメーター(internalStageParams)¶
- [ ENCRYPTION = ( TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE' ) ]
- ステージに格納されているすべてのファイルでサポートされている暗号化の型を指定します。ステージを作成した後に暗号化タイプを変更することはできません。 - TYPE = ...
- 使用される暗号化タイプを指定します。 - 重要 - セキュリティコンプライアンスのために Tri-Secret Secure が必要な場合は、内部ステージに - SNOWFLAKE_FULL暗号化タイプを使用します。- SNOWFLAKE_SSEは Tri-Secret Secure をサポートしていません。- 可能な値は次のとおりです。 - SNOWFLAKE_FULL: クライアント側およびサーバー側の暗号化。ファイルは、クライアントが PUT を使用して内部ステージにアップロードするときに暗号化されます。Snowflakeはデフォルトで128ビットの暗号化キーを使用します。 CLIENT_ENCRYPTION_KEY_SIZE パラメーターを設定すると、256ビットのキーを構成できます。- また、すべてのファイルはサーバー側で AES-256の強力な暗号化を使用して自動的に暗号化されます。 
- SNOWFLAKE_SSE: サーバー側の暗号化のみ。ファイルがステージに着信すると、Snowflakeアカウントがホストされているクラウドサービスによって暗号化されます。- ステージングされたファイルに対して事前署名されたURLsをクエリする場合は、サーバー側の暗号化を指定します。詳細については、 ファイルにアクセスできる URLs の型 をご参照ください。 
 
 - デフォルト: - SNOWFLAKE_FULL
外部ステージパラメーター(externalStageParams)¶
- URL = 'cloud_specific_url'
- このパラメーターを省略すると、Snowflakeは内部ステージを作成します - 重要 - Snowflakeが文字列を識別するために、 URL を一重引用符( - '')で囲みます。引用符を省略すると、指定した認証情報が履歴にプレーンテキストで表示される場合があります。CREATE STAGE ステートメントの構文を実行する前に検証することを強くお勧めします。- Snowflakeウェブインターフェイスにステージを作成すると、インターフェイスは、必要に応じてフィールド値を引用符で自動的に囲みます。 
- URL にスラッシュ( - /)を追加して、指定したフォルダーパスにフィルターをかけます。スラッシュを省略すると、指定したパスのプレフィックスで始まるすべてのファイルとフォルダーが含まれます。- ステージ内の非構造化データファイルにアクセスして取得するには、スラッシュが 必須 であることに注意してください。 
 - Amazon S3 - URL = 'protocol://bucket[/path/]'
- ロード/アンロード用のデータファイルの保存に使用される外部ロケーション(既存のS3バケット)の URL を指定します。この場合: - protocolは以下のいずれかです。- s3プレフィックスは、中国以外のパブリック AWS リージョンのS3ストレージを参照します。
- s3chinaプレフィックスは、中国のパブリック AWS リージョンのS3ストレージを参照します。
- s3govプレフィックスは、 政府リージョン のS3ストレージを参照します。
 - ストレージ統合を使用した 政府リージョン のクラウドストレージへのアクセスは、同じ政府リージョンでホストされているSnowflakeアカウントに限定されています。 - 同様に、中国の地域のクラウドストレージにアクセスする必要がある場合は、中国の同じ地域でホストされているSnowflakeアカウントからのみストレージ統合を使用できます。 - このような場合、 CREDENTIALS パラメーター( CREATE STAGE コマンド内の)を使用して(ストレージ統合を使用するのではなく)、認証用の認証情報を提供します。 
- bucketはS3バケットの名前、またはS3バケットアクセスポイントの バケットスタイルのエイリアス。S3アクセスポイントの場合は、- AWS_ACCESS_POINT_ARNパラメーターの値も指定する必要があります。
- pathは、クラウドストレージの場所(ファイルは共通の文字列で始まる名前を持つ)にあるファイルの大文字と小文字を区別するオプションのパスで、ファイルのセットを制限します。パスは、クラウドストレージサービスによって、 プレフィックス または フォルダー と呼ばれることもあります。
 
 - AWS_ACCESS_POINT_ARN = 'string'
- S3アクセスポイントのAmazonリソース名(ARN)を指定します。ストレージ - URLにS3アクセスポイントエイリアスを指定する場合にのみ必要です。
 - Google Cloud Storage - URL = 'gcs://bucket[/path/]'
- ロード/アンロード用のデータファイルの保存に使用される外部ロケーション(既存の GCS バケット)の URL を指定します。この場合: - bucketは GCS バケットの名前です。
- pathは、ファイルのセットを制限する、クラウドストレージの場所にあるファイルのオプションのパスです(つまり、ファイルの名前は一般的な文字列で開始)。パスは、別のクラウドストレージサービスによって プレフィックス または フォルダー と呼ばれることもあります。
 
 - Microsoft Azure - URL = 'azure://account.blob.core.windows.net/container[/path/]'
- ロード用データファイルの保存に使用される外部ロケーション(既存のAzureコンテナー)の URL を指定します。この場合、 - accountは、Azureアカウントの名前です(例:- myaccount)。Data Lake Storage Gen2を含む、サポートされているすべてのタイプのAzure BLOBストレージアカウントに、- blob.core.windows.netエンドポイントを使用します。- 現在、ストレージ統合を使用した 政府リージョン のAzure BLOBストレージへのアクセスは、同じ政府リージョンのAzureでホストされているSnowflakeアカウントに限定されていることに注意してください。直接認証情報を使用した、政府リージョン外でホストされているアカウントからBLOBストレージへのアクセスがサポートされています。 
- containerは、Azureコンテナーの名前です(例:- mycontainer)。
 - pathは、ファイルのセットを制限する、クラウドストレージの場所にあるファイルのオプションのパスです(つまり、ファイルの名前は一般的な文字列で開始)。パスは、別のクラウドストレージサービスによって プレフィックス または フォルダー と呼ばれることもあります。
 
 - デフォルト:値なし(内部ステージが作成される) 
- STORAGE_INTEGRATION = integration_nameまたは .- CREDENTIALS = ( cloud_specific_credentials )
- ストレージの場所がプライベート/保護されている場合にのみ必要です。公共のバケット/コンテナーには必要ありません - Amazon S3 - STORAGE_INTEGRATION = integration_name
- 外部クラウドストレージの認証責任をSnowflake IDおよびアクセス管理(IAM)エンティティに委任するために使用されるストレージ統合の名前を指定します。詳細については、 CREATE STORAGE INTEGRATION をご参照ください。 - 注釈 - ストレージ統合の使用を強くお勧めします。このオプションにより、ステージの作成時またはデータのロード時に CREDENTIALS パラメーターを使用してクラウドストレージの認証情報を提供する必要がなくなります。 
- ストレージ統合を使用した政府リージョンのS3ストレージへのアクセスは、同じ政府リージョンの AWS でホストされているSnowflakeアカウントに限定されていることに注意してください。直接認証情報を使用した、政府リージョン外でホストされているアカウントからS3ストレージへのアクセスがサポートされています。 
 
- CREDENTIALS = ( AWS_KEY_ID = 'string' AWS_SECRET_KEY = 'string' [ AWS_TOKEN = 'string' ] )または .- CREDENTIALS = ( AWS_ROLE = 'string' )
- AWS に接続し、ロード/アンロードするファイルがステージングされるプライベート/保護されたS3バケットにアクセスするためのセキュリティ認証情報を指定します。詳細については、 Amazon S3へのセキュアアクセスの構成 をご参照ください。 - 指定する認証情報は、バケットのSnowflakeアクセス許可を AWS IAM (識別およびアクセス管理)ユーザーまたはロールに関連付けたかどうかによって異なります。 - IAM ユーザー: IAM 認証情報が必要です。仮の(別名「スコープ」)認証情報は AWS セキュリティトークンサービス(STS)によって生成され、次の3つのコンポーネントで構成されます。 - AWS_KEY_ID
- AWS_SECRET_KEY
- AWS_TOKEN
 - プライベート/保護されたバケットにアクセスするには、3つすべてが 必要 です。指定された期間が経過すると、仮の認証情報は期限切れになり、使用できなくなります。そうすると、有効な仮の認証情報の新しいセットを生成する必要があります。 - 重要 - COPY コマンドは、永続的な(別名「長期」)認証情報の使用も許可します。ただし、セキュリティ上の理由から、Snowflakeはこれらの使用を推奨 しません 。永続的な認証情報を使用する必要がある場合、Snowflakeは外部ステージ用に新しい永続的な認証情報を定期的に生成することをお勧めします。 
- IAM ロール: セキュリティ認証情報とアクセスキーを省略し、代わりに - AWS_ROLEを使用してロールを識別し、 AWS ロール ARN (Amazonリソース名)を指定します。
 
 - Google Cloud Storage - STORAGE_INTEGRATION = integration_name
- 外部クラウドストレージの認証責任をSnowflake IDおよびアクセス管理(IAM)エンティティに委任するために使用されるストレージ統合の名前を指定します。詳細については、 CREATE STORAGE INTEGRATION をご参照ください。 
 - Microsoft Azure - STORAGE_INTEGRATION = integration_name
- 外部クラウドストレージの認証責任をSnowflake IDおよびアクセス管理(IAM)エンティティに委任するために使用されるストレージ統合の名前を指定します。詳細については、 CREATE STORAGE INTEGRATION をご参照ください。 - 注釈 - ストレージ統合の使用を強くお勧めします。このオプションにより、ステージの作成時またはデータのロード時に CREDENTIALS パラメーターを使用してクラウドストレージの認証情報を提供する必要がなくなります。 
- ストレージ統合を使用した 政府リージョン のAzure BLOBストレージへのアクセスは、同じ政府リージョンのAzureでホストされているSnowflakeアカウントに限定されていることに注意してください。直接認証情報を使用した、政府リージョン外でホストされているアカウントからBLOBストレージへのアクセスがサポートされています。 
 
- CREDENTIALS = ( AZURE_SAS_TOKEN = 'string' )
- Azureに接続し、ロードされたデータを含むファイルがステージングされるプライベート/保護されたコンテナーにアクセスするための SAS (共有アクセス署名)トークンを指定します。認証情報はAzureによって生成されます。 
 - デフォルト:値なし(外部ステージの認証情報は提供されない) 
- ENCRYPTION = ( cloud_specific_encryption )
- 暗号化ファイルからのロード、または暗号化ファイルへのアンロード時に必要です。ストレージの場所とファイルが暗号化されていない場合は不要です。 - データのロード:
- ストレージの場所内の暗号化されたファイルを復号化し、データを抽出するために使用する暗号化設定を変更します。 
- データのアンロード:
- ストレージの場所にアンロードされたファイルの暗号化に使用する暗号化設定を変更します。 
 - Amazon S3 - ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] MASTER_KEY = 'string' | TYPE = 'AWS_SSE_S3' | TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = 'string' ] | TYPE = 'NONE' )- TYPE = ...
- 使用される暗号化タイプを指定します。可能な値は次のとおりです。 - AWS_CSE: クライアント側の暗号化(- MASTER_KEY値が必要)。現在、提供できるクライアント側の マスターキー は対称キーのみです。- MASTER_KEY値が指定されている場合、Snowflakeは- TYPE = AWS_CSEとみなします(- MASTER_KEY値が指定されている場合は、- TYPEが不要です)。
- AWS_SSE_S3:追加の暗号化設定を必要としないサーバー側の暗号化。
- AWS_SSE_KMS:オプションの- KMS_KEY_ID値を受け入れるサーバー側の暗号化。
 - 暗号化タイプの詳細については、 クライアント側の暗号化 または サーバー側の暗号化 の AWS ドキュメントをご参照ください。 - NONE:暗号化なし。
 
- MASTER_KEY = 'string'(- AWS_CSE暗号化のみに適用)
- バケット内のファイルの暗号化に使用されたクライアント側マスターキーを指定します。マスターキーは、Base64エンコード形式の128ビットまたは256ビットキーである必要があります。 
- KMS_KEY_ID = 'string'(- AWS_SSE_KMS暗号化のみに適用)
- オプションで、バケットに アンロードされた ファイルの暗号化に使用する AWS KMS 管理キーの ID を指定します。値が指定されていない場合、デフォルトの KMS キー ID を使用して、アンロード時にファイルが暗号化されます。 - この値はデータのロードでは無視されることに注意してください。 
 - デフォルト: - NONE- Google Cloud Storage - ENCRYPTION = ( TYPE = 'GCS_SSE_KMS' [ KMS_KEY_ID = 'string' ] | TYPE = 'NONE' )- TYPE = ...
- 使用される暗号化タイプを指定します。可能な値は次のとおりです。 - GCS_SSE_KMS:オプションの- KMS_KEY_ID値を受け入れるサーバー側の暗号化。- 詳細については、 Google Cloud のドキュメントをご参照ください。 
- NONE:暗号化なし。
 
- KMS_KEY_ID = 'string'(- GCS_SSE_KMS暗号化のみに適用)
- オプションで、バケットに アンロード されるファイルの暗号化に使用する KMS 管理キーの ID を指定します。値が指定されていない場合、バケットに対して設定されているデフォルトの KMS キー ID を使用して、アンロード時にファイルが暗号化されます。 - この値はデータのロードでは無視されることに注意してください。サービスアカウントにバケット内のデータを復号化するための十分な権限がある場合、ロード操作は成功するはずです。 
 - デフォルト: - NONE- Microsoft Azure - ENCRYPTION = ( TYPE = 'AZURE_CSE' MASTER_KEY = 'string' | TYPE = 'NONE' )- TYPE = ...
- 使用される暗号化タイプを指定します。可能な値は次のとおりです。 - AZURE_CSE: クライアント側の暗号化(MASTER_KEY 値が必要)。詳細については、Microsoft Azureのドキュメントの クライアント側の暗号化情報 をご参照ください。
- NONE:暗号化なし。
 
- MASTER_KEY = 'string'(AZURE_CSE 暗号化のみに適用)
- ファイルの暗号化または復号化に使用されるクライアント側マスターキーを指定します。マスターキーは、Base64エンコード形式の128ビットまたは256ビットキーである必要があります。 
 - デフォルト: - NONE
- USE_PRIVATELINK_ENDPOINT = { TRUE | FALSE }
- プライベート接続 を外部ステージに使用し、セキュリティ体制を強化するかどうかを指定します。 - 外部ステージがストレージ統合を使用し、その統合がプライベート接続用に構成されている場合は、このパラメーターを FALSE に設定します。 - このパラメーターの使用に関する情報については、次のいずれかをご参照ください。 
Amazon S3互換ストレージの外部ステージパラメーター(externalStageParams)¶
URL = 's3compat://bucket[/path/]'
データファイルの格納に使用される外部の場所(S3互換の API エンドポイントを使用してアクセスされる既存のバケット)の URL を指定します。
bucketはバケットの名前です。
pathは、クラウドストレージの場所にあるファイル(つまり、一般的な文字列で始まる名前を持つファイル)の大文字と小文字を区別するオプションのパス(またはS3用語では プレフィックス)です。
ENDPOINT = 's3_api_compatible_endpoint'
S3互換の API エンドポイントをポイントする完全修飾ドメイン。
ディレクトリテーブルパラメーター(directoryTableParams)¶
内部の名前付きステージ¶
- ENABLE = { TRUE | FALSE }
- 内部の名前付きステージで ディレクトリテーブル を有効にするかどうかを指定します。 - デフォルト: - FALSE
- AUTO_REFRESH = { TRUE | FALSE }
- 新規または更新された データファイルが 内部の名前付きステージ で利用可能になった際に、Snowflakeが自動的にディレクトリテーブルメタデータを更新するかどうかを指定します。 - TRUE
- Snowflakeは自動的にディレクトリテーブルのメタデータを更新します。 
- FALSE
- Snowflakeは、ディレクトリテーブルのメタデータを自動的に更新しません。ALTER STAGE ... REFRESH を使用して、ディレクトリテーブルのメタデータを手動で定期的に更新し、メタデータをステージパスにあるファイルの現在のリストと同期する必要があります。 
 - デフォルト: - FALSE
外部ステージ¶
Amazon S3
ENABLE = { TRUE | FALSE }
ディレクトリテーブル をステージに追加するかどうかを指定します。値が TRUE の場合は、ステージとともにディレクトリテーブルが作成されます。
デフォルト:
FALSE
REFRESH_ON_CREATE = { TRUE | FALSE }
ステージが作成された直後に、ディレクトリテーブルのメタデータを1回自動的に更新するかどうかを指定します。ディレクトリテーブルのメタデータを更新すると、指定したステージパス内のデータファイルの現在のリストとメタデータが同期されます。このアクションは、メタデータが
URL =設定で指定された名前付きステージに 既存の データファイルを登録するために必要です。
TRUE
Snowflakeは、ステージの作成後にディレクトリテーブルのメタデータを自動的に更新します。
注釈
指定したクラウドストレージ URL に100万個近くかそれ以上のファイルが含まれている場合は、
REFRESH_ON_CREATE = FALSEを設定することをお勧めします。ステージを作成した後、メタデータにその場所のファイルすべてが含まれるまで、ストレージの場所のサブパス(つまり、更新に含めるファイルのサブセット)を指定する ALTER STAGE ... REFRESH ステートメントを実行して、ディレクトリテーブルのメタデータを段階的に更新します。
FALSE
Snowflakeは、ディレクトリテーブルのメタデータを自動的に更新しません。ステージに存在するデータファイルを登録するには、 ALTER STAGE ... REFRESH を使用してディレクトリテーブルのメタデータを手動で1回更新します。
デフォルト:
TRUE
AUTO_REFRESH = { TRUE | FALSE }
URL 値で指定された名前付き外部ステージで 新規またはリフレッシュされた データファイルが使用可能な場合に、Snowflakeがディレクトリテーブルのメタデータの自動リフレッシュトリガーを有効にするかどうかを指定します。
TRUE
Snowflakeを使用すると、ディレクトリテーブルのメタデータの自動更新をトリガーできます。
FALSE
Snowflakeは、ディレクトリテーブルのメタデータの自動更新トリガーを有効にしません。ALTER STAGE ... REFRESH を使用して、ディレクトリテーブルのメタデータを手動で定期的に更新し、メタデータをステージパスにあるファイルの現在のリストと同期する必要があります。
デフォルト:
FALSEGoogle Cloud Storage
ENABLE = { TRUE | FALSE }
ディレクトリテーブル をステージに追加するかどうかを指定します。値が TRUE の場合は、ステージとともにディレクトリテーブルが作成されます。
デフォルト:
FALSE
REFRESH_ON_CREATE = { TRUE | FALSE }
ステージが作成された直後に、ディレクトリテーブルのメタデータを1回自動的に更新するかどうかを指定します。ディレクトリテーブルのメタデータを更新すると、指定したステージパス内のデータファイルの現在のリストとメタデータが同期されます。このアクションは、メタデータが
URL =設定で指定された名前付きステージに 既存の データファイルを登録するために必要です。
TRUE
Snowflakeは、ステージの作成後にディレクトリテーブルのメタデータを自動的に更新します。
注釈
指定したクラウドストレージ URL に100万個近くかそれ以上のファイルが含まれている場合は、
REFRESH_ON_CREATE = FALSEを設定することをお勧めします。ステージを作成した後、メタデータにその場所のファイルすべてが含まれるまで、ストレージの場所のサブパス(つまり、更新に含めるファイルのサブセット)を指定する ALTER STAGE ... REFRESH ステートメントを実行して、ディレクトリテーブルのメタデータを段階的に更新します。
FALSE
Snowflakeは、ディレクトリテーブルのメタデータを自動的に更新しません。ステージに存在するデータファイルを登録するには、 ALTER STAGE ... REFRESH を使用してディレクトリテーブルのメタデータを手動で1回更新します。
デフォルト:
TRUE
AUTO_REFRESH = { TRUE | FALSE }
[ WITH ] LOCATION =設定で指定された名前付き外部ステージで 新しいまたは更新された データファイルが使用可能な場合に、Snowflakeがディレクトリテーブルのメタデータの自動更新トリガーを有効にするかどうかを指定します。
TRUE
Snowflakeを使用すると、ディレクトリテーブルのメタデータの自動更新をトリガーできます。
FALSE
Snowflakeは、ディレクトリテーブルのメタデータの自動更新トリガーを有効にしません。ALTER STAGE ... REFRESH を使用して、ディレクトリテーブルのメタデータを手動で定期的に更新し、メタデータをステージパスにあるファイルの現在のリストと同期する必要があります。
NOTIFICATION_INTEGRATION = 'notification_integration_name'
GCS Pub/Sub通知を使用して、ディレクトリテーブルのメタデータを自動的に更新するために使用される通知統合の名前を指定します。通知統合は、Snowflakeとサードパーティのクラウドメッセージキューサービス間のインターフェイスを提供するSnowflakeオブジェクトです。
Microsoft Azure
ENABLE = { TRUE | FALSE }
ディレクトリテーブル をステージに追加するかどうかを指定します。値が TRUE の場合は、ステージとともにディレクトリテーブルが作成されます。
デフォルト:
FALSE
REFRESH_ON_CREATE = { TRUE | FALSE }
ステージが作成された直後に、ディレクトリテーブルのメタデータを1回自動的に更新するかどうかを指定します。ディレクトリテーブルのメタデータを更新すると、指定したステージパス内のデータファイルの現在のリストとメタデータが同期されます。このアクションは、メタデータが
URL =設定で指定された名前付きステージに 既存の データファイルを登録するために必要です。
TRUE
Snowflakeは、ステージの作成後にディレクトリテーブルのメタデータを自動的に更新します。
注釈
指定したクラウドストレージ URL に100万個近くかそれ以上のファイルが含まれている場合は、
REFRESH_ON_CREATE = FALSEを設定することをお勧めします。ステージを作成した後、メタデータにその場所のファイルすべてが含まれるまで、ストレージの場所のサブパス(つまり、更新に含めるファイルのサブセット)を指定する ALTER STAGE ... REFRESH ステートメントを実行して、ディレクトリテーブルのメタデータを段階的に更新します。
FALSE
Snowflakeは、ディレクトリテーブルのメタデータを自動的に更新しません。ステージに存在するデータファイルを登録するには、 ALTER STAGE ... REFRESH を使用してディレクトリテーブルのメタデータを手動で1回更新します。
デフォルト:
TRUE
AUTO_REFRESH = { TRUE | FALSE }
[ WITH ] LOCATION =設定で指定された名前付き外部ステージで 新しいまたは更新された データファイルが使用可能な場合に、Snowflakeがディレクトリテーブルのメタデータの自動更新トリガーを有効にするかどうかを指定します。
TRUE
Snowflakeを使用すると、ディレクトリテーブルのメタデータの自動更新をトリガーできます。
FALSE
Snowflakeは、ディレクトリテーブルのメタデータの自動更新トリガーを有効にしません。ALTER STAGE ... REFRESH を使用して、ディレクトリテーブルのメタデータを手動で定期的に更新し、メタデータをステージパスにあるファイルの現在のリストと同期する必要があります。
デフォルト:
FALSE
NOTIFICATION_INTEGRATION = 'notification_integration_name'
Azure Event Grid通知を使用して、ディレクトリテーブルのメタデータを自動的に更新するために使用される通知統合の名前を指定します。通知統合は、Snowflakeとサードパーティのクラウドメッセージキューサービス間のインターフェイスを提供するSnowflakeオブジェクトです。
形式タイプオプション(formatTypeOptions)¶
指定したファイル形式タイプ(FILE_FORMAT = ( TYPE = ... ))に応じて、次の形式固有のオプションを1つ以上含めることができます(空白、コンマ、または改行で区切る)。
TYPE = CSV¶
- COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- 使用:
- データのロード、データのアンロード、および外部テーブル 
- 定義:
- データをロードするときに、データファイルの現在の圧縮アルゴリズムを指定します。Snowflakeはこのオプションを使用して、ファイル内の圧縮データをロード用に抽出できるように、 圧縮済み データファイルの圧縮方法を検出します。 
- データをアンロードする際、指定された圧縮アルゴリズムを使用してデータファイルを圧縮します。 
 
- 値:
- サポートされる値 - 注意 - AUTO- データをロードすると、圧縮アルゴリズムは自動的に検出されますが、Brotliで圧縮されたファイルは例外で、現在は自動検出できません。データをアンロードするとき、ファイルはデフォルトのgzipを使用して自動的に圧縮されます。 - GZIP- BZ2- BROTLI- Brotliで圧縮されたファイルをロード/アンロードするときは、指定する必要があります。 - ZSTD- Zstandard v0.8(およびそれ以上)がサポートされています。 - DEFLATE- Deflate圧縮されたファイル(zlibヘッダー、 RFC1950を使用)。 - RAW_DEFLATE- 生Deflate圧縮ファイル(ヘッダーなし、 RFC1951)。 - NONE- データをロードするとき、ファイルが圧縮されていないことを示します。データをアンロードするとき、アンロードされたファイルが圧縮されないことを指定します。 
- デフォルト:
- AUTO
 
- RECORD_DELIMITER = 'string' | NONE
- 使用:
- データのロード、データのアンロード、および外部テーブル 
- 定義:
- 入力ファイル(データのロード)またはアンロードされたファイル(データのアンロード)の記録を分離する、1つ以上のシングルバイトまたはマルチバイト文字。一般的なエスケープシーケンス、または次のシングルバイトまたはマルチバイト文字を受け入れます。 - シングルバイト文字:
- 8進値( - \\でプレフィックス)、または16進値(- 0xまたは- \xでプレフィックス)を受け入れます。たとえば、アクサンシルコンフレックス(- ^)文字で区切られた記録の場合は、8進数(- \\136)または16進数(- 0x5e)の値を指定します。
- マルチバイト文字:
- 16進値( - \xでプレフィックス)。たとえば、セント(- ¢)文字で区切られた記録の場合は、16進数(- \xC2\xA2)の値を指定します。- RECORD_DELIMITER または FIELD_DELIMITER の区切り文字は、他のファイル形式オプションの区切り文字の部分文字列にはできません(例えば、 - FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb')。
 - 指定された区切り文字は、ランダムなバイトのシーケンスではなく、有効な UTF-8文字でなければなりません。区切り文字は最大20文字に制限されていることにも注意してください。 - NONEの値も受け入れます。
- デフォルト:
- データのロード:
- 改行文字。「改行」は論理的であるため、 - \r\nがWindowsプラットフォーム上のファイルの改行として理解されることに注意してください。
- データのアンロード:
- 改行文字( - \n)。
 
 
- FIELD_DELIMITER = 'string' | NONE
- 使用:
- データのロード、データのアンロード、および外部テーブル 
- 定義:
- 入力ファイル(データのロード)またはアンロードされたファイル(データのアンロード)のフィールドを区切る1つ以上のシングルバイトまたはマルチバイト文字。一般的なエスケープシーケンス、または次のシングルバイトまたはマルチバイト文字を受け入れます。 - シングルバイト文字:
- 8進値( - \\でプレフィックス)、または16進値(- 0xまたは- \xでプレフィックス)を受け入れます。たとえば、アクサンシルコンフレックス(- ^)文字で区切られた記録の場合は、8進数(- \\136)または16進数(- 0x5e)の値を指定します。
- マルチバイト文字:
- 16進値( - \xでプレフィックス)。たとえば、セント(- ¢)文字で区切られた記録の場合は、16進数(- \xC2\xA2)の値を指定します。- RECORD_DELIMITER または FIELD_DELIMITER の区切り文字は、他のファイル形式オプションの区切り文字の部分文字列にはできません(例えば、 - FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb')。- 注釈 - ASCII 以外の文字の場合は、16進数のバイトシーケンス値を使用して決定論的動作を得る必要があります。 
 - 指定された区切り文字は、ランダムなバイトのシーケンスではなく、有効な UTF-8文字でなければなりません。区切り文字は最大20文字に制限されていることにも注意してください。 - NONEの値も受け入れます。
- デフォルト:
- コンマ( - ,)
 
- MULTI_LINE = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- 複数行を許すかどうかを指定するブール。MULTI_LINE が - FALSEに設定され、指定されたレコード区切り文字が CSV フィールド内に存在する場合、そのフィールドを含むレコードはエラーとして解釈されます。
- デフォルト:
- TRUE
 - 注釈 - RFC4180 仕様に従った大きな非圧縮 CSV ファイル(128MB より大きい)をロードする場合、MULTI_LINE が - FALSEに、COMPRESSION が- NONEに、ON_ERROR が- ABORT_STATEMENTまたは- CONTINUEに設定されているときは、Snowflakeはこれら CSV ファイルの平行スキャンをサポートします。
- FILE_EXTENSION = 'string' | NONE
- 使用:
- データのアンロードのみ 
- 定義:
- ステージにアンロードされるファイルの拡張子を指定します。拡張子を受け入れます。目的のソフトウェアまたはサービスが読み取れるファイル拡張子を指定することは、ユーザーの責任です。 
- デフォルト:
- null、つまり、ファイル拡張子は形式タイプ - .csv[compression]によって決定されます。ここで、- compressionは、- COMPRESSIONが設定されている場合、圧縮方法によって追加された拡張子です。
 - 注釈 - SINGLEコピーオプションが- TRUEの場合、 COPY コマンドはデフォルトでファイル拡張子のないファイルをアンロードします。ファイル拡張子を指定するには、- internal_locationまたは- external_locationのパスにファイル名と拡張子を提供します(例:- copy into @stage/data.csv)。
- PARSE_HEADER = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- データファイルにある最初の行のヘッダーを使用して列名を決定するかどうかを指定するブール値。 
 - このファイル形式オプションは、次のアクションにのみ適用されます。 - INFER_SCHEMA 関数を使用した、列定義の自動検出。 
- INFER_SCHEMA 関数と MATCH_BY_COLUMN_NAME コピーオプションを使用した、個別の列への CSV データロード。 
 - オプションが TRUE に設定されている場合は、最初の行のヘッダーが列名を決定するために使われます。デフォルト値 FALSE は、列名をc として返します。 は列の位置です。 - 注釈 - このオプションは外部テーブルではサポートされていません。 
- PARSE_HEADER = TRUEを設定した場合、 SKIP_HEADER オプションはサポートされません。
 - デフォルト:
- FALSE
 
- SKIP_HEADER = integer
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- スキップするファイルの先頭の行数。 
 - SKIP_HEADER は RECORD_DELIMITER または FIELD_DELIMITER の値を使用してヘッダー行を決定しないことに注意してください。むしろ、指定された数の CRLF (キャリッジリターン、ラインフィード)で区切られたファイル内の行を単にスキップします。ロードするデータの行を決定するのには、RECORD_DELIMITER および FIELD_DELIMITER が使用されます。 - デフォルト:
- 0
 
- SKIP_BLANK_LINES = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- データファイルで検出された空白行のスキップを指定するブール値。それ以外の場合、空白行は記録終了エラーを生成します(デフォルトの動作)。 
- デフォルト:
- FALSE
 
- DATE_FORMAT = 'string' | AUTO
- 使用:
- データのロードとアンロード 
- 定義:
- データファイル(データのロード)またはテーブル(データのアンロード)の日付値の形式を定義します。値が指定されていない、または - AUTOの場合、 DATE_INPUT_FORMAT (データのロード)または DATE_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。
- デフォルト:
- AUTO
 
- TIME_FORMAT = 'string' | AUTO
- 使用:
- データのロードとアンロード 
- 定義:
- データファイル(データのロード)またはテーブル(データのアンロード)の時間値の形式を定義します。値が指定されていない、または - AUTOの場合、 TIME_INPUT_FORMAT (データのロード)または TIME_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。
- デフォルト:
- AUTO
 
- TIMESTAMP_FORMAT = string' | AUTO
- 使用:
- データのロードとアンロード 
- 定義:
- データファイル(データのロード)またはテーブル(データのアンロード)のタイムスタンプ値の形式を定義します。値が指定されていない、または - AUTOの場合、 TIMESTAMP_INPUT_FORMAT (データのロード)または TIMESTAMP_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。
- デフォルト:
- AUTO
 
- BINARY_FORMAT = HEX | BASE64 | UTF8
- 使用:
- データのロードとアンロード 
- 定義:
- バイナリ入力または出力のエンコード形式を定義します。このオプションは、テーブルのバイナリ列にデータをロードまたはアンロードするときに使用できます。 
- デフォルト:
- HEX
 
- ESCAPE = 'character' | NONE
- 使用:
- データのロードとアンロード 
- 定義:
- 囲まれているフィールド値、または囲まれていないフィールド値のエスケープ文字として使用されるシングルバイト文字の文字列。エスケープ文字は、文字シーケンス内の後続の文字に対して代替解釈を呼び出します。ESCAPE 文字を使用して、データ内の - FIELD_OPTIONALLY_ENCLOSED_BY文字のインスタンスをリテラルとして解釈できます。- 一般的なエスケープシーケンス、8進数値、または16進数値を受け入れます。 
- データのロード:
- 囲まれたフィールド専用のエスケープ文字を指定します。 - FIELD_OPTIONALLY_ENCLOSED_BYを設定して、フィールドを囲むのに使用する文字を指定します。- 注釈 - このファイル形式オプションは、シングルバイト文字のみをサポートします。UTF-8文字エンコードは、上位の ASCII 文字をマルチバイト文字として表すことに注意してください。データファイルが UTF-8文字セットでエンコードされている場合は、オプション値として上位の ASCII 文字を指定することはできません。 - さらに、上位の ASCII 文字を指定する場合は、データファイルの文字エンコードとして - ENCODING = 'string'ファイル形式オプションを設定して、文字が正しく解釈されるようにすることをお勧めします。
- データのアンロード:
- このオプションが設定されている場合は、 - ESCAPE_UNENCLOSED_FIELDのエスケープ文字セットが上書きされます。
- デフォルト:
- NONE
 
- ESCAPE_UNENCLOSED_FIELD = 'character' | NONE
- 使用:
- データのロード、データのアンロード、および外部テーブル 
- 定義:
- 囲まれていないフィールド値専用のエスケープ文字として使用されるシングルバイト文字の文字列。エスケープ文字は、文字シーケンス内の後続の文字に対して代替解釈を呼び出します。ESCAPE 文字を使用して、データ内の - FIELD_DELIMITERまたは- RECORD_DELIMITER文字のインスタンスをリテラルとして解釈できます。エスケープ文字は、データ内のそれ自体のインスタンスをエスケープするためにも使用できます。- 一般的なエスケープシーケンス、8進数値、または16進数値を受け入れます。 
- データのロード:
- 囲まれていないフィールド専用のエスケープ文字を指定します。 - 注釈 - デフォルト値は - \\です。データファイルの行がバックスラッシュ(- \)文字で終わる場合、この文字は- RECORD_DELIMITERファイル形式オプションに指定された改行文字または復帰文字をエスケープします。その結果、ロード操作はこの行と次の行を単一のデータ行として扱います。この問題を回避するには、この値を- NONEに設定します。
- このファイル形式オプションは、シングルバイト文字のみをサポートします。UTF-8文字エンコードは、上位の ASCII 文字をマルチバイト文字として表すことに注意してください。データファイルが UTF-8文字セットでエンコードされている場合は、オプション値として上位の ASCII 文字を指定することはできません。 - さらに、上位の ASCII 文字を指定する場合は、データファイルの文字エンコードとして - ENCODING = 'string'ファイル形式オプションを設定して、文字が正しく解釈されるようにすることをお勧めします。
 
- データのアンロード:
- ESCAPEが設定されている場合は、そのファイルオプションのエスケープ文字セットがこのオプションを上書きします。
- デフォルト:
- バックスラッシュ( - \\)
 
- TRIM_SPACE = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- フィールドから空白を削除するかどうかを指定するブール値。 - たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを - TRUEに設定すると、データのロード中に不要なスペースが削除されます。- 別の例として、先頭または後続のスペースが文字列を囲む引用符の前後にある場合、このオプションを使用して周囲のスペースを削除し、 - FIELD_OPTIONALLY_ENCLOSED_BYオプションを使用して引用文字を削除できます。引用符 内 のスペースは保持されることに注意してください。たとえば、- FIELD_DELIMITER = '|'と- FIELD_OPTIONALLY_ENCLOSED_BY = '"'を想定した場合、- |"Hello world"| /* loads as */ >Hello world< |" Hello world "| /* loads as */ > Hello world < | "Hello world" | /* loads as */ >Hello world< - (この例のブラケットはロードされておらず、ロードされた文字列の開始と終了を区別するために使用されます) 
- デフォルト:
- FALSE
 
- FIELD_OPTIONALLY_ENCLOSED_BY = 'character' | NONE
- 使用:
- データのロード、データのアンロード、および外部テーブル 
- 定義:
- 文字列を囲むのに使用される文字。値は、 - NONE、一重引用符(- ')、または二重引用符(- ")のいずれかです。一重引用符を使用するには、8進数または16進数表現(- 0x27)または二重引用符で囲まれたエスケープ(- '')を使用します。- データのアンロードのみ:
- ソーステーブルのフィールドにこの文字が含まれている場合、Snowflakeはアンロード時に同じ文字を使用してエスケープします。たとえば、値が二重引用符であり、フィールドに文字列 - A "B" Cが含まれる場合、Snowflakeは二重引用符を次のようにエスケープします。- A ""B"" C
 
- デフォルト:
- NONE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 使用:
- データのロード、データのアンロード、および外部テーブル 
- 定義:
- SQL NULL との間の変換に使用される文字列。 - データをロードする際、Snowflakeは、データロードソースのこれらの値を SQL NULL に置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。 - Snowflakeは、データ型に関係なく、値のすべてのインスタンスを NULL に変換することに注意してください。たとえば、 - 2が値として指定されている場合は、文字列または数値としての- 2のインスタンスすべてが変換されます。- 例: - NULL_IF = ('\N', 'NULL', 'NUL', '')- このオプションには空の文字列を含めることができます。 
- データをアンロードする際、Snowflakeは SQL NULL 値をリストの最初の値に変換します。 
 
- デフォルト:
- \N(つまり NULL 。これは- ESCAPE_UNENCLOSED_FIELDの値を- \と仮定した場合)
 
- ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- 入力ファイルの区切り列(フィールド)の数が対応するテーブルの列の数と一致しない場合に、解析エラーを生成するかどうかを指定するブール値。 - FALSEに設定すると、エラーは生成されず、ロードが続行されます。ファイルが正常にロードされた場合:- 入力ファイルに、テーブル内の列よりもフィールド数が多いレコードが含まれている場合、一致するフィールドはファイル内の出現順にロードされ、残りのフィールドはロードされません。 
- 入力ファイルにテーブル内の列よりもフィールド数が少ない記録が含まれている場合、テーブル内の一致しない列は NULL 値でロードされます。 
 - このオプションは、入力ファイル内のすべてのレコードが同じ長さであることを前提としています(つまり、可変長のレコードを含むファイルは、このパラメーターに指定された値に関係なくエラーを返します)。 
- デフォルト:
- TRUE
 - 注釈 - ロード中にデータを変換する (つまり、 COPY コマンドのソースとしてクエリを使用する)場合、このオプションは無視されます。データファイルは、ターゲットテーブルと同数および同順序の列である必要はありません。 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- 無効な UTF -8文字をUnicode置換文字( - �)で置き換えるかどうかを指定するブール値。
 - TRUEに設定すると、Snowflakeは無効な UTF -8文字をUnicode置換文字に置き換えます。- FALSEに設定すると、無効な UTF-8文字エンコードが検出されたときにロード操作でエラーが生成されます。- デフォルト:
- FALSE
 
- EMPTY_FIELD_AS_NULL = TRUE | FALSE
- 使用:
- データのロード、データのアンロード、および外部テーブル 
- 定義:
- データの読み込み中、入力ファイルの空フィールドに SQL NULL を挿入するかどうかを指定します。空フィールドは2つの連続した区切り文字で表されます(例: - ,,)。- FALSEに設定すると、Snowflakeは空のフィールドを対応する列タイプにキャストしようとします。タイプ STRINGの列に空の文字列が挿入されます。他の列タイプの場合、 COPY コマンドはエラーを生成します。
- データをアンロードするとき、このオプションは - FIELD_OPTIONALLY_ENCLOSED_BYと組み合わせて使用されます。- FIELD_OPTIONALLY_ENCLOSED_BY = NONEの場合、- EMPTY_FIELD_AS_NULL = FALSEを設定すると、テーブル内の空の文字列を、フィールド値を囲む引用符なしで空の文字列値にアンロードするように指定されます。- TRUEに設定した場合、- FIELD_OPTIONALLY_ENCLOSED_BYは文字列を囲む文字を指定する必要があります。
 
- デフォルト:
- TRUE
 
- SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- データファイルに存在する場合、 BOM (バイト順マーク)をスキップするかどうかを指定するブール値。BOM は、データファイルの先頭にある文字コードで、バイト順とエンコード形式を定義します。 - FALSEに設定されている場合、Snowflakeはデータファイル内の BOM を認識し、 BOM がエラーの原因になるか、テーブルの最初の列にマージされる可能性があります。
- デフォルト:
- TRUE
 
- ENCODING = 'string'
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- データをテーブルにロードする際にソースデータの文字セットを指定する文字列(定数)。 - 文字 セット - ENCODING値- サポートされている言語 - 注意 - Big5 - BIG5- 中国語(繁体字) - EUC-JP - EUCJP- 日本語 - EUC-KR - EUCKR- 韓国語 - GB18030 - GB18030- 中国語 - IBM420 - IBM420- アラビア語 - IBM424 - IBM424- ヘブライ語 - IBM949 - IBM949- 韓国語 - ISO-2022-CN - ISO2022CN- 中国語(簡体字) - ISO-2022-JP - ISO2022JP- 日本語 - ISO-2022-KR - ISO2022KR- 韓国語 - ISO-8859-1 - ISO88591- デンマーク語、オランダ語、英語、フランス語、ドイツ語、イタリア語、ノルウェー語、ポルトガル語、スウェーデン語 - ISO-8859-2 - ISO88592- チェコ語、ハンガリー語、ポーランド語、ルーマニア語 - ISO-8859-5 - ISO88595- ロシア語 - ISO-8859-6 - ISO88596- アラビア語 - ISO-8859-7 - ISO88597- ギリシャ語 - ISO-8859-8 - ISO88598- ヘブライ語 - ISO-8859-9 - ISO88599- トルコ語 - ISO-8859-15 - ISO885915- デンマーク語、オランダ語、英語、フランス語、ドイツ語、イタリア語、ノルウェー語、ポルトガル語、スウェーデン語 - ユーロ通貨記号を含む8文字を除いて、 ISO-8859-1と同じです。 - KOI8-R - KOI8R- ロシア語 - Shift_JIS - SHIFTJIS- 日本語 - UTF-8 - UTF8- すべての言語 - 区切りファイル(CSV、 TSVなど)からデータをロードする場合、 UTF-8がデフォルトです。. . サポートされている他のすべてのファイル形式(JSON、Avroなど)からデータをロードおよびアンロードする場合、サポートされる文字セットは UTF-8のみです。 - UTF-16 - UTF16- すべての言語 - UTF-16BE - UTF16BE- すべての言語 - UTF-16LE - UTF16LE- すべての言語 - UTF-32 - UTF32- すべての言語 - UTF-32BE - UTF32BE- すべての言語 - UTF-32LE - UTF32LE- すべての言語 - windows-874 - WINDOWS874- タイ - windows-949 - WINDOWS949- 韓国語 - windows-1250 - WINDOWS1250- チェコ語、ハンガリー語、ポーランド語、ルーマニア語 - windows-1251 - WINDOWS1251- ロシア語 - windows-1252 - WINDOWS1252- デンマーク語、オランダ語、英語、フランス語、ドイツ語、イタリア語、ノルウェー語、ポルトガル語、スウェーデン語 - windows-1253 - WINDOWS1253- ギリシャ語 - windows-1254 - WINDOWS1254- トルコ語 - windows-1255 - WINDOWS1255- ヘブライ語 - windows-1256 - WINDOWS1256- アラビア語 
- デフォルト:
- UTF8
 - 注釈 - Snowflakeは、すべてのデータを UTF-8文字セットで内部に保存します。データは、Snowflakeにロードされる前に UTF-8に変換されます。 
TYPE = JSON¶
- COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- データをロードするときに、データファイルの現在の圧縮アルゴリズムを指定します。Snowflakeはこのオプションを使用して、ファイル内の圧縮データをロード用に抽出できるように、 圧縮済み データファイルの圧縮方法を検出します。 
- データをアンロードする際、指定された圧縮アルゴリズムを使用してデータファイルを圧縮します。 
 
- 値:
- サポートされる値 - 注意 - AUTO- データをロードすると、圧縮アルゴリズムは自動的に検出されますが、Brotliで圧縮されたファイルは例外で、現在は自動検出できません。データをアンロードするとき、ファイルはデフォルトのgzipを使用して自動的に圧縮されます。 - GZIP- BZ2- BROTLI- Brotliで圧縮されたファイルをロード/アンロードする場合は、指定する必要があります。 - ZSTD- Zstandard v0.8(およびそれ以上)がサポートされています。 - DEFLATE- Deflate圧縮されたファイル(zlibヘッダー、 RFC1950を使用)。 - RAW_DEFLATE- 生Deflate圧縮ファイル(ヘッダーなし、 RFC1951)。 - NONE- データをロードするとき、ファイルが圧縮されていないことを示します。データをアンロードするとき、アンロードされたファイルが圧縮されないことを指定します。 
- デフォルト:
- AUTO
 
- DATE_FORMAT = 'string' | AUTO
- 使用:
- データのロードのみ 
- 定義:
- データファイルの日付文字列値の形式を定義します。値が指定されていない場合、または - AUTOの場合は、 DATE_INPUT_FORMAT パラメーターの値が使用されます。- このファイル形式オプションは、次のアクションにのみ適用されます。 - MATCH_BY_COLUMN_NAME コピーオプションを使用して、 JSON データを個別の列にロードします。 
- COPY ステートメント(つまり、 COPY 変換)でクエリを指定して、 JSON データを個別の列にロードします。 
 
- デフォルト:
- AUTO
 
- TIME_FORMAT = 'string' | AUTO
- 使用:
- データのロードのみ 
- 定義:
- データファイルの時間文字列値の形式を定義します。値が指定されていない場合、または - AUTOの場合は、 TIME_INPUT_FORMAT パラメーターの値が使用されます。- このファイル形式オプションは、次のアクションにのみ適用されます。 - MATCH_BY_COLUMN_NAME コピーオプションを使用して、 JSON データを個別の列にロードします。 
- COPY ステートメント(つまり、 COPY 変換)でクエリを指定して、 JSON データを個別の列にロードします。 
 
- デフォルト:
- AUTO
 
- TIMESTAMP_FORMAT = string' | AUTO
- 使用:
- データのロードのみ 
- 定義:
- データファイルのタイムスタンプ文字列値の形式を定義します。値が指定されていない場合、または - AUTOの場合は、 TIMESTAMP_INPUT_FORMAT パラメーターの値が使用されます。- このファイル形式オプションは、次のアクションにのみ適用されます。 - MATCH_BY_COLUMN_NAME コピーオプションを使用して、 JSON データを個別の列にロードします。 
- COPY ステートメント(つまり、 COPY 変換)でクエリを指定して、 JSON データを個別の列にロードします。 
 
- デフォルト:
- AUTO
 
- BINARY_FORMAT = HEX | BASE64 | UTF8
- 使用:
- データのロードのみ 
- 定義:
- データファイル内のバイナリ文字列値のエンコード形式を定義します。このオプションは、テーブルのバイナリ列にデータをロードするときに使用できます。 - このファイル形式オプションは、次のアクションにのみ適用されます。 - MATCH_BY_COLUMN_NAME コピーオプションを使用して、 JSON データを個別の列にロードします。 
- COPY ステートメント(つまり、 COPY 変換)でクエリを指定して、 JSON データを個別の列にロードします。 
 
- デフォルト:
- HEX
 
- TRIM_SPACE = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- 文字列から先頭と末尾の空白を削除するかどうかを指定するブール値。 - たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを - TRUEに設定すると、データのロード中に不要なスペースが削除されます。- このファイル形式オプションは、 MATCH_BY_COLUMN_NAME コピーオプションを使用して JSON データを個別の列にロードする場合にのみ、次のアクションに適用されます。 
- デフォルト:
- FALSE
 
- MULTI_LINE = TRUE | FALSE
- 使用方法: データの読み込みと外部テーブル - 定義:
- 複数行を許すかどうかを指定するブール。MULTI_LINE が - FALSEに設定され、 JSON レコード内に改行がある場合、改行を含むレコードはエラーとして解釈されます。
- デフォルト:
- TRUE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 使用:
- データのロードのみ 
- 定義:
- SQL NULL との間の変換に使用される文字列。Snowflakeはデータロードソースのこれらの文字列を SQL NULL に置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。 - このファイル形式オプションは、 MATCH_BY_COLUMN_NAME コピーオプションを使用して JSON データを個別の列にロードする場合にのみ、次のアクションに適用されます。 - Snowflakeは、データ型に関係なく、値のすべてのインスタンスを NULL に変換することに注意してください。たとえば、 - 2が値として指定されている場合は、文字列または数値としての- 2のインスタンスすべてが変換されます。- 例: - NULL_IF = ('\N', 'NULL', 'NUL', '')- このオプションには空の文字列を含めることができます。 
- デフォルト:
- \N(つまり、 NULL)
 
- FILE_EXTENSION = 'string' | NONE
- 使用:
- データのアンロードのみ 
- 定義:
- ステージにアンロードされるファイルの拡張子を指定します。拡張子を受け入れます。目的のソフトウェアまたはサービスが読み取れるファイル拡張子を指定することは、ユーザーの責任です。 
- デフォルト:
- null、つまり、ファイル拡張子は形式タイプ - .json[compression]によって決定されます。ここで、- compressionは、- COMPRESSIONが設定されている場合、圧縮方法によって追加された拡張子です。
 
- ENABLE_OCTAL = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- 8進数の解析を可能にするブール値。 
- デフォルト:
- FALSE
 
- ALLOW_DUPLICATE = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- オブジェクトフィールド名の重複を許可することを指定するブール値(最後のオブジェクトフィールド名のみが保持されます)。 
- デフォルト:
- FALSE
 
- STRIP_OUTER_ARRAY = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- JSON パーサーに、外側の括弧(つまり - [ ])を削除するように指示するブール値。
- デフォルト:
- FALSE
 
- STRIP_NULL_VALUES = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- null値を含むオブジェクトフィールドまたは配列要素を削除するように JSON パーサーに指示するブール値。たとえば、- TRUEに設定されている場合:- 前 - 後 - [null]- []- [null,null,3]- [,,3]- {"a":null,"b":null,"c":123}- {"c":123}- {"a":[1,null,2],"b":{"x":null,"y":88}}- {"a":[1,,2],"b":{"y":88}}
- デフォルト:
- FALSE
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- 無効な UTF -8文字をUnicode置換文字( - �)で置き換えるかどうかを指定するブール値。このオプションは、1対1の文字置換を実行します。
- 値:
- TRUEに設定すると、Snowflakeは無効な UTF -8文字をUnicode置換文字に置き換えます。- FALSEに設定すると、無効な UTF-8文字エンコードが検出されたときにロード操作でエラーが生成されます。
- デフォルト:
- FALSE
 
- IGNORE_UTF8_ERRORS = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- UTF-8エンコードエラーがエラー状態を引き起こすかどうかを指定するブール値。 - REPLACE_INVALID_CHARACTERSの代替構文です。
- 値:
- TRUEに設定すると、無効な UTF-8シーケンスはUnicode文字- U+FFFD(つまり、「置換文字」)で警告なしに置き換えられます。- FALSEに設定すると、無効な UTF-8文字エンコードが検出されたときにロード操作でエラーが生成されます。
- デフォルト:
- FALSE
 
- SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- データファイルに存在する場合、 BOM (バイト順マーク)をスキップするかどうかを指定するブール値。BOM は、データファイルの先頭にある文字コードで、バイト順とエンコード形式を定義します。 - FALSEに設定されている場合、Snowflakeはデータファイル内の BOM を認識し、 BOM がエラーの原因になるか、テーブルの最初の列にマージされる可能性があります。
- デフォルト:
- TRUE
 
TYPE = AVRO¶
- COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- 使用:
- データのロードのみ 
- 定義:
- データをロードするときに、データファイルの現在の圧縮アルゴリズムを指定します。Snowflakeはこのオプションを使用して、ファイル内の圧縮データをロード用に抽出できるように、 圧縮済み データファイルの圧縮方法を検出します。 
- データをアンロードする際、指定された圧縮アルゴリズムを使用してデータファイルを圧縮します。 
 
- 値:
- サポートされる値 - 注意 - AUTO- データをロードすると、圧縮アルゴリズムは自動的に検出されますが、Brotliで圧縮されたファイルは例外で、現在は自動検出できません。データをアンロードするとき、ファイルはデフォルトのgzipを使用して自動的に圧縮されます。 - GZIP- BROTLI- Brotliで圧縮されたファイルをロード/アンロードする場合は、指定する必要があります。 - ZSTD- Zstandard v0.8(およびそれ以上)がサポートされています。 - DEFLATE- Deflate圧縮されたファイル(zlibヘッダー、 RFC1950を使用)。 - RAW_DEFLATE- 生Deflate圧縮ファイル(ヘッダーなし、 RFC1951)。 - NONE- データをロードするとき、ファイルが圧縮されていないことを示します。データをアンロードするとき、アンロードされたファイルが圧縮されないことを指定します。 
- デフォルト:
- AUTO。
 
注釈
ファイル圧縮とコーデック圧縮の両方が決定されるため、デフォルトの AUTO オプションを使用することをお勧めします。圧縮オプションの指定は、ブロック(コーデック)の圧縮ではなく、ファイルの圧縮を意味します。
- TRIM_SPACE = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- 文字列から先頭と末尾の空白を削除するかどうかを指定するブール値。 - たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを - TRUEに設定すると、データのロード中に不要なスペースが削除されます。- このファイル形式オプションは、 MATCH_BY_COLUMN_NAME コピーオプションを使用してAvroデータを個別の列にロードする場合にのみ、次のアクションに適用されます。 
- デフォルト:
- FALSE
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- 無効な UTF -8文字をUnicode置換文字( - �)で置き換えるかどうかを指定するブール値。このオプションは、1対1の文字置換を実行します。
- 値:
- TRUEに設定すると、Snowflakeは無効な UTF -8文字をUnicode置換文字に置き換えます。- FALSEに設定すると、無効な UTF-8文字エンコードが検出されたときにロード操作でエラーが生成されます。
- デフォルト:
- FALSE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 使用:
- データのロードのみ 
- 定義:
- SQL NULL との間の変換に使用される文字列。Snowflakeはデータロードソースのこれらの文字列を SQL NULL に置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。 - このファイル形式オプションは、 MATCH_BY_COLUMN_NAME コピーオプションを使用してAvroデータを個別の列にロードする場合にのみ、次のアクションに適用されます。 - Snowflakeは、データ型に関係なく、値のすべてのインスタンスを NULL に変換することに注意してください。たとえば、 - 2が値として指定されている場合は、文字列または数値としての- 2のインスタンスすべてが変換されます。- 例: - NULL_IF = ('\N', 'NULL', 'NUL', '')- このオプションには空の文字列を含めることができます。 
- デフォルト:
- \N(つまり、 NULL)
 
TYPE = ORC¶
- TRIM_SPACE = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- 文字列から先頭と末尾の空白を削除するかどうかを指定するブール値。 - たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを - TRUEに設定すると、データのロード中に不要なスペースが削除されます。- このファイル形式オプションは、 MATCH_BY_COLUMN_NAME コピーオプションを使用してOrcデータを個別の列にロードする場合にのみ、次のアクションに適用されます。 
- デフォルト:
- FALSE
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- 無効な UTF -8文字をUnicode置換文字( - �)で置き換えるかどうかを指定するブール値。このオプションは、1対1の文字置換を実行します。
- 値:
- TRUEに設定すると、Snowflakeは無効な UTF -8文字をUnicode置換文字に置き換えます。- FALSEに設定すると、無効な UTF-8文字エンコードが検出されたときにロード操作でエラーが生成されます。
- デフォルト:
- FALSE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- SQL NULL との間の変換に使用される文字列。Snowflakeはデータロードソースのこれらの文字列を SQL NULL に置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。 - このファイル形式オプションは、 MATCH_BY_COLUMN_NAME コピーオプションを使用してOrcデータを個別の列にロードする場合にのみ、次のアクションに適用されます。 - Snowflakeは、データ型に関係なく、値のすべてのインスタンスを NULL に変換することに注意してください。たとえば、 - 2が値として指定されている場合は、文字列または数値としての- 2のインスタンスすべてが変換されます。- 例: - NULL_IF = ('\N', 'NULL', 'NUL', '')- このオプションには空の文字列を含めることができます。 
- デフォルト:
- \N(つまり、 NULL)
 
TYPE = PARQUET¶
- COMPRESSION = AUTO | LZO | SNAPPY | NONE
- 使用:
- データのアンロードと外部テーブル 
- 定義:
 - データをアンロードする際に、Parquetファイルの列の圧縮アルゴリズムを指定します。 
 - 値:
- サポートされる値 - 注意 - AUTO- データをロードするときに、圧縮アルゴリズムが自動的に検出されました。対応する圧縮アルゴリズム:Brotli、gzip、Lempel-Ziv-Oberhumer(LZO)、 LZ4、Snappy、またはZstandard v0.8(およびそれ以上)。. データをアンロードすると、アンロードされたファイルはデフォルトで Snappy 圧縮アルゴリズムを使用して圧縮されます。 - LZO- データをアンロードするとき、ファイルはデフォルトでSnappyアルゴリズムを使用して圧縮されます。LZO 圧縮ファイルにデータをアンロードする場合は、この値を指定します。 - SNAPPY- データをアンロードするとき、ファイルはデフォルトでSnappyアルゴリズムを使用して圧縮されます。オプションでこの値を指定できます。 - NONE- データをロードするとき、ファイルが圧縮されていないことを示します。データをアンロードするとき、アンロードされたファイルが圧縮されないことを指定します。 
- デフォルト:
- AUTO
 
- SNAPPY_COMPRESSION = TRUE | FALSE
- 使用:
- データのアンロードのみ - サポートされる値 - 注意 - AUTO- アンロードされたファイルは、デフォルトで Snappy 圧縮アルゴリズムを使用して圧縮されます。 - SNAPPY- Snappyで圧縮されたファイルをアンロードする場合に指定できます。 - NONE- データをロードするとき、ファイルが圧縮されていないことを示します。データをアンロードするとき、アンロードされたファイルが圧縮されないことを指定します。 
- 定義:
- アンロードされたファイルが SNAPPY アルゴリズムを使用して圧縮されるかどうかを指定するブール値。 
 - 注釈 - 非推奨。 代わりに - COMPRESSION = SNAPPYを使用してください。- 制限事項:
- データのアンロード操作についてのみサポートされています。 
- デフォルト:
- TRUE
 
- BINARY_AS_TEXT = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- 論理データ型が定義されていない列を UTF-8テキストとして解釈するかどうかを指定するブール値。 - FALSEに設定すると、Snowflakeはこれらの列をバイナリデータとして解釈します。
- デフォルト:
- TRUE
 - 注釈 - Snowflakeは、潜在的な変換の問題を回避するために、 BINARY_AS_TEXT を FALSE に設定することをお勧めします。 
- TRIM_SPACE = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- 文字列から先頭と末尾の空白を削除するかどうかを指定するブール値。 - たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを - TRUEに設定すると、データのロード中に不要なスペースが削除されます。- このファイル形式オプションは、 MATCH_BY_COLUMN_NAME コピーオプションを使用してParquetデータを個別の列にロードする場合にのみ、次のアクションに適用されます。 
- デフォルト:
- FALSE
 
- USE_LOGICAL_TYPE = TRUE | FALSE
- 使用:
- データのロード、ステージングされたファイルでのデータクエリ、スキーマ検出。 
- 定義:
- Parquet論理型を使用するかどうかを指定するブール値。このファイル形式オプションを使用すると、Snowflakeはデータのロード中にParquet論理型を解釈できます。詳細については、 Parquet理論型の定義 をご参照ください。Parquet論理型を有効にするには、新しいファイル形式オプションを作成するときに USE_LOGICAL_TYPE を TRUE に設定します。 
- 制限事項:
- データのアンロードには対応していません。 
 
- USE_VECTORIZED_SCANNER = TRUE | FALSE
- 使用:
- ステージングされたファイルでのデータのロードとデータクエリ 
- 定義:
- Parquetファイルのロード時にベクトル化されたスキャナーを使用するかどうかを指定するブール値。 
- デフォルト:
- FALSE。将来の BCR では、デフォルト値は- TRUEになります。
 - ベクトル化されたスキャナーを使用すると、Parquetファイルをロードする際の待ち時間を大幅に短縮できます。このスキャナーは、 Parquet ファイルの列指向形式に適しているからです。スキャナーは、選択された列のサブセットなど、Parquetファイルの関連セクションのみをメモリにダウンロードします。 - USE_VECTORIZED_SCANNERが- TRUEに設定されている場合、ベクトル化されたスキャナーの動作は以下のようになります。- 設定された実際の値にかかわらず、 - BINARY_AS_TEXTオプションは常に- FALSEとして扱われ、- USE_LOGICAL_TYPEオプションは常に- TRUEとして扱われます。
- ベクトル化されたスキャナーはParquetマップタイプをサポートしています。マップタイプのスキャンの出力は以下の通りです。 - "my_map": { "k1": "v1", "k2": "v2" } 
- ベクトル化されたスキャナーは、次の例が示すように、出力で - NULL値を表示します。- "person": { "name": "Adam", "nickname": null, "age": 34, "phone_numbers": [ "1234567890", "0987654321", null, "6781234590" ] } 
- ベクトル化されたスキャナーは、時間とタイムスタンプを次のように扱います。 - Parquet - Snowflakeのベクトル化されたスキャナー - TimeType(isAdjustedToUtc=True/False, unit=MILLIS/MICROS/NANOS) - TIME - TimestampType(isAdjustedToUtc=True, unit=MILLIS/MICROS/NANOS) - TIMESTAMP_LTZ - TimestampType(isAdjustedToUtc=False, unit=MILLIS/MICROS/NANOS) - TIMESTAMP_NTZ - INT96 - TIMESTAMP_LTZ 
 - USE_VECTORIZED_SCANNERが- FALSEに設定されている場合、スキャナーは以下の動作をします。- このオプションはParquetマップをサポートしていません。 マップタイプのスキャンの出力は以下の通りです。 - "my_map": { "key_value": [ { "key": "k1", "value": "v1" }, { "key": "k2", "value": "v2" } ] } 
- 次の例が示すように、このオプションはスキャン出力で - NULL値を明示的に表示しません。- "person": { "name": "Adam", "age": 34 "phone_numbers": [ "1234567890", "0987654321", "6781234590" ] } 
- このオプションは、時間とタイムスタンプを次のように扱います。 - Parquet - USE_LOGICAL_TYPE = TRUE の場合 - USE_LOGICAL_TYPE = FALSE の場合 - TimeType(isAdjustedToUtc=True/False, unit=MILLIS/MICROS) - TIME - TIME (ConvertedType がある場合) 
- INTEGER (ConvertedType がない場合) 
 - TimeType(isAdjustedToUtc=True/False, unit=NANOS) - TIME - INTEGER - TimestampType(isAdjustedToUtc=True, unit=MILLIS/MICROS) - TIMESTAMP_LTZ - TIMESTAMP_NTZ - TimestampType(isAdjustedToUtc=True, unit=NANOS) - TIMESTAMP_LTZ - INTEGER - TimestampType(isAdjustedToUtc=False, unit=MILLIS/MICROS) - TIMESTAMP_NTZ - TIMESTAMP_LTZ (ConvertedType がある場合) 
- INTEGER (ConvertedType がない場合) 
 - TimestampType(isAdjustedToUtc=False, unit=NANOS) - TIMESTAMP_NTZ - INTEGER - INT96 - TIMESTAMP_NTZ - TIMESTAMP_NTZ 
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- 無効な UTF -8文字をUnicode置換文字( - �)で置き換えるかどうかを指定するブール値。このオプションは、1対1の文字置換を実行します。
- 値:
- TRUEに設定すると、Snowflakeは無効な UTF -8文字をUnicode置換文字に置き換えます。- FALSEに設定すると、無効な UTF-8文字エンコードが検出されたときにロード操作でエラーが生成されます。
- デフォルト:
- FALSE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 使用:
- データのロードのみ 
- 定義:
- SQL NULL との間の変換に使用される文字列。Snowflakeはデータロードソースのこれらの文字列を SQL NULL に置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。 - このファイル形式オプションは、 MATCH_BY_COLUMN_NAME コピーオプションを使用してParquetデータを個別の列にロードする場合にのみ、次のアクションに適用されます。 - Snowflakeは、データ型に関係なく、値のすべてのインスタンスを NULL に変換することに注意してください。たとえば、 - 2が値として指定されている場合は、文字列または数値としての- 2のインスタンスすべてが変換されます。- 例: - NULL_IF = ('\N', 'NULL', 'NUL', '')- このオプションには空の文字列を含めることができます。 
- デフォルト:
- \N(つまり、 NULL)
 
TYPE = XML¶
- COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- 使用:
- データのロードのみ 
- 定義:
- データをロードするときに、データファイルの現在の圧縮アルゴリズムを指定します。Snowflakeはこのオプションを使用して、ファイル内の圧縮データをロード用に抽出できるように、 圧縮済み データファイルの圧縮方法を検出します。 
- データをアンロードする際、指定された圧縮アルゴリズムを使用してデータファイルを圧縮します。 
 
- 値:
- サポートされる値 - 注意 - AUTO- データをロードすると、圧縮アルゴリズムは自動的に検出されますが、Brotliで圧縮されたファイルは例外で、現在は自動検出できません。データをアンロードするとき、ファイルはデフォルトのgzipを使用して自動的に圧縮されます。 - GZIP- BZ2- BROTLI- Brotliで圧縮されたファイルをロード/アンロードする場合は、指定する必要があります。 - ZSTD- Zstandard v0.8(およびそれ以上)がサポートされています。 - DEFLATE- Deflate圧縮されたファイル(zlibヘッダー、 RFC1950を使用)。 - RAW_DEFLATE- 生Deflate圧縮ファイル(ヘッダーなし、 RFC1951)。 - NONE- データをロードするとき、ファイルが圧縮されていないことを示します。データをアンロードするとき、アンロードされたファイルが圧縮されないことを指定します。 
- デフォルト:
- AUTO
 
- IGNORE_UTF8_ERRORS = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- UTF-8エンコードエラーがエラー状態を引き起こすかどうかを指定するブール値。 - REPLACE_INVALID_CHARACTERSの代替構文です。
- 値:
- TRUEに設定すると、無効な UTF-8シーケンスはUnicode文字- U+FFFD(つまり、「置換文字」)で警告なしに置き換えられます。- FALSEに設定すると、無効な UTF-8文字エンコードが検出されたときにロード操作でエラーが生成されます。
- デフォルト:
- FALSE
 
- PRESERVE_SPACE = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- XML パーサーが要素コンテンツの先頭と後続のスペースを保持するかどうかを指定するブール値。 
- デフォルト:
- FALSE
 
- STRIP_OUTER_ELEMENT = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- XML パーサーが外側の XML 要素を取り除き、2番目のレベルの要素を別のドキュメントとして公開するかどうかを指定するブール値。 
- デフォルト:
- FALSE
 
- DISABLE_AUTO_CONVERT = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- XML パーサーがテキストからネイティブ表現への数値およびブール値の自動変換を無効にするかどうかを指定するブール値。 
- デフォルト:
- FALSE
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 使用:
- データのロードおよび外部テーブル 
- 定義:
- 無効な UTF -8文字をUnicode置換文字( - �)で置き換えるかどうかを指定するブール値。このオプションは、1対1の文字置換を実行します。
- 値:
- TRUEに設定すると、Snowflakeは無効な UTF -8文字をUnicode置換文字に置き換えます。- FALSEに設定すると、無効な UTF-8文字エンコードが検出されたときにロード操作でエラーが生成されます。
- デフォルト:
- FALSE
 
- SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- 使用:
- データのロードのみ 
- 定義:
- 入力ファイルに存在する BOM (バイト順マーク)をスキップするかどうかを指定するブール値。BOM は、データファイルの先頭にある文字コードで、バイト順とエンコード形式を定義します。 - FALSEに設定されている場合、Snowflakeはデータファイル内の BOM を認識し、 BOM がエラーの原因になるか、テーブルの最初の列にマージされる可能性があります。
- デフォルト:
- TRUE
 
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
| 権限 | オブジェクト | 注意 | 
|---|---|---|
| USAGE | ストレージ統合 | ストレージ統合 を使用してクラウドストレージサービスにアクセスする場合にのみ必要です。 | 
| CREATE STAGE | スキーマ | 永続ステージを作成する場合にのみ必要です。 | 
| OWNERSHIP | ステージ | 
 OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). Note that in a managed access schema, only the schema owner (i.e. the role with the OWNERSHIP privilege on the schema) or a role with the MANAGE GRANTS privilege can grant or revoke privileges on objects in the schema, including future grants. | 
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対する CREATE 権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対する USAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
一般的な使用上の注意¶
重要
セキュリティコンプライアンスのために Tri-Secret Secure が必要な場合は、内部ステージに SNOWFLAKE_FULL 暗号化タイプを使用します。SNOWFLAKE_SSE は Tri-Secret Secure をサポートしていません。
注意
ステージを再作成(CREATE OR REPLACE STAGE を使用)すると、次の潜在的に望ましくない結果が追加で発生します。
- ステージの既存のディレクトリテーブルがある場合は、ドロップされます。ステージがディレクトリテーブルで再作成される場合、ディレクトリはデフォルトで空です。 
- ステージとそれを参照する外部テーブルとの関連付けは解除されます。 - これは、外部テーブルがステージの名前ではなく、非表示の ID を使用してステージにリンクされているためです。バックグラウンドでは、 CREATE OR REPLACE 構文はオブジェクトをドロップし、別の非表示の ID でオブジェクトを再作成します。 - 1つ以上の外部テーブルにリンクされた後にステージを再作成する必要がある場合は、各外部テーブルを再作成(CREATE OR REPLACE EXTERNAL TABLE を使用)して、関連付けを再確立する必要があります。GET_DDL 関数を呼び出して DDL ステートメントを取得し、各外部テーブルを再作成します。 
- ステージを参照するパイプは、データのロードを停止します。パイプの実行ステータスが - STOPPED_STAGE_DROPPEDに変わります。データのロードを再開するには、これらのパイプオブジェクトを再作成する必要があります(CREATE OR REPLACE PIPE 構文を使用)。
- OR REPLACEと- IF NOT EXISTS句は互いに排他的です。両方を同じステートメントで使うことはできません。
- CREATE STAGE は、指定された URL または認証情報が有効かどうかをチェックしません。認証情報が有効でない場合、ステージを使用しようとすると、システムはエラーを返します。 
- Snowflakeは、Amazon S3およびGoogle Cloud Storageへのアップロード時にマルチパートアップロードを使用します。このプロセスは、外部ステージのストレージの場所に不完全なアップロードが残る可能性があります。 - 不完全なアップロードが蓄積されないようにするには、ライフサイクルルールを設定することを推奨します。手順については、Amazon S3 または Google Cloud Storage ドキュメントをご参照ください。 
- S3アクセスポイントを使用する外部ステージに、 - ストレージ統合を使用している場合は、統合の IAM ポリシーを構成して、S3アクセスポイントにアクセス許可を付与する必要があります。詳細については、 オプション1: Amazon S3にアクセスするためのSnowflakeストレージ統合の構成 をご参照ください。 
- マルチリージョンアクセスポイントはサポートされていません。 
 
- メタデータについて。 - 注意 - Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。 
CREATE OR ALTER STAGE の使用上の注意¶
制限事項
- ALTER STAGE コマンドのすべての制限が適用されます。 
- CREATE OR ALTER STAGE コマンドは、現在のステージの型(内部または外部)と互換性のあるプロパティのみを受け入れ、処理します。内部ステージと互換性のないプロパティは、内部ステージの CREATE OR ALTER STAGE コマンドでは使用できません。 
- CREATE OR ALTER STAGE コマンドでは、外部ステージのストレージプロバイダー型を変更することはできません。 
- タグの設定や設定解除はサポートされていませんが、既存のタグは CREATE OR ALTER STAGE ステートメントによって変更されることはなく、そのまま残ります。 
プロパティ
- ステージ定義で以前に設定されていたプロパティがない場合は、デフォルト値にリセットされます。 
ディレクトリテーブルのオプション
- CREATE OR ALTER STAGE コマンドは、 REFRESH_ON_CREATE オプションをサポートしていません。 
- CREATE OR ALTER STAGE コマンドは、ディレクトリテーブルのリフレッシュをサポートしていません。 - 新しく作成されたディレクトリテーブルはリフレッシュされません。 
- ディレクトリテーブルをリフレッシュするには、 ALTER REFRESH を使用します。 
 
例¶
基本的な例¶
内部ステージ¶
内部ステージを作成し、ステージにサーバー側の暗号化を指定します。
CREATE STAGE my_int_stage
  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');
前述の例とすべて同じのプロパティで仮内部ステージを作成します。
CREATE TEMPORARY STAGE my_temp_int_stage;
my_csv_format ( CREATE FILE FORMAT を使用して作成)という名前のファイル形式を参照する、仮内部ステージを作成します。
CREATE TEMPORARY STAGE my_int_stage
  FILE_FORMAT = my_csv_format;
COPY INTO <テーブル> ステートメントでステージを参照すると、ファイル形式オプションが自動的に設定されます。
ディレクトリテーブル を含む内部ステージを作成します。ステージは myformat という名前のファイル形式を参照します。
CREATE STAGE mystage
  DIRECTORY = (ENABLE = TRUE)
  FILE_FORMAT = myformat;
外部ステージ¶
Amazon S3
以下の例では、S3バケットが中国のリージョンにある場合、 URL パラメーターに
s3china://プロトコルを使用します。
loadという名前のプライベート/保護されたS3バケットとfilesという名前のフォルダーパスを使用して外部ステージを作成します。S3バケットへの安全なアクセスは、myintストレージ統合を介して提供されます。CREATE STAGE my_ext_stage URL='s3://load/files/' STORAGE_INTEGRATION = myint;
loadという名前のプライベート/保護されたS3バケットとfilesという名前のフォルダーパスを使用して外部ステージを作成します。S3バケットのSnowflakeアクセス許可は IAM ユーザーに関連付けられています。したがって、 IAM 認証情報が必要です。CREATE STAGE my_ext_stage1 URL='s3://load/files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');この例で使用されている AWS_KEY_ID と AWS_SECRET_KEY の値は、説明のみを目的としています。
loadという名前のS3バケットとencrypted_filesいう名前のフォルダーパス、およびバケット内に保存されたファイルを復号化/暗号化するマスターキーによるクライアント側の暗号化(デフォルトの暗号化タイプ)を使用して、外部ステージを作成します。CREATE STAGE my_ext_stage2 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z') ENCRYPTION=(MASTER_KEY = 'eSx...');
loadという名前のS3バケットとencrypted_filesという名前のフォルダーパス、およびバケット内に保存されたファイルを復号化/暗号化するマスターキー向け ID を有する AWS_SSE_KMS サーバー側の暗号化を使用して、外部ステージを作成します。CREATE STAGE my_ext_stage3 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z') ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');直前の例と同じ例ですが、S3バケットのSnowflakeアクセス許可は、 IAM ユーザーではなく IAM ロールに関連付けられています。認証情報は、
ENCRYPTIONなどの他のステージパラメーターとは別に処理されることに注意してください。これらの他のパラメーターのサポートは、外部S3バケットへのアクセスに使用する認証情報に関係なく同じです。CREATE STAGE my_ext_stage3 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_ROLE='arn:aws:iam::001234567890:role/mysnowflakerole') ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');ユーザーセッションのアクティブスキーマで、ディレクトリテーブルを使用してステージを作成します。クラウドストレージ URL にはパス
filesが含まれています。ステージはmy_storage_intという名前のストレージ統合を参照します。CREATE STAGE mystage URL='s3://load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true );
Google Cloud Storage
loadという名前のプライベート/保護された GCS バケットとfilesという名前のフォルダーパスを使用して外部ステージを作成します。myintストレージ統合により、 GCS バケットへの安全なアクセスが提供されます。CREATE STAGE my_ext_stage URL='gcs://load/files/' STORAGE_INTEGRATION = myint;ユーザーセッションのアクティブスキーマでディレクトリテーブルを使用して、
mystageという名前のステージを作成します。クラウドストレージ URL にはパスfilesが含まれています。ステージはmy_storage_intという名前のストレージ統合を参照します。CREATE STAGE mystage URL='gcs://load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true NOTIFICATION_INTEGRATION = 'MY_NOTIFICATION_INT' );
loadという名前のS3バケットとencrypted_filesいう名前のフォルダーパス、およびバケット内に保存されたファイルを復号化/暗号化するマスターキーによるクライアント側の暗号化(デフォルトの暗号化タイプ)を使用して、外部ステージを作成します。CREATE STAGE my_ext_stage2 URL='gcs://load/encrypted_files/' STORAGE_INTEGRATION = my_storage_int ENCRYPTION=(TYPE = 'GCS_SSE_KMS' KMS_KEY_ID = '{a1b2c3});
Microsoft Azure
loadという名前のプライベート/保護されたAzureコンテナーとfilesという名前のフォルダーパスを使用して、外部ステージを作成します。myintストレージ統合により、コンテナーへの安全なアクセスが提供されます。CREATE STAGE my_ext_stage URL='azure://myaccount.blob.core.windows.net/load/files/' STORAGE_INTEGRATION = myint;
myaccountという名前のAzureストレージアカウントとmycontainerという名前のコンテナーを使用して、filesというフォルダーパスとクライアント側の暗号化を有効にし、外部ステージを作成します。CREATE STAGE mystage URL='azure://myaccount.blob.core.windows.net/mycontainer/files/' CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D') ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'kPx...');(この例で使用する
AZURE_SAS_TOKENおよびMASTER_KEYの値は実際の値ではありません。これらは説明のみを目的として提供されています。)ユーザーセッションのアクティブスキーマで、ディレクトリテーブルを使用してステージを作成します。クラウドストレージ URL にはパス
filesが含まれています。ステージはmy_storage_intという名前のストレージ統合を参照します。CREATE STAGE mystage URL='azure://myaccount.blob.core.windows.net/load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true NOTIFICATION_INTEGRATION = 'MY_NOTIFICATION_INT' );
CREATE OR ALTER STAGE の例¶
内部ステージ¶
コメント付きの内部ステージを作成します。
CREATE OR ALTER STAGE my_int_stage
  COMMENT='my_comment'
  ;
内部ステージを変更してディレクトリテーブルを作成し、コメントを削除します。
CREATE OR ALTER STAGE my_int_stage
  DIRECTORY=(ENABLE=true);
外部ステージ¶
認証情報を持つS3バケットを使用して外部ステージを作成します。
CREATE OR ALTER STAGE my_ext_stage
  URL='s3://load/files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');
外部ステージを変更してディレクトリテーブルを作成します。
CREATE OR ALTER STAGE my_ext_stage
  URL='s3://load/files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z')
  DIRECTORY=(ENABLE=true);