Etapa 3. Copiar dados para a tabela de destino

Execute COPY INTO <tabela> para carregar dados preparados nas tabelas de destino.

CSV

Para carregar os dados dos arquivos CSV de amostra:

  1. Comece carregando os dados de um dos arquivos no prefixo /tutorials/dataloading/ (pasta) chamado contacts1.csv na tabela mycsvtable. Execute o seguinte:

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

    Onde:

    • A cláusula FROM especifica a localização do arquivo de dados preparado (nome do estágio seguido do nome do arquivo).

    • A cláusula ON_ERROR = 'skip_file' especifica o que fazer quando o comando COPY encontra erros nos arquivos. Se o comando encontrar um erro de dados em qualquer um dos registros, ele ignorará o arquivo. Se você não especificar uma cláusula ON_ERROR, o padrão será abort_statement, o que aborta o comando COPY no primeiro erro encontrado em qualquer um dos registros de um arquivo.

    O comando COPY retorna um resultado mostrando o nome do arquivo copiado e informações relacionadas:

    +---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
    | 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. Carregue o resto dos arquivos preparados na tabela mycsvtable.

    O exemplo a seguir usa a correspondência de padrões para carregar dados de arquivos que correspondem à expressão regular .*contacts[1-5].csv para a tabela mycsvtable.

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

    Em que a cláusula PATTERN especifica que o comando deve carregar dados dos nomes dos arquivos que correspondem a esta expressão regular .*contacts[1-5].csv.

    O comando COPY retorna um resultado mostrando o nome do arquivo copiado e informações relacionadas:

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

    Observe os seguintes destaques no resultado:

    • Os dados em contacts1.csv são ignorados porque você já carregou os dados com sucesso.

    • Os dados contidos nestes arquivos foram carregados com sucesso: contacts2.csv, contacts4.csv e contacts5.csv.

    • Os dados em contacts3.csv foram ignorados devido a 2 erros de dados. A próxima etapa neste tutorial trata de como validar e corrigir os erros.

JSON

Carregue o arquivo de dados preparado contacts.json na tabela myjsontable.

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

O COPY retorna um resultado mostrando o nome do arquivo copiado e informações relacionadas:

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

Próximo: Etapa 4. Resolver erros de carregamento de dados relacionados a problemas de dados