

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Usando o comando COPY para carregar do Amazon S3
<a name="t_loading-tables-from-s3"></a>

Use o comando [COPY](r_COPY.md) para carregar uma tabela em paralelo a partir de arquivos de dados no Amazon S3. Você pode especificar os arquivos a serem carregados usando um prefixo de objeto do Amazon S3 ou usando um arquivo manifesto.

A sintaxe para especificar os arquivos a serem carregados usando um prefixo é a seguinte:

```
COPY <table_name> FROM 's3://<bucket_name>/<object_prefix>'
authorization;
```

 O arquivo manifesto é um arquivo em formato JSON que lista os arquivos de dados a serem carregados. A sintaxe para especificar os arquivos a serem carregados usando um arquivo manifesto é a seguinte:

```
COPY <table_name> FROM 's3://<bucket_name>/<manifest_file>'
authorization
MANIFEST;
```

A tabela a ser carregada já deve existir no banco de dados. Para obter informações sobre como criar uma tabela, consulte [CRIAR TABELA](r_CREATE_TABLE_NEW.md) na referência do SQL. 

Os valores para *autorização* fornecem a autorização da AWS de que o Amazon Redshift precisa para acessar objetos do Amazon S3. Para obter informações sobre as permissões necessárias, consulte [Permissões do IAM para COPY, UNLOAD e CREATE LIBRARY](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions). O método preferido de autenticação é especificar o parâmetro IAM\_ROLE e fornecer o nome de recurso da Amazon (ARN) para uma função do IAM com as permissões necessárias. Para obter mais informações, consulte [Controle de acesso com base em função](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based) . 

Para autenticação usando o parâmetro IAM\_ROLE, substitua {{<aws-account-id>}} e {{<role-name>}} conforme exibido na sintaxe a seguir. 

```
IAM_ROLE 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-name>}}'
```

O seguinte exemplo mostra a autenticação usando uma função do IAM.

```
COPY customer 
FROM 's3://amzn-s3-demo-bucket/mydata' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

Para obter mais informações sobre outras opções de autorização, consulte [Parâmetros de autorização](copy-parameters-authorization.md)

Se você quiser validar seus dados sem realmente carregar a tabela, use a opção NOLOAD com o comando [COPY](r_COPY.md).

O seguinte exemplo mostra as primeiras linhas de dados delimitados por pipe em um arquivo chamado `venue.txt`.

```
1|Toyota Park|Bridgeview|IL|0
2|Columbus Crew Stadium|Columbus|OH|0
3|RFK Stadium|Washington|DC|0
```

Antes de enviar o arquivo para o Amazon S3, divida o arquivo em vários arquivos para que o comando COPY possa carregá-lo usando o processamento paralelo. O número de arquivos deve ser um múltiplo do número de fatias em seu cluster. Divida seus arquivos de dados de carregamento para que os arquivos tenham o mesmo tamanho aproximado, entre 1 MB e 1 GB após a compactação. Para obter mais informações, consulte [Carregar dados de arquivos compactados e não compactados](t_splitting-data-files.md).

Por exemplo, o arquivo `venue.txt` pode ser dividido em quatro arquivos, da seguinte forma:

```
venue.txt.1
venue.txt.2
venue.txt.3
venue.txt.4
```

O seguinte comando COPY carrega a tabela VENUE usando os dados delimitados por pipe nos arquivos de dados com o prefixo “local” no bucket do Amazon S3 `amzn-s3-demo-bucket`. 

**nota**  
O bucket `amzn-s3-demo-bucket` do Amazon S3 nos exemplos a seguir não existe. Para uma amostra dos comandos COPY que usam dados reais em um bucket existente do Amazon S3, consulte [Carregar dados de amostra](https://docs.aws.amazon.com/redshift/latest/gsg/cm-dev-t-load-sample-data.html).

```
COPY venue FROM 's3://amzn-s3-demo-bucket/venue'
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
DELIMITER '|';
```

Se nenhum objeto Amazon S3 com o prefixo “local” existir, o carregamento falhará.

**Topics**
+ [Uso de um manifesto para especificar arquivos de dados](loading-data-files-using-manifest.md)
+ [Carregar arquivos de dados compactados do Amazon S3](t_loading-gzip-compressed-data-files-from-S3.md)
+ [Carregar dados de largura fixa do Amazon S3](t_loading_fixed_width_data.md)
+ [Carregar dados multibyte do Amazon S3](t_loading_unicode_data.md)
+ [Carregar arquivos de dados criptografados do Amazon S3](c_loading-encrypted-files.md)