カテゴリ:

DDLデータのロード/アンロード

CREATE FILE FORMAT

Snowflakeテーブルにアクセスまたはロードするための、ステージングされたデータのセットを記述する名前付きファイル形式を作成します。

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

ALTER FILE FORMATSHOW FILE FORMATS

COPY INTO <場所>COPY INTO <テーブル>

このトピックの内容:

構文

CREATE [ OR REPLACE ] FILE FORMAT [ IF NOT EXISTS ] <name>
                      TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ]
                      [ COMMENT = '<string_literal>' ]

条件:

formatTypeOptions ::=
-- If TYPE = CSV
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     RECORD_DELIMITER = '<character>' | NONE
     FIELD_DELIMITER = '<character>' | NONE
     FILE_EXTENSION = '<string>'
     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
     VALIDATE_UTF8 = 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
     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
     IGNORE_UTF8_ERRORS = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
-- If TYPE = AVRO
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = ORC
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = PARQUET
     COMPRESSION = AUTO | LZO | SNAPPY | NONE
     SNAPPY_COMPRESSION = TRUE | FALSE
     BINARY_AS_TEXT = TRUE | FALSE
     TRIM_SPACE = 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_SNOWFLAKE_DATA = TRUE | FALSE
     DISABLE_AUTO_CONVERT = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )

必須パラメーター

名前

ファイル形式の識別子を指定します。ファイル形式が作成されるスキーマに対して一意である必要があります。

識別子の値はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ]

入力ファイル(データのロード用)または出力ファイル(データのアンロード用)の形式を指定します。形式タイプに応じて、追加の形式固有のオプションを指定できます。詳細については、 形式タイプオプション (このトピック)をご参照ください。

有効な値は、ファイル形式がデータのロードまたはアンロードに使用されるかどうかによって異なります。

CSV (ロードまたはアンロード用)

特定の文字を次のように使用する、フラットで区切られたプレーンテキストファイル:

  • レコード内のフィールドの区切り文字(コンマなど)。

  • レコードの区切り文字(改行文字など)。

名前、 CSVはコンマ区切りの値を示していますが、フィールド区切り文字として有効な文字を使用できます。

JSON (ロードまたはアンロード用)

1つ以上の JSON ドキュメント(オブジェクト、配列など)で構成されるプレーンテキストファイル。JSON は、半構造化ファイル形式です。ドキュメントはコンマで区切ることができます(オプションで大きな配列で囲むこともできます)。単一の JSON 文書は複数行にわたる場合があります。

注意:

  • ファイルからテーブルにデータをロードするとき、Snowflakeは NDJSON (「改行区切り JSON」)標準形式とコンマ区切りの JSON 形式の いずれか をサポートします。

  • テーブルデータをファイルにアンロードすると、Snowflakeは NDJSON 形式 のみ を出力します。

AVRO (ロード専用。データは AVRO 形式にアンロードできません)

AVRO 形式のバイナリファイル。

ORC (ロード専用。データは ORC 形式にアンロードできません)

ORC 形式のバイナリファイル。

PARQUET (ロードまたはアンロード用)

PARQUET 形式のバイナリファイル。

XML (ロード専用。データをテーブルから XML 形式にアンロードできません)

XML 要素を含むプレーンテキストファイル。

CSVの詳細については、 このトピックの 使用上の注意 をご参照ください。 JSON およびその他の半構造化ファイル形式の詳細については、 半構造化データの概要 をご参照ください。

オプションのパラメーター

COMMENT = '文字列リテラル'

ファイル形式のコメントを指定します。

デフォルト:値なし

形式タイプオプション(formatTypeOptions

指定したファイル形式タイプ(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 = '文字' | NONE
使用

データのロードとアンロード

定義

入力ファイル(データのロード)またはアンロードされたファイル(データのアンロード)のレコードを分離する1つ以上のシングルバイトまたはマルチバイト文字。

一般的なエスケープシーケンス、8進値( \\ で始まる)、または16進値( 0x で始まる)を受け入れます。たとえば、ソーン(Þ)文字で区切られたレコードの場合、8進数(\\336)または16進数(0xDE)の値を指定します。 NONE の値も受け入れます。

指定された区切り文字は、ランダムなバイトのシーケンスではなく、有効な UTF-8文字でなければなりません。

複数文字の区切り文字もサポートされています。ただし、 RECORD_DELIMITER または FIELD_DELIMITER の区切り文字は、他のファイル形式オプション( FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb' など)の区切り文字の部分文字列にはできません。区切り文字は最大20文字に制限されています。 ESCAPE または ESCAPE_UNENCLOSED_FIELD などの他のファイル形式オプションに使用される文字を指定しないでください。

デフォルト
データのロード

改行文字。「改行」は論理的であるため、 \r\n がWindowsプラットフォーム上のファイルの改行として理解されることに注意してください。

データのアンロード

改行文字(\n)。

FIELD_DELIMITER = '文字' | NONE
使用

データのロードとアンロード

定義

入力ファイル(データのロード)またはアンロードされたファイル(データのアンロード)のフィールドを区切る1つ以上のシングルバイトまたはマルチバイト文字。

一般的なエスケープシーケンス、8進値( \\ で始まる)、または16進値( 0x で始まる)を受け入れます。たとえば、ソーン(Þ)文字で区切られたフィールドの場合、8進数(\\336)または16進数(0xDE)の値を指定します。 NONE の値も受け入れます。

指定された区切り文字は、ランダムなバイトのシーケンスではなく、有効な UTF-8文字でなければなりません。

複数文字の区切り文字もサポートされています。ただし、 RECORD_DELIMITER または FIELD_DELIMITER の区切り文字は、他のファイル形式オプション( FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb' など)の区切り文字の部分文字列にはできません。区切り文字は最大20文字に制限されています。 ESCAPE または ESCAPE_UNENCLOSED_FIELD などの他のファイル形式オプションに使用される文字を指定しないでください。

デフォルト

コンマ(,

FILE_EXTENSION = '文字列' | NONE
使用

データのアンロードのみ

定義

ステージにアンロードされるファイルの拡張子を指定します。拡張子を受け入れます。目的のソフトウェアまたはサービスが読み取れるファイル拡張子を指定することは、ユーザーの責任です。

デフォルト

null、つまり、ファイル拡張子は形式タイプ、 .csv[圧縮] によって決定されます。 圧縮 は、 COMPRESSION が設定されている場合、圧縮方法によって追加された拡張子です。

注釈

SINGLE コピーオプションが TRUE の場合、 COPY コマンドはデフォルトでファイル拡張子のないファイルをアンロードします。ファイル拡張子を指定するには、 内部ロケーション または 外部ロケーション パス(例: copy into @stage/data.csv)でファイル名と拡張子を指定します。

SKIP_HEADER = 整数
使用

データのロードのみ

定義

スキップするファイルの先頭の行数。

SKIP_HEADER は RECORD_DELIMITER または FIELD_DELIMITER の値を使用してヘッダー行を決定しないことに注意してください。むしろ、指定された数の CRLF (キャリッジリターン、ラインフィード)で区切られたファイル内の行を単にスキップします。ロードするデータの行を決定するのには、RECORD_DELIMITER および FIELD_DELIMITER が使用されます。

デフォルト

0

SKIP_BLANK_LINES = TRUE | FALSE
使用

データのロードのみ

定義

データファイルで検出された空白行をスキップすることを指定するブール値。それ以外の場合は、空白行はレコード終了エラーを生成します(デフォルトの動作)。

デフォルト: FALSE

DATE_FORMAT = '文字列' | AUTO
使用

データのロードとアンロード

定義

データファイル(データのロード)またはテーブル(データのアンロード)の日付値の形式を定義します。値が指定されていない、または AUTO の場合、 DATE_INPUT_FORMAT (データのロード)または DATE_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。

デフォルト

AUTO

TIME_FORMAT = '文字列' | AUTO
使用

データのロードとアンロード

定義

データファイル(データのロード)またはテーブル(データのアンロード)の時間値の形式を定義します。値が指定されていない、または AUTO の場合、 TIME_INPUT_FORMAT (データのロード)または TIME_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。

デフォルト

AUTO

TIMESTAMP_FORMAT = 文字列' | AUTO
使用

データのロードとアンロード

定義

データファイル(データのロード)またはテーブル(データのアンロード)のタイムスタンプ値の形式を定義します。値が指定されていない、または AUTO の場合、 TIMESTAMP_INPUT_FORMAT (データのロード)または TIMESTAMP_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。

デフォルト

AUTO

BINARY_FORMAT = HEX | BASE64 | UTF8
使用

データのロードとアンロード

定義

バイナリ入力または出力のエンコード形式を定義します。このオプションは、テーブルのバイナリ列にデータをロードまたはアンロードするときに使用できます。

デフォルト

HEX

ESCAPE = '文字' | NONE
使用

データのロードとアンロード

定義

フィールド値のエスケープ文字として使用される1文字の文字列。エスケープ文字は、文字シーケンス内の後続の文字に対して代替解釈を呼び出します。ESCAPE 文字を使用して、データ内の FIELD_DELIMITERRECORD_DELIMITER、または FIELD_OPTIONALLY_ENCLOSED_BY 文字のインスタンスをリテラルとして解釈できます。エスケープ文字は、データ内のそれ自体のインスタンスをエスケープするためにも使用できます。

一般的なエスケープシーケンス、8進数値、または16進数値を受け入れます。

  • データをロードする際、囲まれたフィールドのエスケープ文字を指定します。 FIELD_OPTIONALLY_ENCLOSED_BY を設定して、フィールドを囲むのに使用する文字を指定します。

  • データをアンロードする際に、このオプションが設定されている場合は、 ESCAPE_UNENCLOSED_FIELD のエスケープ文字セットが上書きされます。

デフォルト

NONE

ESCAPE_UNENCLOSED_FIELD = '文字' | NONE
使用

データのロードとアンロード

定義

囲まれていないフィールド値専用のエスケープ文字として使用される単一の文字列。エスケープ文字は、文字シーケンス内の後続の文字に対して代替解釈を呼び出します。ESCAPE 文字を使用して、データ内の FIELD_DELIMITER または RECORD_DELIMITER 文字のインスタンスをリテラルとして解釈できます。エスケープ文字は、データ内のそれ自体のインスタンスをエスケープするためにも使用できます。

一般的なエスケープシーケンス、8進数値、または16進数値を受け入れます。

データをアンロードする際に、 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 = '文字' | NONE
使用

データのロードとアンロード

定義

文字列を囲むのに使用される文字。値は、 NONE、一重引用符(')、または二重引用符(")のいずれかです。一重引用符を使用するには、8進数または16進数表現(0x27)または二重引用符で囲まれたエスケープ('')を使用します。

フィールドにこの文字が含まれる場合、同じ文字を使用してエスケープします。例えば、値が二重引用符であり、フィールドに文字列 A "B" C が含まれる場合、二重引用符を次のようにエスケープします。

A ""B"" C

デフォルト

NONE

NULL_IF = ( '文字列1' [ , '文字列2' , ... ] )
使用

データのロードとアンロード

定義

SQL NULLとの間の変換に使用される文字列。

  • データをロードする際、Snowflakeはデータロードソースのこれらの文字列を SQL NULLに置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。

    例:

    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

VALIDATE_UTF8 = TRUE | FALSE
使用

データのロードのみ

定義

文字列列データの UTF-8文字エンコードを検証するかどうかを指定するブール値。

TRUE に設定すると、Snowflakeは文字列の列データの UTF-8文字エンコードを検証します。無効な UTF-8文字エンコードが検出されると、 COPY コマンドはエラーを生成します。

デフォルト

TRUE

重要

このオプションは、Snowflakeの以前のバージョンとの後方互換性を確保するためにのみ提供されています。Snowflakeサポートの指示がない限り、このオプションを 無効にしない でください。

EMPTY_FIELD_AS_NULL = TRUE | FALSE
使用

データのロードとアンロード

定義
  • データをロードするとき、2つの連続する区切り文字(例: ,,)で表される入力ファイルの空のフィールドに、 SQL NULL を挿入するかどうかを指定します。

    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 = '文字列'
使用

データのロードのみ

定義

データをテーブルにロードする際にソースデータの文字セットを指定する文字列(定数)。

文字 セット

ENCODING 値

サポートされている言語

メモ

Big5

BIG5

中国語(繁体字)

EUC-JP

EUCJP

日本語

EUC-KR

EUCKR

韓国語

GB18030

GB18030

中国語

IBM420

IBM420

アラビア語

IBM424

IBM424

ヘブライ語

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

トルコ語

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-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に変換されます。 VALIDATE_UTF8 ファイル形式オプションが TRUE の場合、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 = '文字列' | AUTO
使用

データのロードのみ

定義

JSON データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 データファイルの日付文字列値の形式を定義します。値が指定されていない場合、または AUTO の場合、 DATE_INPUT_FORMAT パラメーターの値が使用されます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

AUTO

TIME_FORMAT = '文字列' | AUTO
使用

データのロードのみ

定義

JSON データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 データファイルの時刻文字列値の形式を定義します。値が指定されていない場合、または AUTO の場合、 TIME_INPUT_FORMAT パラメーターの値が使用されます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

AUTO

TIMESTAMP_FORMAT = 文字列' | AUTO
使用

データのロードのみ

定義

JSON データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 データファイルのタイムスタンプ文字列値の形式を定義します。値が指定されていない場合、または AUTO の場合、 TIMESTAMP_INPUT_FORMAT パラメーターの値が使用されます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

AUTO

BINARY_FORMAT = HEX | BASE64 | UTF8
使用

データのロードのみ

定義

JSON データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 データファイルのバイナリ文字列値のエンコード形式を定義します。このオプションは、テーブルのバイナリ列にデータをロードするときに使用できます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

HEX

TRIM_SPACE = TRUE | FALSE
使用

データのロードのみ

定義

JSON データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 文字列から先頭および末尾の空白を削除するかどうかを指定するブール値です。

たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを TRUE に設定すると、データのロード中に不要なスペースが削除されます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

FALSE

NULL_IF = ( '文字列1' [ , '文字列2' , ... ] )
使用

データのロードのみ

定義

JSON データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 SQL NULLとの間の変換に使用される文字列です。Snowflakeはデータロードソースのこれらの文字列を SQL NULLに置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。

例:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

このオプションには空の文字列を含めることができます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

\\N (つまり、 NULL、 ESCAPE_UNENCLOSED_FIELD 値が \\ であると想定)

FILE_EXTENSION = '文字列' | NONE
使用

データのアンロードのみ

定義

ステージにアンロードされるファイルの拡張子を指定します。拡張子を受け入れます。目的のソフトウェアまたはサービスが読み取れるファイル拡張子を指定することは、ユーザーの責任です。

デフォルト

null。つまり、ファイル拡張子は形式タイプ: .json[圧縮] によって決定されます。 圧縮 は、 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

IGNORE_UTF8_ERRORS = TRUE | FALSE
使用

データのロードのみ

定義

UTF-8エンコードエラーがエラー状態を引き起こすかどうかを指定するブール値。 TRUE に設定すると、無効な UTF-8シーケンスはUnicode文字 U+FFFD (「置換文字」)で警告なしに置き換えられます。

デフォルト

FALSE

SKIP_BYTE_ORDER_MARK = TRUE | FALSE
使用

データのロードのみ

定義

データファイルに存在する場合、 BOM (バイト順マーク)をスキップするかどうかを指定するブール値。 BOM は、データファイルの先頭にある文字コードで、バイト順とエンコード形式を定義します。

FALSE に設定されている場合、Snowflakeはデータファイル内の BOM を認識し、 BOM がエラーの原因になるか、テーブルの最初の列にマージされる可能性があります。

デフォルト

TRUE

TYPE = AVRO

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

TRIM_SPACE = TRUE | FALSE
使用

データのロードのみ

定義

Avroデータを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 文字列から先頭および末尾の空白を削除するかどうかを指定するブール値です。

たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを TRUE に設定すると、データのロード中に不要なスペースが削除されます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

FALSE

NULL_IF = ( '文字列1' [ , '文字列2' , ... ] )
使用

データのロードのみ

定義

Avroデータを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 SQL NULLとの間の変換に使用される文字列です。Snowflakeはデータロードソースのこれらの文字列を SQL NULLに置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。

例:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

このオプションには空の文字列を含めることができます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

\\N (つまり、 NULL、 ESCAPE_UNENCLOSED_FIELD 値が \\ であると想定)

TYPE = ORC

TRIM_SPACE = TRUE | FALSE
使用

データのロードのみ

定義

ORC データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 文字列から先頭および末尾の空白を削除するかどうかを指定するブール値です。

たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを TRUE に設定すると、データのロード中に不要なスペースが削除されます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

FALSE

NULL_IF = ( '文字列1' [ , '文字列2' , ... ] )
使用

データのロードのみ

定義

ORC データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 SQL NULLとの間の変換に使用される文字列です。Snowflakeはデータロードソースのこれらの文字列を SQL NULLに置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。

例:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

このオプションには空の文字列を含めることができます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

\\N (つまり、 NULL、 ESCAPE_UNENCLOSED_FIELD 値が \\ であると想定)

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

TRIM_SPACE = TRUE | FALSE
使用

データのロードのみ

定義

Parquetデータを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 文字列から先頭および末尾の空白を削除するかどうかを指定するブール値です。

たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを TRUE に設定すると、データのロード中に不要なスペースが削除されます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

FALSE

NULL_IF = ( '文字列1' [ , '文字列2' , ... ] )
使用

データのロードのみ

定義

Parquetデータを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 SQL NULLとの間の変換に使用される文字列です。Snowflakeはデータロードソースのこれらの文字列を SQL NULLに置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。

例:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

このオプションには空の文字列を含めることができます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

\\N (つまり、 NULL、 ESCAPE_UNENCLOSED_FIELD 値が \\ であると想定)

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エンコードエラーがエラー状態を引き起こすかどうかを指定するブール値。 TRUE に設定すると、無効な UTF-8シーケンスはUnicode文字 U+FFFD (「置換文字」)で警告なしに置き換えられます。

デフォルト

FALSE

PRESERVE_SPACE = TRUE | FALSE
使用

データのロードのみ

定義

XML パーサーが要素コンテンツの先頭と後続のスペースを保持するかどうかを指定するブール値。

デフォルト

FALSE

STRIP_OUTER_ELEMENT = TRUE | FALSE
使用

データのロードのみ

定義

XML パーサーが外側の XML 要素を取り除き、2番目のレベルの要素を個別のドキュメントとして公開するかどうかを指定するブール値。

デフォルト

FALSE

DISABLE_SNOWFLAKE_DATA = TRUE | FALSE
使用

データのロードのみ

定義

XML パーサーがSnowflake半構造化データタグの認識を無効にするかどうかを指定するブール値。

デフォルト

FALSE

DISABLE_AUTO_CONVERT = TRUE | FALSE
使用

データのロードのみ

定義

XML パーサーがテキストからネイティブ表現への数値およびブール値の自動変換を無効にするかどうかを指定するブール値。

デフォルト

FALSE

SKIP_BYTE_ORDER_MARK = TRUE | FALSE
使用

データのロードのみ

定義

入力ファイルに存在する BOM (バイト順マーク)をスキップするかどうかを指定するブール値。 BOM は、データファイルの先頭にある文字コードで、バイト順とエンコード形式を定義します。

FALSE に設定されている場合、Snowflakeはデータファイル内の BOM を認識し、 BOM がエラーの原因になるか、テーブルの最初の列にマージされる可能性があります。

デフォルト

TRUE

TRIM_SPACE = TRUE | FALSE
使用

データのロードのみ

定義

XML データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 文字列から先頭および末尾の空白を削除するかどうかを指定するブール値です。

たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを TRUE に設定すると、データのロード中に不要なスペースが削除されます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

FALSE

NULL_IF = ( '文字列1' [ , '文字列2' , ... ] )
使用

データのロードのみ

定義

XML データを個別の列にロードするときにのみ適用されます(つまり、 MATCH_BY_COLUMN_NAME コピーオプションまたは COPY 変換を使用)。 SQL NULLとの間の変換に使用される文字列です。Snowflakeはデータロードソースのこれらの文字列を SQL NULLに置き換えます。複数の文字列を指定するには、文字列のリストを括弧で囲み、各値をコンマで区切ります。

例:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

このオプションには空の文字列を含めることができます。

現在、このファイル形式オプションは プレビュー機能 です。

デフォルト

\\N (つまり、 NULL、 ESCAPE_UNENCLOSED_FIELD 値が \\ であると想定)

使用上の注意

  • CSV ファイル形式オプションに関する追加の注意事項:

    • オプションでフィールドを二重引用符で囲むことができます。フィールド内では、二重引用符自体をエスケープする必要がある場合を除き、すべての特殊文字は自動的にエスケープされます ("")。囲まれていないフィールドの場合、バックスラッシュ(\)がデフォルトのエスケープ文字です。

    • FIELD_DELIMITERRECORD_DELIMITERESCAPE、および ESCAPE_UNENCLOSED_FIELD 形式オプションは、次の文字をサポートしています。

      • 8進数( \\ で始まる)または16進数表現( 0x で始まる)。

      • 高次文字を含むASCII 文字。文字の8進数( \\ で始まる)または16進表現( 0x で始まる)を指定します。例えば、セント(¢)文字には、8進数(\\242)または16進数(0xA2)の値を指定します。

      • 一般的なエスケープシーケンス(例:タブの \t 、改行の \n 、キャリッジリターンの \r 、バックスラッシュの \\ )。

    • ESCAPE_UNENCLOSED_FIELD のデフォルト値は \\ です。データをロードするときに、データファイルの行がバックスラッシュ(\)文字で終わる場合、この文字は RECORD_DELIMITER ファイル形式オプションに指定された改行文字または復帰文字をエスケープします。その結果、ロード操作はこの行と次の行を単一のデータ行として扱います。この問題を回避するには、 ESCAPE_UNENCLOSED_FIELD = NONE を設定します。

  • SQL ステートメントのファイル形式の値が競合するとエラーが発生します。同じオプションが異なる値で複数回指定されると、競合が発生します(例: ...TYPE = 'CSV' ... TYPE = 'JSON'...

データファイルに関する次のルールを定義する my_csv_format という名前の CSV ファイル形式を作成します。

  • フィールドは、パイプ文字(|)を使用して区切られます。

  • ファイルには、スキップされるヘッダー行が1つ含まれています。

  • 文字列 NULL および null は NULL 値に置き換えられます。

  • 空の文字列は NULL 値として解釈されます。

  • ファイルは GZIP 圧縮を使用して圧縮/解凍されます。

CREATE OR REPLACE FILE FORMAT my_csv_format
  TYPE = CSV
  FIELD_DELIMITER = '|'
  SKIP_HEADER = 1
  NULL_IF = ('NULL', 'null')
  EMPTY_FIELD_AS_NULL = true
  COMPRESSION = gzip;

すべてのデフォルトの JSON 形式オプションを使用する my_json_format という名前の JSON ファイル形式を作成します。

CREATE OR REPLACE FILE FORMAT my_json_format
  TYPE = JSON;

Snappyアルゴリズムを使用して、アンロードされたデータファイルを圧縮しない my_parquet_format という名前の PARQUET ファイル形式を作成します。

CREATE OR REPLACE FILE FORMAT my_parquet_format
  TYPE = PARQUET
  COMPRESSION = SNAPPY;