4단계. 데이터를 대상 테이블로 복사

COPY INTO <테이블> 을 실행하여 스테이징된 데이터를 대상 테이블에 로드합니다.

CSV

샘플 CSV 파일에서 데이터를 로드하는 방법:

  1. 파일 중 하나에서 데이터를 로드하여 시작합니다(contacts1.csv.gz). 다음을 실행합니다.

    COPY INTO mycsvtable
      FROM @my_csv_stage/contacts1.csv.gz
      FILE_FORMAT = (FORMAT_NAME = mycsvformat)
      ON_ERROR = 'skip_file';
    
    Copy

    여기서:

    • FROM 절은 스테이징된 데이터 파일의 위치를 지정합니다(스테이지 이름 다음에 파일 이름 표시).

    • ON_ERROR 절은 COPY 명령 실행 시 파일에서 오류가 발생할 때 수행해야 하는 동작을 지정합니다. 기본적으로 이 명령은 첫 번째 오류 발생 시 데이터 로드를 중지하지만, 오류가 포함된 파일을 건너뛰고 다음 파일을 로드하도록 명령을 변경했습니다. 이는 설명을 위한 것이며 이 자습서의 파일에는 오류가 없습니다.

    COPY 명령은 복사된 파일 이름과 관련 정보를 보여주는 결과를 반환합니다.

    +-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
    | 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 |
    +-----------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
    
    Copy
  2. mycsvtable 테이블의 스테이징된 파일 중 나머지를 로드합니다.

    다음 예에서는 패턴 일치를 사용하여 정규식 .*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';
    
    Copy

    여기서 PATTERN 절은 명령이 이 정규식((.*employees0[1-5].csv.gz))과 일치하는 파일 이름에서 데이터를 로드하도록 지정합니다.

    COPY 명령은 복사된 파일 이름과 관련 정보를 보여주는 결과를 반환합니다.

    +-----------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
    | 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                    |
    +-----------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
    
    Copy

    결과에서 다음 주요 사항을 참고하십시오.

    • 이미 로드한 데이터이므로 contacts1.csv.gz 의 데이터는 무시됩니다.

    • contacts2.csv.gz, contacts4.csv.gz, contacts5.csv.gz 파일의 데이터가 로드되었습니다.

    • 2개의 데이터 오류로 인해 contacts3.csv.gz 의 데이터를 건너뛰었습니다. 이 자습서의 다음 단계에서는 오류를 확인하고 수정하는 방법에 대해 설명합니다.

JSON

contacts.json.gz 스테이징된 데이터 파일을 myjsontable 테이블에 로드합니다.

COPY INTO myjsontable
  FROM @my_json_stage/contacts.json.gz
  FILE_FORMAT = (FORMAT_NAME = myjsonformat)
  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 |
|------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| myjsontable/contacts.json.gz | LOADED |           3 |           3 |           1 |           0 |        NULL |             NULL |                  NULL |                    NULL |
+------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
Copy

다음 항목: 5단계. 데이터 로드 오류 해결하기