ステップ5。ターゲットテーブルにデータをコピーする¶
COPY INTO <テーブル> を実行して、ステージングされたデータをターゲットテーブルにロードします。
次の例には、 ON_ERROR = 'skip_file'
パラメーター値が含まれています。コマンドのいずれかのレコードでデータエラーが発生した場合、ファイルはスキップされます。 ON_ERROR
値を指定しない場合、デフォルトは ON_ERROR = 'abort_statement'
であり、ファイル内のレコードで最初に発生したエラーで COPY コマンドを中止します。
注釈
データをテーブルにロードするには、ウェアハウスが必要です。前提条件の指示に従ってウェアハウスを作成した場合は、次のセクションに移動します。自動再開が構成されていないウェアハウスを使用している場合は、 ALTER WAREHOUSE を実行してウェアハウスを再開します。ウェアハウスの起動には最大5分かかることがあります。
ALTER WAREHOUSE mywarehouse RESUME;
CSV¶
次の例では、 contacts1.csv.gz
という名前のファイルから mycsvtable
テーブルにデータをロードします。
COPY INTO mycsvtable FROM @my_csv_stage/contacts1.csv.gz FILE_FORMAT = (FORMAT_NAME = mycsvformat) ON_ERROR = 'skip_file';Snowflakeは、
contacts1.csv.gz
のデータが正常にロードされたことを示す次の結果を返します。+-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+ | file | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name | |-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------| | mycsvtable/contacts1.csv.gz | LOADED | 5 | 5 | 1 | 0 | NULL | NULL | NULL | NULL | +-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
次の例では、パターンマッチングを使用して、正規表現 .*contacts[1-5].csv.gz
に一致するすべてのファイルからデータを mycsvtable
テーブルにロードします。
COPY INTO mycsvtable FROM @my_csv_stage FILE_FORMAT = (FORMAT_NAME = mycsvformat) PATTERN='.*contacts[1-5].csv.gz' ON_ERROR = 'skip_file';Snowflakeは次の結果を返します。
contacts1.csv.gz
のデータは、既にデータを正常にロードしたため無視されます。次のファイルのデータは正常にロードされました。
contacts2.csv.gz
contacts4.csv.gz
contacts5.csv.gz
2つのデータエラーのため、
contacts3.csv.gz
のデータはスキップされました。このチュートリアルの次のステップでは、エラーを検証および修正する方法について説明します。+-----------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+ | file | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name | |-----------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------| | mycsvtable/contacts2.csv.gz | LOADED | 5 | 5 | 1 | 0 | NULL | NULL | NULL | NULL | | mycsvtable/contacts3.csv.gz | LOAD_FAILED | 5 | 0 | 1 | 2 | Number of columns in file (11) does not match that of the corresponding table (10), use file format option error_on_column_count_mismatch=false to ignore this error | 3 | 1 | "MYCSVTABLE"[11] | | mycsvtable/contacts4.csv.gz | LOADED | 5 | 5 | 1 | 0 | NULL | NULL | NULL | NULL | | mycsvtable/contacts5.csv.gz | LOADED | 6 | 6 | 1 | 0 | NULL | NULL | NULL | NULL | +-----------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
JSON¶
次の例では、 contacts.json.gz
という名前のファイルから myjsontable
テーブルにデータをロードします。
COPY INTO myjsontable FROM @my_json_stage/contacts.json.gz FILE_FORMAT = (FORMAT_NAME = myjsonformat) ON_ERROR = 'skip_file';
Snowflakeは、 contacts1.csv.gz
のデータが正常にロードされたことを示す次の結果を返します。
+------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+ | file | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name | |------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------| | myjsontable/contacts.json.gz | LOADED | 3 | 3 | 1 | 0 | NULL | NULL | NULL | NULL | +------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+