Google Cloud Storageへのアンロード¶
既にGoogle Cloud Storageアカウントをお持ちで、ファイルの保存と管理にCloud Storageバケットを使用している場合、Snowflakeテーブルからデータをアンロードするときに既存のバケットとフォルダーパスを利用できます。このトピックでは、 COPY コマンドを使用して、テーブルからCloud Storageバケットにデータをアンロードする方法について説明します。その後、アンロードされたデータファイルをローカルファイルシステムにダウンロードできます。
次の図に示すように、Cloud Storageバケットへのデータのアンロードは2つのステップで実行されます。
- ステップ1:
COPY INTO <場所> コマンドを使用して、Snowflakeのデータベーステーブルから、Cloud Storageバケット内の1つ以上のファイルにデータをコピーします。コマンドでは、Cloud Storageバケットを参照する名前付き外部ステージオブジェクトを指定するか(推奨)、バケットに URI およびストレージ統合(必要な場合)を指定して、バケットに直接アンロードすることを選択できます。
コマンドを手動またはスクリプト内で実行する場合は、使用する方法に関係なく、このステップでは、稼働中の現行の仮想ウェアハウスがセッションのために必要です。ウェアハウスは、テーブルから行を書き込むためのコンピューティングリソースを提供します。
- ステップ2:
Googleが提供するインターフェイス/ツールを使用して、Cloud Storageバケットからファイルをダウンロードします。
Tip
この一連のトピックの手順では、 データのアンロードの準備 を読み終えて、必要がある場合は、名前付きファイル形式が作成済みであることを前提としています。
始める前に、ベストプラクティス、ヒント、およびその他のガイダンスについて データのアンロードに関する考慮事項 を読むこともできます。
このトピックの内容:
データをアンロードするためのクラウドストレージの構成¶
SnowflakeがCloud Storageバケットに書き込むには、外部クラウドストレージの認証責任をSnowflake IDおよびアクセス管理(IAM)エンティティに委任するようにストレージ統合オブジェクトを構成する必要があります。
構成手順については、 Google Cloud Storageの統合の構成 をご参照ください。
外部ステージへのデータのアンロード¶
外部ステージは、データのアンロードに最大限の柔軟性を提供する名前付きデータベースオブジェクトです。データベースオブジェクトであるため、名前付きステージの権限は任意のロールに付与できます。
ウェブインターフェイスまたは SQLを使用して、外部の名前付きステージを作成できます。
- Classic Console:
- SQL:
名前付きステージの作成¶
次の例では、 unload
という名前のフォルダーパスを持つ my_ext_unload_stage
という名前の外部ステージを作成します。ステージは次のオブジェクトを参照します。
Google Cloud Storageの統合の構成 で作成された
gcs_int
という名前のストレージ統合。データのアンロードの準備 で作成された
my_csv_unload_format
という名前のファイル形式。CREATE OR REPLACE STAGE my_ext_unload_stage URL='gcs://mybucket/unload' STORAGE_INTEGRATION = gcs_int FILE_FORMAT = my_csv_unload_format;
名前付きステージへのデータのアンロード¶
COPY INTO <場所> コマンドを使用して、テーブルからCloud Storageバケットに外部ステージを使用してデータをアンロードします。
次の例では、
my_ext_unload_stage
ステージを使用して、mytable
テーブルのすべての行をCloud Storageバケットの1つ以上のファイルにアンロードします。ファイルにはd1
ファイル名のプレフィックスが適用されます。COPY INTO @my_ext_unload_stage/d1 FROM mytable;
Cloud Storageが提供するツールを使用して、バケットからオブジェクト(つまり、コマンドによって生成されたファイル)を取得します。
Cloud Storageバケットへのデータの直接アンロード¶
COPY INTO <場所> コマンドを使用して、テーブルから指定されたCloud Storageバケットに直接データをアンロードします。このオプションは、同じテーブルとバケットのパラメーターによる定期的なデータのアンロードを計画していない場合の、アドホックアンロードに適しています。
Cloud Storageバケットの URI と、バケットにアクセスするためのストレージ統合を指定する必要があります。
次の例では、
mytable
テーブルのすべての行を、Cloud Storageバケット内のフォルダーパスプレフィックスがunload/
の1つ以上のファイルにアンロードします。COPY INTO 'gcs://mybucket/unload/' FROM mytable STORAGE_INTEGRATION = gcs_int;
Cloud Storageコンソール(または同等のクライアントアプリケーション)を使用して、バケットからオブジェクト(コマンドによって生成されたファイル)を取得します。