

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

# Carregar dados do Amazon EMR
<a name="loading-data-from-emr"></a>

Você pode usar o comando COPY para carregar dados em paralelo de um cluster do Amazon EMR configurado para gravar arquivos de texto no Sistema de Arquivos Distribuído do Hadoop (HDFS) do cluster na forma de arquivos de largura fixa, arquivos delimitados por caracteres, arquivos CSV ou com formato JSON.

## Processo de carregamento de dados do Amazon EMR
<a name="load-from-emr-process"></a>

Esta seção o orienta no processo de carregamento de dados de um cluster Amazon EMR. As seções a seguir fornecem os detalhes de que você precisa para realizar cada etapa.
+ **[Etapa 1: Configurar permissões do IAM](#load-from-emr-steps-configure-iam)**

  Os usuários que criam o cluster do Amazon EMR e executam o comando COPY do Amazon Redshift devem ter as permissões necessárias.
+ **[Etapa 2: Criar um cluster do Amazon EMR](#load-from-emr-steps-create-cluster)**

  Configure o cluster para enviar arquivos de texto para o Hadoop Distributed File System (HDFS). Você precisará do ID do cluster do Amazon EMR e do DNS público principal do cluster (o endpoint da instância do Amazon EC2 que hospeda o cluster). 
+ **[Etapa 3: Recuperar a chave pública do cluster do Amazon Redshift e os endereços IP do nó do cluster](#load-from-emr-steps-retrieve-key-and-ips)**

  A chave pública permite que os nós de cluster do Amazon Redshift estabeleçam conexões SSH com os hosts. Você usará o endereço IP de cada nó do cluster para configurar os grupos de segurança do host para permitir o acesso de seu cluster Amazon Redshift usando esses endereços IP. 
+ **[Etapa 4: Adicionar a chave pública do cluster do Amazon Redshift a cada arquivo de chaves autorizadas do host do Amazon EC2](#load-from-emr-steps-add-key-to-host)** 

  Você adiciona a chave pública do cluster do Amazon Redshift ao arquivo de chaves autorizadas do host para que o host reconheça o cluster do Amazon Redshift e aceite a conexão SSH. 
+ **[Etapa 5: Configurar os hosts para aceitar todos os endereços IP do cluster do Amazon Redshift](#load-from-emr-steps-configure-security-groups)** 

  Modifique os grupos de segurança da instância do Amazon EMR para adicionar regras de entrada para aceitar os endereços IP do Amazon Redshift.
+ **[Etapa 6: Executar o comando COPY para carregar os dados](#load-from-emr-steps-run-copy)**

  De um banco de dados do Amazon Redshift, execute o comando COPY para carregar os dados em uma tabela do Amazon Redshift. 

## Etapa 1: Configurar permissões do IAM
<a name="load-from-emr-steps-configure-iam"></a>

Os usuários que criam o cluster do Amazon EMR e executam o comando COPY do Amazon Redshift devem ter as permissões necessárias.

**Para configurar permissões do IAM**

1. Adicione as permissões a seguir para o usuário que criará o cluster do Amazon EMR.

   ```
   ec2:DescribeSecurityGroups
   ec2:RevokeSecurityGroupIngress
   ec2:AuthorizeSecurityGroupIngress
   redshift:DescribeClusters
   ```

1. Adicione a seguinte permissão para o usuário ou perfil do IAM que executará o comando COPY.

   ```
   elasticmapreduce:ListInstances
   ```

1. Adicione a permissão a seguir à função do IAM do cluster do Amazon EMR.

   ```
   redshift:DescribeClusters
   ```

## Etapa 2: Criar um cluster do Amazon EMR
<a name="load-from-emr-steps-create-cluster"></a>

O comando COPY carrega dados de arquivos no Amazon EMR Hadoop Distributed File System (HDFS). Ao criar o cluster Amazon EMR, configure-o para enviar arquivos de dados para o HDFS do cluster.

**Para criar um cluster do Amazon EMR**

1. Crie um cluster do Amazon EMR na região da AWS como cluster do Amazon Redshift. 

   Se o cluster do Amazon Redshift estiver em uma VPC, o cluster do Amazon EMR deverá estar no mesmo grupo de VPC. Se o cluster do Amazon Redshift usa o modo EC2-Classic (ou seja, não está em um VPC), o cluster do Amazon EMR também deve usar o modo EC2-Classic. Para obter mais informações, consulte “[Gerenciamento de clusters em uma VPC](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-vpc.html)” no *Guia de gerenciamento de clusters do Amazon Redshift*.

1. Configure o cluster para enviar arquivos de dados para o HDFS do cluster. Os nomes de arquivos do HDFS não devem conter asteriscos (\$1) ou pontos de interrogação (?).
**Importante**  
Os nomes de arquivos não devem conter asteriscos ( \$1 ) ou pontos de interrogação ( ? ).

1. Especifique **No** (Não) para a opção **Auto-terminate** (Terminar automaticamente) na configuração de cluster do Amazon EMR para que o cluster permaneça disponível enquanto o comando COPY for executado. 
**Importante**  
Se um dos arquivos de dados for alterado ou excluído antes de COPY ser concluído, você poderá ter resultados inesperados ou a operação COPY poderá falhar. 

1. Observe o ID do cluster e o DNS público primário (o endpoint da instância do Amazon EC2 que hospeda o cluster). Você usará essas informações em etapas subsequentes. 

## Etapa 3: Recuperar a chave pública do cluster do Amazon Redshift e os endereços IP do nó do cluster
<a name="load-from-emr-steps-retrieve-key-and-ips"></a>

Você usará o endereço IP de cada nó do cluster para configurar os grupos de segurança do host para permitir o acesso de seu cluster Amazon Redshift usando esses endereços IP.

**Para recuperar a chave pública do cluster do Amazon Redshift e os endereços IP do nó do cluster para o seu cluster usando o console**

1. Acesse o Console de Gerenciamento do Amazon Redshift. 

1. No painel de navegação, selecione o link **Clusters**. 

1. Selecione seu cluster na lista. 

1. Localize o grupo **Configurações de ingestão do SSH**. 

   Observe a **Chave pública do cluster** e **Endereços IP dos nós**. Você vai usá-los em etapas subsequentes.   
![\[Captura de tela do grupo Configurações de ingestão SSH mostrando a chave pública do cluster e os endereços IP do nó.\]](http://docs.aws.amazon.com/pt_br/redshift/latest/dg/images/copy-from-ssh-console-2.png)

   Você usará os endereços IP privados na Etapa 3 para configurar o host do Amazon EC2 para aceitar a conexão do Amazon Redshift. 

Para recuperar a chave pública do cluster e os endereços IP do nó do cluster para seu cluster usando a CLI do Amazon Redshift, execute o comando describe-clusters. Por exemplo:

```
aws redshift describe-clusters --cluster-identifier <cluster-identifier> 
```

A resposta incluirá um valor de ClusterPublicKey e a lista de endereços IP privados e públicos, semelhante ao seguinte:

```
{
    "Clusters": [
        {
            "VpcSecurityGroups": [], 
            "ClusterStatus": "available", 
            "ClusterNodes": [
                {
                    "PrivateIPAddress": "10.nnn.nnn.nnn", 
                    "NodeRole": "LEADER", 
                    "PublicIPAddress": "10.nnn.nnn.nnn"
                }, 
                {
                    "PrivateIPAddress": "10.nnn.nnn.nnn", 
                    "NodeRole": "COMPUTE-0", 
                    "PublicIPAddress": "10.nnn.nnn.nnn"
                }, 
                {
                    "PrivateIPAddress": "10.nnn.nnn.nnn", 
                    "NodeRole": "COMPUTE-1", 
                    "PublicIPAddress": "10.nnn.nnn.nnn"
                }
            ], 
            "AutomatedSnapshotRetentionPeriod": 1, 
            "PreferredMaintenanceWindow": "wed:05:30-wed:06:00", 
            "AvailabilityZone": "us-east-1a", 
            "NodeType": "dc2.large", 
            "ClusterPublicKey": "ssh-rsa AAAABexamplepublickey...Y3TAl Amazon-Redshift", 
             ...
             ...
}
```

Para recuperar a chave pública do cluster e os endereços IP do nó do cluster para o seu cluster usando a API do Amazon Redshift, use a ação `DescribeClusters`. Para obter mais informações, consulte [describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/redshift/describe-clusters.html) no *Guia de CLI do Amazon Redshift* ou [DescribeClusters](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html) no Guia de API do Amazon Redshift. 

## Etapa 4: Adicionar a chave pública do cluster do Amazon Redshift a cada arquivo de chaves autorizadas do host do Amazon EC2
<a name="load-from-emr-steps-add-key-to-host"></a>

Você adiciona a chave pública do cluster ao arquivo de chaves autorizadas de cada host para todos os nós do cluster do Amazon EMR para que os hosts reconheçam o Amazon Redshift e aceitem a conexão SSH. 

**Para adicionar a chave pública do cluster do Amazon Redshift ao arquivo de chaves autorizadas do host**

1. Acesse o host usando uma conexão SSH. 

   Para obter informações sobre como se conectar a uma instância usando SSH, consulte [Conectar-se à instância do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-connect-to-instance-linux.html) no *Manual do usuário do Amazon EC2*. 

1. Copie a chave pública do Amazon Redshift do console ou do texto de resposta da CLI. 

1. Copie e cole os conteúdos da chave pública no arquivo `/home/<ssh_username>/.ssh/authorized_keys` no host. Inclua a string completa com o prefixo “`ssh-rsa`” e o sufixo “`Amazon-Redshift`”. Por exemplo: 

   ```
   ssh-rsa AAAACTP3isxgGzVWoIWpbVvRCOzYdVifMrh… uA70BnMHCaMiRdmvsDOedZDOedZ Amazon-Redshift
   ```

## Etapa 5: Configurar os hosts para aceitar todos os endereços IP do cluster do Amazon Redshift
<a name="load-from-emr-steps-configure-security-groups"></a>

 Para permitir o tráfego de entrada para as instâncias do host, edite o grupo de segurança e adicione uma regra de entrada para cada nó de cluster do Amazon Redshift. Para **Tipo**, selecione SSH com protocolo TCP na porta 22. Em **Source** (Fonte), insira os endereços IP privados do nó do cluster do Amazon Redshift que você recuperou em [Etapa 3: Recuperar a chave pública do cluster do Amazon Redshift e os endereços IP do nó do cluster](#load-from-emr-steps-retrieve-key-and-ips). Para obter informações sobre como adicionar regras a um grupo de segurança do Amazon EC2, consulte [Autorizar tráfego de entrada para as instâncias](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html) no *Manual do usuário do Amazon EC2*. 

## Etapa 6: Executar o comando COPY para carregar os dados
<a name="load-from-emr-steps-run-copy"></a>

Execute um comando [COPY](r_COPY.md) para se conectar ao cluster do Amazon EMR e carregar os dados em uma tabela do Amazon Redshift. O cluster do Amazon EMR deve continuar em execução até que o comando COPY seja concluído. Por exemplo, não configure o encerramento automático do cluster. 

**Importante**  
Se um dos arquivos de dados for alterado ou excluído antes de COPY ser concluído, você poderá ter resultados inesperados ou a operação COPY poderá falhar.

No comando COPY, especifique o ID do cluster Amazon EMR e o caminho do arquivo HDFS e o nome do arquivo. 

```
COPY sales
FROM 'emr://myemrclusterid/myoutput/part*' CREDENTIALS 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

Você pode usar caracteres curinga asterisco ( `*` ) e ponto de interrogação ( `?` ) como parte do argumento do nome do arquivo. Por exemplo, `part*` carrega os arquivos `part-0000`, `part-0001` e assim por diante. Se você especificar somente um nome de pasta, COPY tentará carregar todos os arquivos na pasta.

**Importante**  
Se você usar caracteres curinga ou usar somente o nome da pasta, certifique-se de que nenhum arquivo indesejado seja carregado ou o comando COPY falhará. Por exemplo, alguns processos podem gravar um arquivo de log na pasta de saída.