S3ステージからのデータのコピー¶
ステージングされたファイルからターゲットテーブルにデータをロードします。
このトピックの内容:
データのロード¶
COPY INTO <テーブル> を実行して、データをターゲットテーブルにロードします。
注釈
データをロードするには、 ウェアハウス が必要です。自動再開が構成されていないウェアハウスを使用している場合は、 ALTER WAREHOUSE を実行してウェアハウスを再開します。ウェアハウスの起動には最大5分かかることがあります。
ALTER WAREHOUSE mywarehouse RESUME;
次の例では、 S3ステージの作成 で作成された、名前付き my_ext_stage
ステージのファイルからデータをロードします。パターンマッチングを使用すると、ステートメントは、名前が文字列 sales
で始まるファイルのみをロードします。
COPY INTO mytable FROM @my_ext_stage PATTERN='.*sales.*.csv';
名前付きファイル形式がステージ定義に含まれていたため、ファイル形式オプションは指定されていません。
次の例では、 データのロードの準備 で作成された名前付きの my_csv_format
ファイル形式を使用して、S3バケットに data/files
で始まるすべてのファイルをロードします。
COPY INTO mytable FROM s3://mybucket/data/files credentials=(AWS_KEY_ID='$AWS_ACCESS_KEY_ID' AWS_SECRET_KEY='$AWS_SECRET_ACCESS_KEY') FILE_FORMAT = (FORMAT_NAME = my_csv_format);
次のアドホック例では、S3バケット内のすべてのファイルからデータをロードします。COPY コマンドは、名前付きファイル形式を参照する代わりに、ファイル形式オプションを指定します。この例では、パイプ(|
)フィールド区切り文字を使用している CSV ファイルをロードします。COPY コマンドは、データファイルの最初の行をスキップします。
COPY INTO mytable
FROM s3://mybucket credentials=(AWS_KEY_ID='$AWS_ACCESS_KEY_ID' AWS_SECRET_KEY='$AWS_SECRET_ACCESS_KEY')
FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
データの検証¶
データをロードする前に、アップロードされたファイルのデータが正しくロードされるかどうかを検証できます。
アップロードされたファイルのデータを検証するには、検証モードで 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 FILES 例 をご参照ください。