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:
Comece carregando os dados de um dos arquivos no prefixo
/tutorials/dataloading/
(pasta) chamadocontacts1.csv
na tabelamycsvtable
. Execute o seguinte:COPY INTO mycsvtable FROM @my_csv_stage/tutorials/dataloading/contacts1.csv ON_ERROR = 'skip_file';
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 | +---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
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 tabelamycsvtable
.COPY INTO mycsvtable FROM @my_csv_stage/tutorials/dataloading/ PATTERN='.*contacts[1-5].csv' ON_ERROR = 'skip_file';
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 | +---------------------------------------------------------+-------------+-------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-----------------------+-------------------------+
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
econtacts5.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';
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 |
+---------------------------------------------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
Próximo: Etapa 4. Resolver erros de carregamento de dados relacionados a problemas de dados