- カテゴリ:
CREATE FILE FORMAT¶
Snowflakeテーブルにアクセスまたはロードするための、ステージングされたデータのセットを記述する名前付きファイル形式を作成します。
- こちらもご参照ください。
このトピックの内容:
構文¶
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 REPLACE_INVALID_CHARACTERS = 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
必須パラメーター¶
名前
ファイル形式の識別子を指定します。ファイル形式が作成されるスキーマに対して一意である必要があります。
識別子の値はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"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_DELIMITER
、RECORD_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
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エンコードエラーがエラー状態を引き起こすかどうかを指定するブール値。
TRUE
に設定すると、無効な UTF-8シーケンスはUnicode文字U+FFFD
(つまり、「置換文字」)で警告なしに置き換えられます。注釈
このコピーオプションは、データの読み込み中に UTF-8以外のすべての文字を削除しますが、1対1の文字置換の保証はありません。代わりに、 REPLACE_INVALID_CHARACTERS コピーオプションを使用することをお勧めします。
- デフォルト
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
使用上の注意¶
CSV ファイル形式オプションに関する追加の注意事項:
オプションでフィールドを二重引用符で囲むことができます。フィールド内では、二重引用符自体をエスケープする必要がある場合を除き、すべての特殊文字は自動的にエスケープされます (
""
)。囲まれていないフィールドの場合、バックスラッシュ(\
)がデフォルトのエスケープ文字です。FIELD_DELIMITER
、RECORD_DELIMITER
、ESCAPE
、および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;