Azureステージからのデータのコピー

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

このトピックの内容:

データのロード

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

注釈

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

ALTER WAREHOUSE mywarehouse RESUME;
Copy

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

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

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

次の例では、 data/files で始まるすべてのファイルをAzureコンテナーにロードします。使用するのは、名前付きの my_csv_format ファイル形式( データのロードの準備 で作成)です。

COPY INTO mytable
  FROM 'azure://myaccount.blob.core.windows.net/mycontainer/data/files'
  CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=abcDEFGHIjklmNOPqrsTUVwxyZ123456789%3D')
  ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'aBcDeFGHI0jklMnoP0QrsTUVWXyz1234567891abcDEFG=')
  FILE_FORMAT = (FORMAT_NAME = my_csv_format);
Copy

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

COPY INTO mytable
  FROM 'azure://myaccount.blob.core.windows.net/mycontainer/data/files'
  CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=abcDEFGHIjklmNOPqrsTUVwxyZ123456789%3D')
  ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'aBcDeFGHI0jklMnoP0QrsTUVWXyz1234567891abcDEFG=')
  FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Copy

データの検証

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

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

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

データロードのモニター

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

  • COPY INTO <テーブル> コマンドのステータスを Classic Console の History 履歴タブ ページで監視します。

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

あるステージから別のステージへのファイルのコピー

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

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

COPY FILES
  INTO @trg_stage
  FROM @src_stage;
Copy

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