データロードの準備

このトピックでは、サポートされているデータファイル形式とデータ圧縮の概要を説明します。データの構造によっては、データをロードする前にデータを 準備 する必要がある場合があります。

このトピックの内容:

サポートされているデータ型

Snowflakeでサポートされているデータ型の説明については、 データ型 をご参照ください。

データファイルの圧縮

大規模なデータセットをロードするときは、データファイルを圧縮することをお勧めします。各データ型でサポートされる圧縮アルゴリズムについては、 CREATE FILE FORMAT をご参照ください。

圧縮データをロードする場合、データファイルの圧縮方法を指定します。COMPRESSION ファイル形式オプションは、ステージでデータファイルが あらかじめ 圧縮される方法を示します。次のいずれかの方法で COMPRESSION オプションを設定します。

  • COPY INTO <テーブル> ステートメントで直接指定されたファイル形式オプションとして。

  • 名前付きファイル形式またはステージオブジェクトに指定されたファイル形式オプションとして。名前付きファイル形式/ステージオブジェクトを、 COPY INTO <テーブル> ステートメントで参照できるようになります。

サポートされているファイル形式

次のファイル形式がサポートされています。

構造化/半構造化

注意

構造化

区切り(CSV、TSV など)

有効なシングルバイト区切り文字がサポートされています。デフォルトはカンマです(つまり、CSV)。

半構造化

JSON

Avro

Snappyで圧縮されたAvroファイルの自動検出と処理が含まれます。

ORC

Snappyまたはzlibで圧縮された ORC ファイルの自動検出と処理が含まれます。

Parquet

Snappy圧縮されたParquetファイルの自動検出と処理が含まれます。

XML

プレビュー 機能としてサポートされています。

ファイル形式オプションは、ファイルに含まれるデータのタイプ、およびデータの形式に関するその他の関連特性を指定します。指定できるファイル形式オプションは、ロードする予定のデータのタイプによって異なります。Snowflakeは、ファイル形式オプションのデフォルトの完全なセットを提供します。

半構造化ファイル形式

Snowflakeは、半構造化データをネイティブでサポートします。つまり、事前にスキーマを定義しなくても、半構造化データをリレーショナルテーブルにロードできます。Snowflakeは、半構造化データをタイプ VARIANT の列に直接ロードすることをサポートしています(詳細については、 半構造化データ型 を参照)。

現在サポートされている半構造化データ形式には、 JSON、Avro、 ORC、Parquet、および XML が含まれます。

  • JSON、Avro、 ORC、およびParquetデータの場合、各最上位の完全なオブジェクトは、テーブル内の個別の行としてロードされます。オブジェクトが有効である限り、各オブジェクトには改行文字とスペースを含めることができます。

  • XML データの場合、各最上位要素はテーブルの個別の行としてロードされます。要素は、同じ名前の開始タグと終了タグによって識別されます。

通常、半構造化データの保存に使用されるテーブルは、単一の VARIANT 列で構成されます。データがロードされると、構造化データに似たデータをクエリできます。配列から値やオブジェクトを抽出するなど、他のタスクを実行することもできます。詳細については、 FLATTEN テーブル関数をご参照ください。

注釈

半構造化データは複数の列を持つテーブルにロードできますが、半構造化データは構造化ファイルのフィールドとして保存する必要があります(例: CSV ファイル)。その後、データをテーブルの指定された列にロードできます。

名前付きファイル形式

Snowflakeは、名前付きファイル形式の作成をサポートしています。名前付きファイル形式は、必要なすべての形式情報をカプセル化するデータベースオブジェクトです。名前付きファイル形式は、個々のファイル形式オプションを指定できるすべての場所で入力として使用できるため、同様の形式のデータのデータ読み込みプロセスを効率化できます。

名前付きファイル形式はオプションですが、同様の形式のデータを定期的にロードする予定がある場合は お勧め します。

名前付きファイル形式の作成

ウェブインターフェイスまたは SQLを使用して、ファイル形式を作成できます。

ウェブインターフェイス

Databases Databases tab » <データベース名> » File Formats をクリックします

SQL

CREATE FILE FORMAT

すべてのファイル形式オプションとデフォルト値の説明については、 CREATE FILE FORMAT をご参照ください。

デフォルトのファイル形式オプションのオーバーライド

次のいずれかの場所で、ステージングされたデータのファイル形式設定を定義できます(つまり、デフォルト設定を上書きできます)。

テーブル内の定義

FILE_FORMAT パラメーターを使用してオプションを明示的に設定します。詳細については、 CREATE TABLE をご参照ください。

名前付きステージ内の定義

FILE_FORMAT パラメーターを使用してオプションを明示的に設定します。その後、ステージは COPY INTO TABLE ステートメントで参照されます。詳細については、 CREATE STAGE をご参照ください。

COPY INTO TABLE ステートメントで直接データをロードする時

オプションを個別に明示的に設定します。詳細については、 COPY INTO <テーブル> をご参照ください。

ファイル形式オプションが複数の場所で指定されている場合、ロード操作は次の優先順位でオプションを適用します。

  1. COPY INTO TABLE ステートメント。

  2. ステージ定義。

  3. テーブル定義。

注釈

複数の場所で設定されたファイル形式オプションは累積的ではありません。1か所で設定された 任意の オプションは、優先順位の低い方に設定された すべて のオプションを(同じまたは異なるオプションにかかわらず)上書きします。

Snowflake機能でのファイル形式のサポート

次のテーブルは、機能セット全体でのファイル形式オプションのサポートを示しています。

TYPE = CSV

ファイル形式オプション

コピーロード:sup:[1]

アンロードをコピー

外部テーブル

ステージでのクエリ:sup:[2]

COMPRESSION

RECORD_DELIMITER

FIELD_DELIMITER

FILE_EXTENSION

N/A

N/A

N/A

SKIP_HEADER

N/A

SKIP_BLANK_LINES

N/A

N/A

DATE_FORMAT

N/A

N/A

N/A

TIME_FORMAT

N/A

N/A

N/A

TIMESTAMP_FORMAT

N/A

N/A

N/A

BINARY_FORMAT

N/A

N/A

N/A

ESCAPE

N/A

ESCAPE_UNENCLOSED_FIELD

TRIM_SPACE

N/A

FIELD_OPTIONALLY_ENCLOSED_BY

NULL_IF

ERROR_ON_COLUMN_COUNT_MISMATCH

N/A

N/A

N/A

REPLACE_INVALID_CHARACTERS

N/A

N/A

N/A

VALIDATE_UTF8

N/A

EMPTY_FIELD_AS_NULL

SKIP_BYTE_ORDER_MARK

N/A

ENCODING

N/A

:sub:`[1]一括データロードとSnowpipeが含まれます。 `

:sub:`[2]ステージングされたファイル内のデータのクエリと、ロード中のデータの変換(一括データロードまたはSnowpipeによる)が含まれます。 `

TYPE = JSON

ファイル形式オプション

コピーロード:sup:[1]

アンロードをコピー

外部テーブル

ステージでのクエリ:sup:[2]

COMPRESSION

FILE_EXTENSION

N/A

N/A

N/A

ENABLE_OCTAL

N/A

N/A

N/A

ALLOW_DUPLICATE

N/A

STRIP_OUTER_ARRAY

N/A

STRIP_NULL_VALUES

N/A

IGNORE_UTF8_ERRORS

N/A

SKIP_BYTE_ORDER_MARK

N/A

NULL_IF

TRIM_SPACE

N/A

DATE_FORMAT

N/A

N/A

N/A

TIME_FORMAT

N/A

N/A

N/A

TIMESTAMP_FORMAT

N/A

N/A

N/A

BINARY_FORMAT

N/A

N/A

N/A

:sub:`[1]一括データロードとSnowpipeが含まれます。 `

:sub:`[2]ステージングされたファイル内のデータのクエリと、ロード中のデータの変換(一括データロードまたはSnowpipeによる)が含まれます。 `

TYPE = AVRO

ファイル形式オプション

コピーロード:sup:[1]

アンロードをコピー

外部テーブル

ステージでのクエリ:sup:[2]

COMPRESSION

N/A

NULL_IF

N/A

N/A

N/A

TRIM_SPACE

N/A

N/A

N/A

:sub:`[1]一括データロードとSnowpipeが含まれます。 `

:sub:`[2]ステージングされたファイル内のデータのクエリと、ロード中のデータの変換(一括データロードまたはSnowpipeによる)が含まれます。 `

TYPE = ORC

ファイル形式オプション

コピーロード:sup:[1]

アンロードをコピー

外部テーブル

ステージでのクエリ:sup:[2]

NULL_IF

N/A

N/A

N/A

TRIM_SPACE

N/A

N/A

N/A

:sub:`[1]一括データロードとSnowpipeが含まれます。 `

:sub:`[2]ステージングされたファイル内のデータのクエリと、ロード中のデータの変換(一括データロードまたはSnowpipeによる)が含まれます。 `

TYPE = PARQUET

ファイル形式オプション

コピーロード:sup:[1]

アンロードをコピー

外部テーブル

ステージでのクエリ:sup:[2]

COMPRESSION

SNAPPY_COMPRESSION

N/A

N/A

N/A

BINARY_AS_TEXT

N/A

N/A

NULL_IF

N/A

N/A

N/A

TRIM_SPACE

N/A

N/A

N/A

:sub:`[1]一括データロードとSnowpipeが含まれます。 `

:sub:`[2]ステージングされたファイル内のデータのクエリと、ロード中のデータの変換(一括データロードまたはSnowpipeによる)が含まれます。 `

TYPE = XML

ファイル形式オプション

コピーロード:sup:[1]

アンロードをコピー

外部テーブル

ステージでのクエリ:sup:[2]

COMPRESSION

N/A

IGNORE_UTF8_ERRORS

N/A

N/A

???

PRESERVE_SPACE

N/A

N/A

???

STRIP_OUTER_ELEMENT

N/A

N/A

???

DISABLE_SNOWFLAKE_DATA

N/A

N/A

???

DISABLE_AUTO_CONVERT

N/A

N/A

???

SKIP_BYTE_ORDER_MARK

N/A

N/A

???

NULL_IF

N/A

N/A

???

TRIM_SPACE

N/A

N/A

???

:sub:`[1]一括データロードとSnowpipeが含まれます。 `

:sub:`[2]ステージングされたファイル内のデータのクエリと、ロード中のデータの変換(一括データロードまたはSnowpipeによる)が含まれます。 `

サポートされているコピーオプション

コピーオプションは、エラー処理、最大データサイズなどに関するデータロードの動作を決定します。

すべてのコピーオプションとデフォルト値の説明については、 COPY INTO <テーブル> をご参照ください。

デフォルトのコピーオプションの上書き

次のいずれかの場所で、目的のロード動作を指定できます(つまり、デフォルト設定を上書きできます)。

テーブル内の定義

STAGE_COPY_OPTIONS パラメーターを使用してオプションを明示的に設定します。詳細については、 CREATE TABLE をご参照ください。

名前付きステージ内の定義

COPY_OPTIONS パラメーターを使用してオプションを明示的に設定します。その後、ステージは COPY INTO TABLE ステートメントで参照されます。詳細については、 CREATE STAGE をご参照ください。

COPY INTO TABLE ステートメントで直接データをロードする時

オプションを個別に明示的に設定します。詳細については、 COPY INTO <テーブル> をご参照ください。

コピーオプションが複数の場所で指定されている場合、ロード操作は次の優先順位でオプションを適用します。

  1. COPY INTO TABLE ステートメント。

  2. ステージ定義。

  3. テーブル定義。

注釈

複数の場所に設定されたコピーオプションは累積的です。1つの場所で設定された個々のオプションは、優先順位の低い同じオプションセットを上書きします。