CREATE STAGE

ファイルからSnowflakeテーブルにデータをロードし、テーブルからファイルにデータをアンロードするために使用する新しい名前付きの 内部 または 外部 ステージを作成します。

内部ステージ:

Snowflake内にデータファイルを内部的に保存します。詳細については、 ローカルファイルに対する内部ステージの選択 をご参照ください。

外部ステージ:

Snowflake以外の場所に保存されているデータファイルを参照します。現在、次のクラウドストレージサービスがサポートされています。

  • Amazon S3バケット

  • Google Cloud Storageバケット

  • Microsoft Azureコンテナー

ストレージの場所は、プライベート/保護またはパブリックのいずれかです。

取得する前に復元が必要な、アーカイブクラウドストレージクラスに保持されているデータにアクセスすることはできません。これらのアーカイブストレージクラスには、たとえば、Amazon S3 Glacier Flexible RetrievalまたはGlacier Deep Archiveストレージクラス、またはMicrosoft Azure Archive Storageが含まれます。

内部ステージまたは外部ステージには、 ディレクトリテーブル を含めることができます。ディレクトリテーブル は、ステージングされたファイルのカタログをクラウドストレージに保存します。

さらに、このコマンドは以下のバリアントをサポートしています。

こちらもご参照ください。

DROP STAGEALTER STAGESHOW STAGESDESCRIBE STAGE

PUTCOPY INTO <テーブル>

COPY INTO <場所> , GET, CREATE OR ALTER <オブジェクト>

構文

-- 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>' , ... ] ) ]
Copy

条件:

internalStageParams ::=
  [ ENCRYPTION = (   TYPE = 'SNOWFLAKE_FULL'
                   | TYPE = 'SNOWFLAKE_SSE' ) ]
Copy
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 } ]
Copy
externalStageParams (for Google Cloud Storage) ::=
  URL = 'gcs://<bucket>[/<path>/]'
  [ STORAGE_INTEGRATION = <integration_name> ]
  [ ENCRYPTION = (   TYPE = 'GCS_SSE_KMS' [ KMS_KEY_ID = '<string>' ]
                   | TYPE = 'NONE' ) ]
Copy
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 } ]
Copy
externalStageParams (for Amazon S3-compatible Storage) ::=
  URL = 's3compat://{bucket}[/{path}/]'
  ENDPOINT = '<s3_api_compatible_endpoint>'
  [ { CREDENTIALS = ( AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' ) } ]
Copy
directoryTableParams (for internal stages) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ AUTO_REFRESH = { TRUE | FALSE } ] ) ]
Copy
directoryTableParams (for Amazon S3) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ AUTO_REFRESH = { TRUE | FALSE } ] ) ]
Copy
directoryTableParams (for Google Cloud Storage) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ AUTO_REFRESH = { TRUE | FALSE } ]
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]
Copy
directoryTableParams (for Microsoft Azure) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ AUTO_REFRESH = { TRUE | FALSE } ]
                  [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]
Copy
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
Copy

注釈

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>' ]
Copy

CREATE STAGE ... CLONE

同じパラメーター値で新しいステージを作成します。

CREATE [ OR REPLACE ] STAGE [ IF NOT EXISTS ] <name> CLONE <source_stage>
  [ ... ]
Copy

詳細については、 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 <場所> を使用して)ステージにデータをアンロードすることは、 CSVJSON、または PARQUET に対応します。

ファイル形式タイプが指定されている場合は、追加の形式固有のオプションを指定できます。詳細については、 形式タイプオプション(formatTypeOptions) (このトピック)をご参照ください。

CUSTOM フォーマット・タイプは、基礎となるステージが非構造化データを保持することを指定し、 FILE_PROCESSOR コピー・オプションとともにのみ使用できます。

デフォルト: TYPE = CSV

注釈

FORMAT_NAMETYPE は相互に排他的です。ステージに指定できるのはどちらか一方のみです。

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 = ...

使用される暗号化タイプを指定します。可能な値は次のとおりです。

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 を使用して、ディレクトリテーブルのメタデータを手動で定期的に更新し、メタデータをステージパスにあるファイルの現在のリストと同期する必要があります。

デフォルト: FALSE

Google 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<
Copy

(この例のブラケットはロードされておらず、ロードされた文字列の開始と終了を区別するために使用されます)

デフォルト:

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_SCANNERTRUE に設定されている場合、ベクトル化されたスキャナーの動作は以下のようになります。

  • 設定された実際の値にかかわらず、 BINARY_AS_TEXT オプションは常に FALSE として扱われ、 USE_LOGICAL_TYPE オプションは常に TRUE として扱われます。

  • ベクトル化されたスキャナーはParquetマップタイプをサポートしています。マップタイプのスキャンの出力は以下の通りです。

    "my_map":
      {
       "k1": "v1",
       "k2": "v2"
      }
    
    Copy
  • ベクトル化されたスキャナーは、次の例が示すように、出力で NULL 値を表示します。

    "person":
     {
      "name": "Adam",
      "nickname": null,
      "age": 34,
      "phone_numbers":
      [
        "1234567890",
        "0987654321",
        null,
        "6781234590"
      ]
      }
    
    Copy
  • ベクトル化されたスキャナーは、時間とタイムスタンプを次のように扱います。

    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_SCANNERFALSE に設定されている場合、スキャナーは以下の動作をします。

  • このオプションはParquetマップをサポートしていません。 マップタイプのスキャンの出力は以下の通りです。

    "my_map":
     {
      "key_value":
      [
       {
              "key": "k1",
              "value": "v1"
          },
          {
              "key": "k2",
              "value": "v2"
          }
        ]
      }
    
    Copy
  • 次の例が示すように、このオプションはスキャン出力で NULL 値を明示的に表示しません。

    "person":
     {
      "name": "Adam",
      "age": 34
      "phone_numbers":
      [
       "1234567890",
       "0987654321",
       "6781234590"
      ]
     }
    
    Copy
  • このオプションは、時間とタイムスタンプを次のように扱います。

    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)を付与するか継承する必要があります。

  • 既存 のステージに対して CREATE OR ALTER STAGE ステートメントを実行するために必要です。

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 REPLACEIF NOT EXISTS 句は互いに排他的です。両方を同じステートメントで使うことはできません。

  • CREATE STAGE は、指定された URL または認証情報が有効かどうかをチェックしません。認証情報が有効でない場合、ステージを使用しようとすると、システムはエラーを返します。

  • Snowflakeは、Amazon S3およびGoogle Cloud Storageへのアップロード時にマルチパートアップロードを使用します。このプロセスは、外部ステージのストレージの場所に不完全なアップロードが残る可能性があります。

    不完全なアップロードが蓄積されないようにするには、ライフサイクルルールを設定することを推奨します。手順については、Amazon S3 または Google Cloud Storage ドキュメントをご参照ください。

  • S3アクセスポイントを使用する外部ステージに、

  • メタデータについて。

    注意

    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');
Copy

前述の例とすべて同じのプロパティで仮内部ステージを作成します。

CREATE TEMPORARY STAGE my_temp_int_stage;
Copy

my_csv_formatCREATE FILE FORMAT を使用して作成)という名前のファイル形式を参照する、仮内部ステージを作成します。

CREATE TEMPORARY STAGE my_int_stage
  FILE_FORMAT = my_csv_format;
Copy

COPY INTO <テーブル> ステートメントでステージを参照すると、ファイル形式オプションが自動的に設定されます。

ディレクトリテーブル を含む内部ステージを作成します。ステージは myformat という名前のファイル形式を参照します。

CREATE STAGE mystage
  DIRECTORY = (ENABLE = TRUE)
  FILE_FORMAT = myformat;
Copy

外部ステージ

Amazon S3

以下の例では、S3バケットが中国のリージョンにある場合、 URL パラメーターに s3china:// プロトコルを使用します。

load という名前のプライベート/保護されたS3バケットと files という名前のフォルダーパスを使用して外部ステージを作成します。S3バケットへの安全なアクセスは、 myint ストレージ統合を介して提供されます。

CREATE STAGE my_ext_stage
  URL='s3://load/files/'
  STORAGE_INTEGRATION = myint;
Copy

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');
Copy

この例で使用されている 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...');
Copy

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');
Copy

直前の例と同じ例ですが、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');
Copy

ユーザーセッションのアクティブスキーマで、ディレクトリテーブルを使用してステージを作成します。クラウドストレージ URL にはパス files が含まれています。ステージは my_storage_int という名前のストレージ統合を参照します。

CREATE STAGE mystage
  URL='s3://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (
    ENABLE = true
    AUTO_REFRESH = true
  );
Copy

Google Cloud Storage

load という名前のプライベート/保護された GCS バケットと files という名前のフォルダーパスを使用して外部ステージを作成します。myint ストレージ統合により、 GCS バケットへの安全なアクセスが提供されます。

CREATE STAGE my_ext_stage
  URL='gcs://load/files/'
  STORAGE_INTEGRATION = myint;
Copy

ユーザーセッションのアクティブスキーマでディレクトリテーブルを使用して、 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'
  );
Copy

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});
Copy

Microsoft Azure

load という名前のプライベート/保護されたAzureコンテナーと files という名前のフォルダーパスを使用して、外部ステージを作成します。myint ストレージ統合により、コンテナーへの安全なアクセスが提供されます。

CREATE STAGE my_ext_stage
  URL='azure://myaccount.blob.core.windows.net/load/files/'
  STORAGE_INTEGRATION = myint;
Copy

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...');
Copy

(この例で使用する 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'
  );
Copy

CREATE OR ALTER STAGE の例

内部ステージ

コメント付きの内部ステージを作成します。

CREATE OR ALTER STAGE my_int_stage
  COMMENT='my_comment'
  ;
Copy

内部ステージを変更してディレクトリテーブルを作成し、コメントを削除します。

CREATE OR ALTER STAGE my_int_stage
  DIRECTORY=(ENABLE=true);
Copy

外部ステージ

認証情報を持つS3バケットを使用して外部ステージを作成します。

CREATE OR ALTER STAGE my_ext_stage
  URL='s3://load/files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');
Copy

外部ステージを変更してディレクトリテーブルを作成します。

CREATE OR ALTER STAGE my_ext_stage
  URL='s3://load/files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z')
  DIRECTORY=(ENABLE=true);
Copy