CREATE FILE FORMAT¶
Snowflakeテーブルにアクセスまたはロードするための、ステージングされたデータのセットを記述する名前付きファイル形式を作成します。
- こちらもご参照ください。
ALTER FILE FORMAT、 DROP FILE FORMAT、 SHOW FILE FORMATS、 DESCRIBE FILE FORMAT
構文¶
CREATE [ OR REPLACE ] [ { TEMP | TEMPORARY | VOLATILE } ] 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>' 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 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 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_SNOWFLAKE_DATA = TRUE | FALSE DISABLE_AUTO_CONVERT = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE
必須パラメーター¶
name
ファイル形式の識別子を指定します。ファイル形式が作成されるスキーマに対して一意である必要があります。
識別子の値はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"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 およびその他の半構造化ファイル形式の詳細については、 半構造化データのロードの概要 をご参照ください。
オプションのパラメーター¶
{ TEMP | TEMPORARY | VOLATILE }
ファイル形式を作成した セッション の間だけ持続するように指定します。セッション終了時に仮ファイル形式がドロップされます。
デフォルト:値なし。ファイル形式が
TEMPORARY
として宣言されていない場合、そのファイル形式は永続的です。予期しない競合を回避するには、スキーマに既存のファイル形式の名前を仮ファイル形式に付けないようにします。
スキーマ内にある別のファイル形式と同じ名前の仮ファイル形式を作成した場合、そのファイル形式で使用されたすべてのクエリや操作は、仮ファイル形式がドロップされるまで、セッション内の仮ファイル形式のみに影響します。DROP FILE FORMAT コマンドを使用してファイル形式をドロップした場合は、スキーマに既存のファイル形式ではなく、仮ファイル形式をドロップします。
COMMENT = 'string_literal'
ファイル形式のコメントを指定します。
デフォルト: 値なし
形式タイプオプション(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 = 'character' | 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 = 'character' | 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
の値も受け入れます。- デフォルト:
コンマ(
,
)
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 として返します。 は列の位置です。
なお、 SKIP_HEADER オプションは、 PARSE_HEADER = TRUE ではサポートされません。
デフォルト:
FALSE
SKIP_HEADER = integer
- 使用:
データのロードおよび外部テーブル
- 定義:
スキップするファイルの先頭の行数。
SKIP_HEADER は RECORD_DELIMITER または FIELD_DELIMITER の値を使用してヘッダー行を決定しないことに注意してください。むしろ、指定された数の CRLF (キャリッジリターン、ラインフィード)で区切られたファイル内の行を単にスキップします。ロードするデータの行を決定するのには、RECORD_DELIMITER および FIELD_DELIMITER が使用されます。
- デフォルト:
0
SKIP_BLANK_LINES = TRUE | FALSE
- 使用:
データのロードおよび外部テーブル
- 定義:
データファイルで検出された空白行のスキップを指定するブール値。それ以外の場合、空白行は記録終了エラーを生成します(デフォルトの動作)。
デフォルト:
FALSE
DATE_FORMAT = 'string' | AUTO
- 使用:
データのロードとアンロード
- 定義:
データファイル(データのロード)またはテーブル(データのアンロード)の日付値の形式を定義します。値が指定されていない、または
AUTO
の場合、 DATE_INPUT_FORMAT (データのロード)または DATE_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。- デフォルト:
AUTO
TIME_FORMAT = 'string' | AUTO
- 使用:
データのロードとアンロード
- 定義:
データファイル(データのロード)またはテーブル(データのアンロード)の時間値の形式を定義します。値が指定されていない、または
AUTO
の場合、 TIME_INPUT_FORMAT (データのロード)または TIME_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。- デフォルト:
AUTO
TIMESTAMP_FORMAT = string' | AUTO
- 使用:
データのロードとアンロード
- 定義:
データファイル(データのロード)またはテーブル(データのアンロード)のタイムスタンプ値の形式を定義します。値が指定されていない、または
AUTO
の場合、 TIMESTAMP_INPUT_FORMAT (データのロード)または TIMESTAMP_OUTPUT_FORMAT (データのアンロード)パラメーターの値が使用されます。- デフォルト:
AUTO
BINARY_FORMAT = HEX | BASE64 | UTF8
- 使用:
データのロードとアンロード
- 定義:
バイナリ入力または出力のエンコード形式を定義します。このオプションは、テーブルのバイナリ列にデータをロードまたはアンロードするときに使用できます。
- デフォルト:
HEX
ESCAPE = 'character' | NONE
- 使用:
データのロードとアンロード
- 定義:
囲まれているフィールド値、または囲まれていないフィールド値のエスケープ文字として使用されるシングルバイト文字の文字列。エスケープ文字は、文字シーケンス内の後続の文字に対して代替解釈を呼び出します。ESCAPE 文字を使用して、データ内の
FIELD_OPTIONALLY_ENCLOSED_BY
文字のインスタンスをリテラルとして解釈できます。一般的なエスケープシーケンス、8進数値、または16進数値を受け入れます。
- データのロード:
囲まれたフィールド専用のエスケープ文字を指定します。
FIELD_OPTIONALLY_ENCLOSED_BY
を設定して、フィールドを囲むのに使用する文字を指定します。注釈
このファイル形式オプションは、シングルバイト文字のみをサポートします。UTF-8文字エンコードは、上位の ASCII 文字をマルチバイト文字として表すことに注意してください。データファイルが UTF-8文字セットでエンコードされている場合は、オプション値として上位の ASCII 文字を指定することはできません。
さらに、上位の ASCII 文字を指定する場合は、データファイルの文字エンコードとして
ENCODING = 'string'
ファイル形式オプションを設定して、文字が正しく解釈されるようにすることをお勧めします。- データのアンロード:
このオプションが設定されている場合は、
ESCAPE_UNENCLOSED_FIELD
のエスケープ文字セットが上書きされます。- デフォルト:
NONE
ESCAPE_UNENCLOSED_FIELD = 'character' | NONE
- 使用:
データのロード、データのアンロード、および外部テーブル
- 定義:
囲まれていないフィールド値専用のエスケープ文字として使用されるシングルバイト文字の文字列。エスケープ文字は、文字シーケンス内の後続の文字に対して代替解釈を呼び出します。ESCAPE 文字を使用して、データ内の
FIELD_DELIMITER
またはRECORD_DELIMITER
文字のインスタンスをリテラルとして解釈できます。エスケープ文字は、データ内のそれ自体のインスタンスをエスケープするためにも使用できます。一般的なエスケープシーケンス、8進数値、または16進数値を受け入れます。
- データのロード:
囲まれていないフィールド専用のエスケープ文字を指定します。
注釈
デフォルト値は
\\
です。データファイルの行がバックスラッシュ(\
)文字で終わる場合、この文字はRECORD_DELIMITER
ファイル形式オプションに指定された改行文字または復帰文字をエスケープします。その結果、ロード操作はこの行と次の行を単一のデータ行として扱います。この問題を回避するには、この値をNONE
に設定します。このファイル形式オプションは、シングルバイト文字のみをサポートします。UTF-8文字エンコードは、上位の ASCII 文字をマルチバイト文字として表すことに注意してください。データファイルが UTF-8文字セットでエンコードされている場合は、オプション値として上位の ASCII 文字を指定することはできません。
さらに、上位の ASCII 文字を指定する場合は、データファイルの文字エンコードとして
ENCODING = 'string'
ファイル形式オプションを設定して、文字が正しく解釈されるようにすることをお勧めします。
- データのアンロード:
ESCAPE
が設定されている場合は、そのファイルオプションのエスケープ文字セットがこのオプションを上書きします。- デフォルト:
バックスラッシュ(
\\
)
TRIM_SPACE = TRUE | FALSE
- 使用:
データのロードおよび外部テーブル
- 定義:
フィールドから空白を削除するかどうかを指定するブール値。
たとえば、外部データベースソフトウェアがフィールドを引用符で囲み、先頭にスペースを挿入する場合、Snowflakeはフィールドの先頭として開始引用文字ではなく先頭スペースを読み取ります(つまり、引用符はフィールドデータの文字列の一部として解釈されます)。このオプションを
TRUE
に設定すると、データのロード中に不要なスペースが削除されます。別の例として、先頭または後続のスペースが文字列を囲む引用符の前後にある場合、このオプションを使用して周囲のスペースを削除し、
FIELD_OPTIONALLY_ENCLOSED_BY
オプションを使用して引用文字を削除できます。引用符 内 のスペースは保持されることに注意してください。たとえば、FIELD_DELIMITER = '|'
とFIELD_OPTIONALLY_ENCLOSED_BY = '"'
を想定した場合、|"Hello world"| /* loads as */ >Hello world< |" Hello world "| /* loads as */ > Hello world < | "Hello world" | /* loads as */ >Hello world<
(この例のブラケットはロードされておらず、ロードされた文字列の開始と終了を区別するために使用されます)
- デフォルト:
FALSE
FIELD_OPTIONALLY_ENCLOSED_BY = 'character' | NONE
- 使用:
データのロード、データのアンロード、および外部テーブル
- 定義:
文字列を囲むのに使用される文字。値は、
NONE
、一重引用符('
)、または二重引用符("
)のいずれかです。一重引用符を使用するには、8進数または16進数表現(0x27
)または二重引用符で囲まれたエスケープ(''
)を使用します。フィールドにこの文字が含まれる場合、同じ文字を使用してエスケープします。例えば、値が二重引用符であり、フィールドに文字列
A "B" C
が含まれる場合、二重引用符を次のようにエスケープします。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
- 使用:
データのロード、データのアンロード、および外部テーブル
- 定義:
データをロードするとき、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 = '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-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
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、ESCAPE_UNENCLOSED_FIELD
値が\\
であると想定)
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、ESCAPE_UNENCLOSED_FIELD
値が\\
であると想定)
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、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
注釈
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 に設定します。
- 制限事項:
データのアンロードには対応していません。
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、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エンコードエラーがエラー状態を引き起こすかどうかを指定するブール値。
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_SNOWFLAKE_DATA = TRUE | FALSE
- 使用:
データのロードのみ
- 定義:
XML パーサーがSnowflake半構造化データタグの認識を無効にするかどうかを指定するブール値。
- デフォルト:
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
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE FILE FORMAT |
スキーマ |
|
OWNERSHIP |
ファイル形式 |
スキーマに既存のオブジェクトと同じ名前の仮オブジェクトを作成するには、ロールにオブジェクトの権限(OWNERSHIP)を付与するか継承する必要があります。 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 権限も必要であることに注意してください。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
注意
ファイル形式を再作成すると(CREATE OR REPLACE FILEFORMAT を使用)、ファイル形式とそれを参照する外部テーブルとの関連付けが解除されます。これは、外部テーブルがファイル形式の名前ではなく、非表示の ID を使用してファイル形式にリンクされているためです。バックグラウンドでは、 CREATE OR REPLACE 構文はオブジェクトをドロップし、別の非表示の ID でオブジェクトを再作成します。
1つ以上の外部テーブルにリンクされた後にファイル形式を再作成する必要がある場合は、各外部テーブルを再作成(CREATE OR REPLACE EXTERNAL TABLE を使用)して、関連付けを再確立する必要があります。 GET_DDL 関数を呼び出して DDL ステートメントを取得し、各外部テーブルを再作成します。
SQL ステートメントのファイル形式の値が競合するとエラーが発生します。同じオプションが異なる値で複数回指定されると、競合が発生します(例:
...TYPE = 'CSV' ... TYPE = 'JSON'...
)メタデータについて。
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
例¶
データファイルに関する次のルールを定義する 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;
物理型や変換されたレガシー型の代わりに、 PARQUET 理論型を使用する my_parquet_format
という名前の PARQUET ファイル形式を作成します。
CREATE OR REPLACE FILE FORMAT my_parquet_format TYPE = PARQUET USE_LOGICAL_TYPE = TRUE;