データのロードの準備

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

このトピックの内容:

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

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

データファイルの圧縮

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

圧縮データをロードする際に、Snowflakeはデータファイルのファイル圧縮方式とコーデック圧縮方式を自動的に決定します。COMPRESSION ファイル形式オプションは、ステージでデータファイルが あらかじめ 圧縮される方法を示します。次のいずれかの方法で COMPRESSION オプションを設定します。

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

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

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

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

構造化/半構造化

注意

構造化

区切り(CSV、TSV など)

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

半構造化

JSON

Avro

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

ORC

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

Parquet

圧縮されたParquetファイルの自動検出と処理が含まれます。 . . Snowflakeは現在、Parquetライターv1を使用して作成されたParquetファイルのスキーマをサポートしています。ライターのv2を使用して作成されたファイルはサポートしていません。

XML

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

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

半構造化ファイル形式

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

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

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

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

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

注釈

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

名前付きファイル形式

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

名前付きファイル形式はオプションですが、同様の形式のデータを定期的に読み込む予定がある場合は、名前付きファイル形式を使用することを 推奨 します。

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

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

Snowsight:
  1. Data » Databases を選択します。

  2. データベースを見つけて、ファイル形式を追加するスキーマを選択します。

  3. Create » File Format を選択します。

  4. SQL ステートメントを完了し、 Create File Format を選択します。

Classic Console:
  1. Databases データベースタブ » <データベース名> » File Formats を選択します。

  2. Create... を選択し、ダイアログのプロンプトを完了します。

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か所で設定された 任意の オプションは、優先順位の低い方に設定された すべて のオプションを(同じまたは異なるオプションにかかわらず)上書きします。

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

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

すべてのコピーオプションとデフォルト値の説明については、 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つの場所で設定された個々のオプションは、優先順位の低い同じオプションセットを上書きします。