データのアンロードの概要

データのロードと同様に、Snowflakeは、データベーステーブルからフラットで区切られたテキストファイルへのデータの一括エクスポート(つまりアンロード)をサポートしています。

このトピックの内容:

一括アンロードプロセス

データをファイルにアンロードするプロセスは、ロードプロセスを逆方向にしたものと同じです。

ステップ1

COPY INTO <場所> コマンドを使用して、SnowflakeデータベーステーブルからSnowflakeまたは外部ステージの1つ以上のファイルにデータをコピーします。

ステップ2

ステージからファイルをダウンロードします。

  • Snowflakeステージから、 GET コマンドを使用してデータファイルをダウンロードします。

  • S3から、Amazon S3が提供するインターフェイス/ツールを使用して、データファイルを取得します。

  • Azureから、Microsoft Azureが提供するインターフェイス/ツールを使用して、データファイルを取得します。

クエリを使用した一括アンロード

Snowflakeは、 COPY INTO <場所> コマンド内のテーブルの代わりに SELECT ステートメントの指定をサポートしています。クエリの結果は、コマンドで指定された1つ以上のファイルに書き込まれ、ファイルは指定された場所(内部または外部)に保存されます。

SELECT COPY ステートメントのクエリは、複数のテーブルからデータをダウンロードできる JOIN 句を含む、Snowflake SQL クエリの完全な構文とセマンティクスをサポートします。

単一または複数のファイルへの一括アンロード

COPY INTO <場所> コマンドは、データを単一のファイルまたは複数のファイルにアンロードするためのコピーオプション(SINGLE)を提供します。デフォルトは SINGLE = FALSE (つまり、複数のファイルへのアンロード)です。

Snowflakeは各ファイルに一意の名前を割り当てます。コマンドに指定されたロケーションパスには、生成されたすべてのデータファイルに割り当てられるファイル名のプレフィックスを含めることができます。プレフィックスが指定されていない場合、Snowflakeは生成されたファイル名に data_ のプレフィックスを付けます。

Snowflakeは、各ファイル名が並列実行スレッド全体で一意であることを保証するサフィックスを追加します。例: data_stats_0_1_0

データを複数のファイルにアンロードする場合、 MAX_FILE_SIZE コピーオプションを使用して、作成される各ファイルの最大サイズを指定します。

パーティション化されたデータのアンロード

COPY INTO <場所> コマンドには、データをパーティション化してステージにアンロードするための PARTITION BY コピーオプションが含まれています。

アンロード操作中にデータを分割する機能により、Snowflakeを使用してデータを変換し、データレイクに出力するなど、さまざまなユースケースが可能になります。さらに、アンロードされたデータをクラウドストレージのディレクトリ構造にパーティション分割すると、サードパーティのツールにより使用されるデータの効率を高めることができます。

PARTITION BY コピーオプションは、アンロード操作がテーブル行を指定のステージにアンロードされた個別のファイルに分割する式を受け入れます。

COPY コマンドを使用してデータをアンロードするためのタスク

データのアンロードに関連するタスクの詳細については、以下をご参照ください。