Unload into a Snowflake stage¶
この一連のトピックでは、 COPY コマンドを使用して、テーブルから内部(つまり、Snowflake)ステージにデータをアンロードする方法を説明します。その後、アンロードされたデータファイルをローカルファイルシステムにダウンロードできます。
次の図に示すように、ローカルファイルシステムへのデータのアンロードは、2つの別個のステップで実行されます。
- ステップ1:
COPY INTO <場所> コマンドを使用して、SnowflakeデータベーステーブルからSnowflakeステージの1つ以上のファイルにデータをコピーします。SQL ステートメントでは、ファイルが書き込まれるステージ(名前付きステージまたはテーブル/ユーザーステージ)を指定します。
コマンドを手動またはスクリプト内で実行する場合は、使用するステージに関係なく、このステップでは、稼働中の現行の仮想ウェアハウスがセッションのために必要です。ウェアハウスは、テーブルから行を書き込むためのコンピューティングリソースを提供します。
- ステップ2:
GET コマンドを使用して、データファイルをローカルファイルシステムにダウンロードします。
Tip
この一連のトピックの手順では、 File formats to unload data を読み終えて、必要がある場合は、名前付きファイル形式が作成済みであることを前提としています。
始める前に、ベストプラクティス、ヒント、およびその他のガイダンスについて データのアンロードに関する考慮事項 を読むこともできます。
Unload the data¶
このセクションでは、テーブルデータを名前付き内部ステージ、テーブルステージ、またはユーザーステージにアンロードする手順について説明します。
Unload data to a named internal stage¶
内部ステージは、データのアンロードに最大限の柔軟性を提供する名前付きデータベースオブジェクトです。データベースオブジェクトであるため、名前付きステージの権限は任意のロールに付与できます。
ウェブインターフェイスまたは SQLを使用して内部ステージを作成できます。
- Snowsight:
ナビゲーションメニューで Catalog » Database Explorer を選択します。次に、<db_name> »Stages を選択します。
- SQL:
Create a named stage¶
次の例では、 File formats to unload data で作成された my_csv_unload_format という名前のファイル形式オブジェクトを参照する内部ステージを作成します。
Unload data to the named stage¶
COPY INTO <場所> コマンドを使用して、テーブルのすべての行を1つ以上のファイルに
my_csv_unload_formatステージにアンロードします。このステートメントは、アンロードされたファイルの前にunload/を付けて、ステージ内のファイルを整理します。例:
@文字自体が、名前付きステージを識別します。注釈
ファイル形式オプションはステージに対して定義されているため、 COPY コマンドで同じファイル形式オプションを指定する必要はありません。
LIST コマンドを使用して、ステージにアンロードされたファイルのリストを表示します。
GET コマンドを使用して、生成されたファイルをテーブルステージからローカルマシンにダウンロードします。次の例では、ファイルを
data/unloadディレクトリにダウンロードします。例:
Linuxまたは macOS:
Windows:
Unload data to a table stage¶
COPY INTO <場所> コマンドを使用して、テーブルのすべての行をテーブルのステージにある1つ以上のファイルにアンロードします。次の例では、 File formats to unload data で作成された名前付きの
my_csv_unload_formatファイル形式を使用して、データファイルをステージにアンロードします。このステートメントは、アンロードされたファイルの前にunload/を付けて、ステージ内のファイルを整理します。例:
@%文字の組み合わせが、テーブルステージを識別します。LIST コマンドを使用して、ステージにアンロードされたファイルのリストを表示します。
GET コマンドを使用して、生成されたファイルをテーブルステージからローカルマシンにダウンロードします。次の例では、ファイルを
data/unloadディレクトリにダウンロードします。例:
Linuxまたは macOS:
Windows:
Unload data to your user stage¶
COPY INTO <場所> コマンドを使用して、テーブルのすべての行をステージ内の1つ以上のファイルにアンロードします。次の例では、 File formats to unload data で作成された名前付きの
my_csv_unload_formatファイル形式を使用して、ユーザーステージにデータファイルをアンロードします。このステートメントは、アンロードされたファイルの前にunload/を付けて、ステージ内のファイルを整理します。例:
@~文字の組み合わせが、ユーザーステージを識別します。LIST コマンドを使用して、ステージにアンロードされたファイルのリストを表示します。
GET コマンドを使用して、生成されたファイルをステージからローカルマシンにダウンロードします。次の例では、ファイルを
data/unloadディレクトリにダウンロードします。例:
Linuxまたは macOS:
Windows:
Manage unloaded data files¶
ステージングされたファイルは、 REMOVE コマンドを使用してSnowflakeステージから削除できます。これらのファイルは、処理が完了したらステージ内のファイルを削除します。
ファイルを削除すると、データをロードする際のパフォーマンスが向上します。これは、ステージ内の既存のファイルが既にロードされているかどうかを確認するために COPY INTO <テーブル> コマンドがスキャンするファイルの数を減らすためです。