Copy data from a Google Cloud Storage stage

ステージングされたファイルからターゲットテーブルにデータをロードします。

Load your data

COPY INTO <テーブル> を実行して、データをターゲットテーブルにロードします。

注釈

データをロードするには、 ウェアハウス が必要です。自動再開が構成されていないウェアハウスを使用している場合は、 ALTER WAREHOUSE を実行してウェアハウスを再開します。ウェアハウスの起動には最大5分かかることがあります。

ALTER WAREHOUSE mywarehouse RESUME;
Copy

重要

外部ステージに対して返されるオブジェクトのリストには、1つ以上の「ディレクトリBLOB」が含まれる場合があります。基本的に、スラッシュ文字(/)で終わるパスです。例:

LIST @my_gcs_stage;

+---------------------------------------+------+----------------------------------+-------------------------------+
| name                                  | size | md5                              | last_modified                 |
|---------------------------------------+------+----------------------------------+-------------------------------|
| my_gcs_stage/load/                    |  12  | 12348f18bcb35e7b6b628ca12345678c | Mon, 11 Sep 2019 16:57:43 GMT |
| my_gcs_stage/load/data_0_0_0.csv.gz   |  147 | 9765daba007a643bdff4eae10d43218y | Mon, 11 Sep 2019 18:13:07 GMT |
+---------------------------------------+------+----------------------------------+-------------------------------+
Copy

これらのは、Googleが提供する他のツールを使用するのではなく、 Google Cloud console でディレクトリが作成されるときにリストされます。

COPY statements that reference a stage can fail when the object list includes directory blobs. To avoid errors, we recommend using file pattern matching to identify the files for inclusion (i.e. the PATTERN clause) when the file list for a stage includes directory blobs. For an example, see Load data using pattern matching (in this topic). Alternatively, set ON_ERROR = SKIP_FILE in the COPY statement.

Load data using pattern matching

次の例では、 Configure an integration for Google Cloud Storage で作成された、名前付き my_gcs_stage ステージのファイルからデータをロードします。パターンマッチングを使用すると、ステートメントは、名前が文字列 sales で始まるファイルのみをロードします。

COPY INTO mytable
  FROM @my_gcs_stage
  PATTERN='.*sales.*.csv';
Copy

名前付きファイル形式がステージ定義に含まれていたため、ファイル形式オプションは指定されていません。

Load data using a path / prefix

次の例では、Cloud Storageバケットに data/files パス(つまり、プレフィックス)が付いたすべてのファイルをロードします。使用する名前付き my_csv_format ファイル形式は、 データのロードの準備 で作成されたものです。パスはパターンマッチングと組み合わせることができます。

COPY INTO mytable
  FROM @my_gcs_stage/mybucket/data/files
  FILE_FORMAT = (FORMAT_NAME = my_csv_format);
Copy

Load data using ad hoc file format options

次のアドホック例では、Cloud Storageバケット内のすべてのファイルからデータをロードします。COPY コマンドは、名前付きファイル形式を参照する代わりに、ファイル形式オプションを指定します。この例では、パイプ(|)フィールド区切り文字を使用している CSV ファイルをロードします。COPY コマンドは、データファイルの最初の行をスキップします。

アドホックデータロード、つまり、 COPY ステートメントがステージを参照していない場合には、ストレージ統合参照が必要であることに注意してください。

COPY INTO mytable
  FROM 'gcs://mybucket/data/files'
  STORAGE_INTEGRATION = myint
  FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Copy

Validate your data

データをロードする前に、アップロードされたファイルのデータが正しくロードされるかどうかを検証できます。

アップロードされたファイルのデータを検証するには、検証モードで COPY INTO <テーブル> を実行する際に VALIDATION_MODE パラメーターを使用します。VALIDATION_MODE パラメーターは、ファイル内で発生したエラーを返します。その後、エラーなしでロードされるようにファイル内のデータを変更できます。

さらに、 COPY INTO <テーブル> には ON_ERROR コピーオプションがあり、ロード中にファイルでエラーが発生した場合に実行するアクションを指定します。

Monitor data loads

Snowflakeは、過去14日以内に実行された COPY INTO コマンドの履歴データを保持します。メタデータを使用して、アップロードの完了後にファイルを削除するなどのロードプロセスを監視および管理できます。

  • Monitor the status of each COPY INTO <テーブル> command on the Query History page of Snowsight.

  • COPY INTO コマンドを使用して、テーブルにロードされたデータの履歴を取得するには、 LOAD_HISTORY 情報スキーマビューを使用します。

Copy files from one stage to another

COPY FILES コマンドを使用して、名前付きステージ間でファイルをコピーすることにより、データを1つの場所に整理します。

次の例では、ソースステージ(src_stage)からターゲットステージ(trg_stage)にすべてのファイルをコピーします。

COPY FILES
  INTO @trg_stage
  FROM @src_stage;
Copy

コピーするファイル名のリストを指定することや、パターンマッチングを使ってファイルをコピーすることもできます。詳細については、 COPY FILES の例 をご参照ください。