ステップ3。データをターゲットテーブルにコピーする

COPY INTO <テーブル> を実行して、ステージングされたデータをターゲットテーブルにロードします。

CSV

サンプル CSV ファイルからデータをロードするには、

  1. mycsvtable テーブルの contacts1.csv という名前の /tutorials/dataloading/ プレフィックス(フォルダー)内にあるファイルの1つからデータをロードすることから始めます。次を実行します。

    COPY INTO mycsvtable
      FROM @my_csv_stage/tutorials/dataloading/contacts1.csv
      ON_ERROR = 'skip_file';
    
    Copy

    条件:

    • FROM 句は、ステージングされたデータファイルの場所を指定します(ステージ名の後にファイル名が続きます)。

    • ON_ERROR = 'skip_file' 句は、 COPY コマンドでファイルにエラーが発生した場合の処理を指定します。この場合、コマンドは、ファイル内のいずれかの記録でデータエラーが発生すると、ファイルをスキップします。ON_ERROR 句を指定しない場合、デフォルトは abort_statement であり、ファイル内の記録において最初に発生したエラーで COPY コマンドを中止します。

    COPY コマンドは、コピーされたファイルの名前と関連情報を示す結果を返します。

    +---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
    | file                                                    | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
    |---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
    | s3://snowflake-docs/tutorials/dataloading/contacts1.csv | LOADED |           5 |           5 |           1 |           0 |        NULL |             NULL |                  NULL |                    NULL |
    +---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
    
    Copy
  2. ステージングされたファイルの残りを mycsvtable テーブルにロードします。

    次の例では、パターンマッチングを使用して、正規表現 .*contacts[1-5].csv に一致するファイルからデータを mycsvtable テーブルにロードします。

    COPY INTO mycsvtable
      FROM @my_csv_stage/tutorials/dataloading/
      PATTERN='.*contacts[1-5].csv'
      ON_ERROR = 'skip_file';
    
    Copy

    ここで、 PATTERN 句は、コマンドがこの正規表現 .*contacts[1-5].csv に一致するファイル名からデータをロードする必要があることを指定します。

    COPY コマンドは、コピーされたファイルの名前と関連情報を示す結果を返します。

    +---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
    | file                                                    | status      | rows_parsed | rows_loaded | error_limit | errors_seen | first_error                                                                                                                                                          | first_error_line | first_error_character | first_error_column_name |
    |---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------|
    | s3://snowflake-docs/tutorials/dataloading/contacts2.csv | LOADED      |           5 |           5 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
    | s3://snowflake-docs/tutorials/dataloading/contacts3.csv | 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]        |
    | s3://snowflake-docs/tutorials/dataloading/contacts4.csv | LOADED      |           5 |           5 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
    | s3://snowflake-docs/tutorials/dataloading/contacts5.csv | LOADED      |           6 |           6 |           1 |           0 | NULL                                                                                                                                                                 |             NULL |                  NULL | NULL                    |
    +---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
    
    Copy

    結果の次のハイライトに注意してください。

    • contacts1.csv のデータは、既にデータを正常にロードしたため無視されます。

    • これらのファイル contacts2.csvcontacts5.csv、および contacts4.csv のデータは正常にロードされました、

    • 2つのデータエラーのため、 contacts3.csv のデータはスキップされました。このチュートリアルの次のステップでは、エラーを検証および修正する方法について説明します。

JSON

contacts.json ステージングデータファイルを myjsontable テーブルにロードします。

COPY INTO myjsontable
  FROM @my_json_stage/tutorials/dataloading/contacts.json
  ON_ERROR = 'skip_file';
Copy

COPY は、コピーされたファイルの名前と関連情報を示す結果を返します。

+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| file                                                    | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
|---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| s3://snowflake-docs/tutorials/dataloading/contacts.json | LOADED |           3 |           3 |           1 |           0 |        NULL |             NULL |                  NULL |                    NULL |
+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
Copy

次: ステップ4。データの問題に関連するデータロードエラーを解決する