

 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/). 

# COPY do Amazon S3
<a name="copy-parameters-data-source-s3"></a>

Para carregar dados de arquivos localizados em um ou mais buckets do S3, use a cláusula FROM para indicar como o COPY localiza os arquivos no Amazon S3. Você pode fornecer o caminho do objeto para os arquivos de dados como parte da cláusula FROM ou a localização de um arquivo manifesto que contenha uma lista de caminhos de objeto do Amazon S3. COPY de Amazon S3 usa uma conexão HTTPS. Certifique-se de que os intervalos de IP do S3 sejam adicionados à sua lista de permissões. Para saber mais sobre os intervalos de IP do S3 necessários, consulte [ Isolamento de rede](https://docs.aws.amazon.com//redshift/latest/mgmt/security-network-isolation.html#network-isolation).

**Importante**  
Se os buckets do Amazon S3 que mantêm os arquivos de dados não residirem na mesma região da AWS que o cluster, use o parâmetro [REGION](#copy-region) para especificar a região na qual os dados estão localizados. 

**Topics**
+ [Sintaxe](#copy-parameters-data-source-s3-syntax)
+ [Exemplos](#copy-parameters-data-source-s3-examples)
+ [Parâmetros opcionais](#copy-parameters-data-source-s3-optional-parms)
+ [Parâmetros incompatíveis](#copy-parameters-data-source-s3-unsupported-parms)

## Sintaxe
<a name="copy-parameters-data-source-s3-syntax"></a>

```
FROM { 's3://objectpath' | 's3://manifest_file' }
authorization
| MANIFEST
| ENCRYPTED
| REGION [AS] 'aws-region'
| optional-parameters
```

## Exemplos
<a name="copy-parameters-data-source-s3-examples"></a>

O exemplo a seguir usa um caminho de objeto para carregar dados do Amazon S3. 

```
copy customer
from 's3://amzn-s3-demo-bucket/customer' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

O exemplo a seguir usa um arquivo manifesto para carregar dados do Amazon S3. 

```
copy customer
from 's3://amzn-s3-demo-bucket/cust.manifest' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest;
```

### Parâmetros
<a name="copy-parameters-data-source-s3-parameters"></a>

FROM  <a name="copy-parameters-from"></a>
A origem dos dados a serem carregados. Para obter mais informações sobre a codificação do arquivo do Amazon S3, consulte [Parâmetros da conversão de dados](copy-parameters-data-conversion.md).

's3://*copy\$1from\$1s3\$1objectpath*'   <a name="copy-s3-objectpath"></a>
Especifica o caminho para os objetos do Amazon S3 que contêm os dados por exemplo, `'s3://amzn-s3-demo-bucket/custdata.txt'`. O parâmetro *s3://copy\$1from\$1s3\$1objectpath* pode referenciar um único arquivo ou um conjunto de objetos ou pastas que tenham o mesmo prefixo de chaves. Por exemplo, o nome `custdata.txt` é um prefixo de chaves que referencia um número de arquivos físicos: `custdata.txt`,`custdata.txt.1`, `custdata.txt.2`, `custdata.txt.bak` e assim por diante. O prefixo de chaves também pode referenciar um número de pastas. Por exemplo, `'s3://amzn-s3-demo-bucket/custfolder'` se refere às pastas `custfolder`, `custfolder_1`, `custfolder_2` e assim por diante. Se um prefixo de chaves referencia várias pastas, todos os arquivos nas pastas são carregados. Se um prefixo de chaves corresponder a um arquivo, bem como a uma pasta, como `custfolder.log`, COPY também tentará carregar o arquivo. Se um prefixo de chaves puder resultar na tentativa de COPY de carregar arquivos indesejados, use um arquivo manifesto. Para obter mais informações, consulte [copy_from_s3_manifest_file](#copy-manifest-file), a seguir.   
Se o bucket do S3 que mantém os arquivos de dados não residir na mesma região da AWS que o cluster, use o parâmetro [REGION](#copy-region) para especificar a região na qual os dados estão localizados.
Para obter mais informações, consulte [Carregar dados do Amazon S3](t_Loading-data-from-S3.md).

's3://*copy\$1from\$1s3\$1manifest\$1file*'   <a name="copy-manifest-file"></a>
Especifica a chave de objeto do Amazon S3 para um arquivo manifesto que lista os arquivos de dados a serem carregados. O argumento *'s3://*copy\$1from\$1s3\$1manifest\$1file'** deve referenciar explicitamente um único arquivo, por exemplo, `'s3://amzn-s3-demo-bucket/manifest.txt'`. Ele não pode fazer referência a um prefixo de chaves.  
O manifesto é um arquivo de texto em formato JSON que lista o URL de cada arquivo que deve ser carregado do Amazon S3. O URL inclui o nome do bucket e o caminho de objeto completo do arquivo. Os arquivos especificados no manifesto podem estar em buckets diferentes, mas todos os buckets devem estar na mesma região da AWS que o cluster do Amazon Redshift. Se for listado duas vezes, o arquivo será carregado duas vezes. O exemplo a seguir mostra o JSON de um manifesto que carrega três arquivos.   

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket1/custdata.1","mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket1/custdata.2","mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/custdata.1","mandatory":false}
  ]
}
```
As aspas duplas são obrigatórias e devem ser simples (0x22), e não inclinadas ou "inteligentes". Cada entrada no manifesto também pode incluir um sinalizador `mandatory`. Se `mandatory` estiver definido como `true`, COPY será encerrado se não encontrar o arquivo dessa entrada; do contrário, COPY continuará. O valor padrão para `mandatory` é `false`.   
Ao carregar arquivos de dados em ORC ou em formato Parquet, um campo `meta` é necessário, conforme exibido no seguinte exemplo.  

```
{  
   "entries":[  
      {  
         "url":"s3://amzn-s3-demo-bucket1/orc/2013-10-04-custdata",
         "mandatory":true,
         "meta":{  
            "content_length":99
         }
      },
      {  
         "url":"s3://amzn-s3-demo-bucket2/orc/2013-10-05-custdata",
         "mandatory":true,
         "meta":{  
            "content_length":99
         }
      }
   ]
}
```
O arquivo manifesto não deverá ser criptografado ou compactado, mesmo se as opções ENCRYPTED, GZIP, LZOP, BZIP2 ou ZSTD forem especificadas. COPY retornará um erro se o arquivo de manifesto especificado não for encontrado ou se ele não estiver formado corretamente.   
Se um arquivo manifesto for usado, o parâmetro MANIFEST deverá ser especificado com o comando COPY. Se o parâmetro MANIFEST não for especificado, COPY vai pressupor que o arquivo especificado com FROM seja um arquivo de dados.   
Para obter mais informações, consulte [Carregar dados do Amazon S3](t_Loading-data-from-S3.md).

*authorization*  
O comando COPY precisa de autorização para acessar dados em outro recurso da AWS, inclusive em Amazon S3, Amazon EMR, Amazon DynamoDB e Amazon EC2. É possível conceder essa autorização referenciando um perfil do AWS Identity and Access Management (IAM) anexado ao cluster (controle de acesso baseado em perfil) ou fornecendo as credenciais de acesso de um usuário (controle de acesso baseado em chave). Para mais segurança e a flexibilidade, recomendamos usar o controle de acesso baseado em função do IAM. Para obter mais informações, consulte [Parâmetros de autorização](copy-parameters-authorization.md).

MANIFEST  <a name="copy-manifest"></a>
Especifica que um manifesto é usado para identificar os arquivos de dados a serem carregados do Amazon S3. Se o parâmetro MANIFEST for usado, COPY carregará dados dos arquivos listados no manifesto referenciado por *'s3://copy\$1from\$1s3\$1manifest\$1file'*. Se o arquivo de manifesto não for encontrado ou não estiver formado corretamente, ocorrerá uma falha no COPY. Para obter mais informações, consulte [Uso de um manifesto para especificar arquivos de dados](loading-data-files-using-manifest.md).

ENCRYPTED  <a name="copy-encrypted"></a>
Uma cláusula que especifica que os arquivos de entrada no Amazon S3 são criptografados com criptografia do lado do cliente com chaves gerenciadas pelo cliente. Para obter mais informações, consulte [Carregar arquivos de dados criptografados do Amazon S3](c_loading-encrypted-files.md). Não especifique ENCRYPTED se arquivos de entrada forem criptografados usando-se criptografia no lado do servidor do Amazon S3 (SSE-KMS ou SSE-S3). COPY lê arquivos criptografados no lado do servidor automaticamente.  
Se você especificar o parâmetro ENCRYPTED, também deverá especificar o parâmetro [MASTER_SYMMETRIC_KEY](#copy-master-symmetric-key) ou incluir o valor **master\$1symmetric\$1key** na string [Usar o parâmetro CREDENTIALS](copy-parameters-authorization.md#copy-credentials).  
Se os arquivos criptografados estiverem em formato compactado, adicione o parâmetro GZIP, LZOP, BZIP2 ou ZSTD.  
Arquivos manifesto e JSONPaths não devem ser criptografados, mesmo se a opção ENCRYPTED for especificada.

MASTER\$1SYMMETRIC\$1KEY '*root\$1key*'  <a name="copy-master-symmetric-key"></a>
A chave simétrica raiz que foi usada para criptografar arquivos de dados no Amazon S3. Se MASTER\$1SYMMETRIC\$1KEY for especificado, o parâmetro [ENCRYPTED](#copy-encrypted) também deverá ser especificado. MASTER\$1SYMMETRIC\$1KEY não pode ser usado com o parâmetro CREDENTIALS. Para obter mais informações, consulte [Carregar arquivos de dados criptografados do Amazon S3](c_loading-encrypted-files.md).  
Se os arquivos criptografados estiverem em formato compactado, adicione o parâmetro GZIP, LZOP, BZIP2 ou ZSTD.

REGION [AS] '*aws-region*'  <a name="copy-region"></a>
Especifica a região da AWS onde os dados de origem estão localizados. REGION é necessário para COPY em um bucket do Amazon S3 ou uma tabela do DynamoDB quando o recurso da AWS que contém os dados não está na mesma região que o cluster do Amazon Redshift.   
O valor de *aws\$1region* deve combinar com uma região listada na tabela [regiões e endpoints do Amazon Redshift](https://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region).  
Se o parâmetro REGION for especificado, todos os recursos, inclusive um arquivo manifesto ou vários buckets do Amazon S3, devem estar localizados na região especificada.   
A transferência de dados entre regiões incorre em cobranças adicionais em relação ao bucket do Amazon S3 ou à tabela do DynamoDB que contém dados. Para ter mais informações sobre preço, consulte as **transferências de dados de saída do Amazon S3 para outra região da AWS** na página [Preços do Amazon S3](https://aws.amazon.com/s3/pricing/) e as **transferências de dados de saída** na página [Preço do Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing/). 
Por padrão, COPY pressupõe que os dados estejam localizados na mesma região do cluster do Amazon Redshift. 

## Parâmetros opcionais
<a name="copy-parameters-data-source-s3-optional-parms"></a>

Você também pode especificar os seguintes parâmetros com COPY do Amazon S3: 
+ [Opções de mapeamento da coluna](copy-parameters-column-mapping.md)
+ [Parâmetros de formato de dados](copy-parameters-data-format.md#copy-data-format-parameters)
+ [Parâmetros da conversão de dados](copy-parameters-data-conversion.md)
+ [Operações de carregamento de dados](copy-parameters-data-load.md)

## Parâmetros incompatíveis
<a name="copy-parameters-data-source-s3-unsupported-parms"></a>

Você não pode usar os seguintes parâmetros com COPY do Amazon S3: 
+ SSH
+ READRATIO