

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando um banco de dados do Amazon Redshift como destino para AWS Database Migration Service
<a name="CHAP_Target.Redshift"></a>

Você pode migrar dados para bancos de dados do Amazon Redshift usando o. AWS Database Migration Service O Amazon Redshift é um serviço de data warehouse totalmente gerenciado e em escala de petabytes na Nuvem . Com um banco de dados Amazon Redshift como destino, é possível migrar dados de todos os outros bancos de dados de origem compatíveis.

Você pode usar o Amazon Redshift Serverless como destino para. AWS DMS Para obter mais informações, consulte [Usando AWS DMS com o Amazon Redshift Serverless como destinoAmazon Redshift Sem Servidor](#CHAP_Target.Redshift.RSServerless) a seguir.

 O cluster do Amazon Redshift deve estar na mesma AWS conta e na mesma AWS região da instância de replicação. 

Durante uma migração de banco de dados para o Amazon Redshift, AWS DMS primeiro move os dados para um bucket do Amazon S3. Quando os arquivos residem em um bucket do Amazon S3, eles são AWS DMS transferidos para as tabelas adequadas no armazém de dados do Amazon Redshift. AWS DMS cria o bucket do S3 na mesma AWS região do banco de dados do Amazon Redshift. A instância AWS DMS de replicação deve estar localizada na mesma AWS região. 

Se você usa a API AWS CLI ou DMS para migrar dados para o Amazon Redshift, configure AWS Identity and Access Management uma função (IAM) para permitir o acesso ao S3. Para obter mais informações sobre a criação do perfil do IAM, consulte [Criação das funções do IAM para usar com AWS DMS](security-iam.md#CHAP_Security.APIRole).

O endpoint do Amazon Redshift fornece automação completa para:
+ Geração de schema e mapeamento de tipo de dados
+ Carregamento completo de tabelas de banco de dados de origem
+ Carregamento incremental de alterações feitas a tabelas de origem
+ Aplicação de alterações de schema em Data Definition Language (DDL - Linguagem de definição de dados) feitas a tabelas de origem
+ Sincronização entre processos de carregamento completo e de captura de dados de alteração (CDC).

AWS Database Migration Service suporta operações de carga total e processamento de alterações. AWS DMS lê os dados do banco de dados de origem e cria uma série de arquivos de valores separados por vírgula (.csv). Para operações de carga total, AWS DMS cria arquivos para cada tabela. AWS DMS em seguida, copia os arquivos de tabela de cada tabela em uma pasta separada no Amazon S3. Quando os arquivos são carregados para o Amazon S3, AWS DMS envia um comando de cópia e os dados nos arquivos são copiados para o Amazon Redshift. Para operações de processamento de alterações, AWS DMS copia as alterações líquidas nos arquivos.csv. AWS DMS em seguida, carrega os arquivos de alteração líquida para o Amazon S3 e copia os dados para o Amazon Redshift.

Para obter detalhes adicionais sobre como trabalhar com o Amazon Redshift como alvo AWS DMS, consulte as seguintes seções: 

**Topics**
+ [Pré-requisitos para usar um banco de dados do Amazon Redshift como destino para AWS Database Migration Service](#CHAP_Target.Redshift.Prerequisites)
+ [Privilégios necessários para utilizar o Redshift como destino](#CHAP_Target.Redshift.Privileges)
+ [Limitações no uso do Amazon Redshift como alvo para AWS Database Migration Service](#CHAP_Target.Redshift.Limitations)
+ [Configurando um banco de dados do Amazon Redshift como destino para AWS Database Migration Service](#CHAP_Target.Redshift.Configuration)
+ [Usando o roteamento de VPC aprimorado com o Amazon Redshift como destino para AWS Database Migration Service](#CHAP_Target.Redshift.EnhancedVPC)
+ [Criação e uso de AWS KMS chaves para criptografar dados de destino do Amazon Redshift](#CHAP_Target.Redshift.KMSKeys)
+ [Configurações de endpoint ao usar o Amazon Redshift como destino para AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib)
+ [Utilizar uma chave de criptografia de dados e um bucket do Amazon S3 como armazenamento intermediário](#CHAP_Target.Redshift.EndpointSettings)
+ [Configurações de tarefas de vários threads para o Amazon Redshift](#CHAP_Target.Redshift.ParallelApply)
+ [Tipos de dados de destino do Amazon Redshift](#CHAP_Target.Redshift.DataTypes)
+ [Usando AWS DMS com o Amazon Redshift Serverless como destino](#CHAP_Target.Redshift.RSServerless)

## Pré-requisitos para usar um banco de dados do Amazon Redshift como destino para AWS Database Migration Service
<a name="CHAP_Target.Redshift.Prerequisites"></a>

A lista a seguir descreve os pré-requisitos necessários para trabalhar com o Amazon Redshift como destino para a migração de dados:
+ Use o AWS Management Console para iniciar um cluster do Amazon Redshift. Observe as informações básicas sobre sua AWS conta e seu cluster do Amazon Redshift, como sua senha, nome de usuário e nome do banco de dados. Esses valores são necessários para criar o endpoint de destino do Amazon Redshift. 
+ O cluster do Amazon Redshift deve estar na mesma AWS conta e na mesma AWS região da instância de replicação.
+ A instância AWS DMS de replicação precisa de conectividade de rede com o endpoint do Amazon Redshift (nome do host e porta) que seu cluster usa.
+ AWS DMS usa um bucket do Amazon S3 para transferir dados para o banco de dados do Amazon Redshift. Para o AWS DMS criar um bucket, o console usa um perfil do IAM, `dms-access-for-endpoint`. Se você usa a API AWS CLI ou DMS para criar uma migração de banco de dados com o Amazon Redshift como banco de dados de destino, você deve criar essa função do IAM. Para obter mais informações sobre a criação do perfil, consulte [Criação das funções do IAM para usar com AWS DMS](security-iam.md#CHAP_Security.APIRole). 
+ AWS DMS converte BLOBs, CLOBs, e NCLOBs em um VARCHAR na instância de destino do Amazon Redshift. O Amazon Redshift não oferece suporte a tipos de dados VARCHAR maiores que 64 KB, então você não pode armazenar dados tradicionais no Amazon LOBs Redshift. 
+ Defina a configuração da tarefa de metadados de destino como `true` for [BatchApplyEnabled](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md) AWS DMS para lidar com alterações nas tabelas de destino do Amazon Redshift durante o CDC. É necessária uma chave primária na tabela de origem e de destino. Sem uma chave primária, as alterações são aplicadas instrução por instrução. E isso pode afetar negativamente o desempenho da tarefa durante a CDC, casando latência de destino e afetando a fila de confirmação do cluster. 
+ Quando a segurança por linha está habilitada nas tabelas no Redshift, você deve conceder as permissões apropriadas a todos os seus usuários do DMS.

## Privilégios necessários para utilizar o Redshift como destino
<a name="CHAP_Target.Redshift.Privileges"></a>

Utilize o comando GRANT para definir os privilégios de acesso do usuário ou do grupo de usuários. Os privilégios incluem opções de acesso como leitura de dados em tabelas e exibições, gravação de dados e criação de tabelas. Para obter mais informações sobre como utilizar GRANT com o Amazon Redshift, consulte [GRANT](https://docs.aws.amazon.com//redshift/latest/dg/r_GRANT.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*. 

Veja a seguir a sintaxe para fornecer privilégios específicos para uma tabela, banco de dados, esquema, perfil, procedimento ou privilégios em nível de linguagem em tabelas e visualizações do Amazon Redshift.

```
GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] }
    ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] }
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE db_name [, ...]
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schema_name [, ...]
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON { FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] | ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON { PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] | ALL PROCEDURES IN SCHEMA schema_name [, ...] }
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

GRANT USAGE 
    ON LANGUAGE language_name [, ...]
    TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]
```

A seguir está a sintaxe para privilégios de nível de coluna em tabelas e visualizações do Amazon Redshift. 

```
GRANT { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }
     ON { [ TABLE ] table_name [, ...] }
     TO { username | GROUP group_name | PUBLIC } [, ...]
```

A seguir está a sintaxe para o privilégio ASSUMEROLE concedido a usuários e grupos com um perfil especificado.

```
GRANT ASSUMEROLE
    ON { 'iam_role' [, ...] | ALL }
    TO { username | GROUP group_name | PUBLIC } [, ...]
    FOR { ALL | COPY | UNLOAD } [, ...]
```

## Limitações no uso do Amazon Redshift como alvo para AWS Database Migration Service
<a name="CHAP_Target.Redshift.Limitations"></a>

As seguintes limitações se aplicam ao utilizar um banco de dados Amazon Redshift como destino:
+ Não ative o versionamento para o bucket do S3 utilizado como armazenamento intermediário para o destino do Amazon Redshift. Se o versionamento do S3 for necessário, utilize políticas de ciclo de vida para excluir ativamente as versões antigas. Caso contrário, é possível encontrar falhas na conexão de teste de endpoint devido ao tempo limite de uma chamada `list-object` do S3. Para criar uma política de ciclo de vida para um bucket do S3, consulte [Gerenciar o ciclo de vida do armazenamento](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). Para excluir a versão de um objeto do S3, consulte [Excluir versões de objetos de um bucket com versionamento ativado](https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjectVersions.html).
+ O DDL a seguir não tem suporte:

  ```
  ALTER TABLE table name MODIFY COLUMN column name data type;
  ```
+  AWS DMS não é possível migrar ou replicar alterações em um esquema com um nome que comece com sublinhado (\$1). Se você tiver esquemas com um nome que começa com um sublinhado, utilize transformações de mapeamento para renomear o esquema no destino. 
+  O Amazon Redshift não oferece suporte a VARCHARs mais de 64 KB. LOBs dos bancos de dados tradicionais não podem ser armazenados no Amazon Redshift.
+  A aplicação de uma instrução DELETE a uma tabela com uma chave primária de várias colunas não tem suporte quando qualquer um dos nomes de coluna da chave primária usa uma palavra reservada. Acesse [aqui](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) para ver uma lista de palavras reservadas do Amazon Redshift.
+ Poderá haver problemas de desempenho se o sistema de origem executar operações UPDATE na chave primária de uma tabela de origem. Esses problemas de desempenho ocorrem ao aplicar alterações no destino. Isso ocorre porque as operações UPDATE (e DELETE) dependem do valor da chave primária para identificar a linha de destino. Se você atualizar a chave primária de uma tabela de origem, o log de tarefas conterá mensagens, como as seguintes:

  ```
  Update on table 1 changes PK to a PK that was previously updated in the same bulk update.
  ```
+ O DMS não é compatível com nomes de DNS personalizados ao configurar um endpoint para um cluster do Redshift, e você precisa utilizar o nome de DNS fornecido pela Amazon. Como o cluster do Amazon Redshift deve estar na mesma AWS conta e região da instância de replicação, a validação falhará se você usar um endpoint de DNS personalizado.
+ O Amazon Redshift tem um tempo limite padrão de sessão ociosa de 4 horas. Quando não há nenhuma atividade na tarefa de replicação do DMS, o Redshift desconecta a sessão após 4 horas. Os erros podem resultar da incapacidade do DMS de se conectar e da possível necessidade de reinicialização. Como solução alternativa, defina um limite de SESSION TIMEOUT maior que 4 horas para o usuário de replicação do DMS. Ou consulte a descrição de [ALTER USER](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html) no *Guia do desenvolvedor do banco de dados Amazon Redshift*.
+ Quando AWS DMS replica os dados da tabela de origem sem uma chave primária ou exclusiva, a latência do CDC pode ser alta, resultando em um nível de desempenho inaceitável.
+ Não é possível truncar partições durante a replicação de CDC da origem do Oracle para o destino do Redshift.
+ Registros duplicados podem aparecer nas tabelas de destino porque o Amazon Redshift não impõe chaves primárias e o AWS DMS pode reproduzir o CDC quando uma tarefa é retomada. Para evitar duplicatas, use a `ApplyErrorInsertPolicy=INSERT_RECORD` configuração. Para obter mais informações, consulte [Configurações de tarefa de tratamento de erros](CHAP_Tasks.CustomizingTasks.TaskSettings.ErrorHandling.md). Como alternativa, você pode implementar procedimentos de detecção de duplicatas e limpeza pós-migração em nível de aplicativo.

## Configurando um banco de dados do Amazon Redshift como destino para AWS Database Migration Service
<a name="CHAP_Target.Redshift.Configuration"></a>

AWS Database Migration Service deve ser configurado para funcionar com a instância do Amazon Redshift. A tabela a seguir descreve as propriedades de configuração disponíveis para o endpoint do Amazon Redshift.


| Propriedade | Description | 
| --- | --- | 
| servidor | O nome do cluster do Amazon Redshift que você está utilizando. | 
| porta | O número da porta do Amazon Redshift. O valor padrão é 5439. | 
| username | Um nome de usuário do Amazon Redshift de um usuário registrado. | 
| password | A senha do usuário nomeado na propriedade username. | 
| banco de dados | O nome do data warehouse (serviço) do Amazon Redshift com o qual você está trabalhando. | 

Se quiser adicionar atributos de string de conexão adicional ao endpoint do Amazon Redshift, especifique os atributos `maxFileSize` e `fileTransferUploadStreams`. Para obter mais informações sobre esses atributos, consulte [Configurações de endpoint ao usar o Amazon Redshift como destino para AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib).

## Usando o roteamento de VPC aprimorado com o Amazon Redshift como destino para AWS Database Migration Service
<a name="CHAP_Target.Redshift.EnhancedVPC"></a>

Se você utilizar o roteamento aprimorado da VPC com o destino do Amazon Redshift, todo o tráfego de COPY entre o cluster do Amazon Redshift e os repositórios de dados trafegarão pela VPC. Como o roteamento aprimorado da VPC afeta a maneira como o Amazon Redshift acessa outros recursos, os comandos COPY poderão falhar se você não configurar a VPC corretamente.

AWS DMS pode ser afetado por esse comportamento porque ele usa o comando COPY para mover dados no S3 para um cluster do Amazon Redshift.

A seguir estão as etapas AWS DMS necessárias para carregar dados em um destino do Amazon Redshift:

1. AWS DMS copia dados da origem para arquivos.csv no servidor de replicação.

1. AWS DMS usa o AWS SDK para copiar os arquivos.csv em um bucket do S3 na sua conta.

1. AWS DMS em seguida, usa o comando COPY no Amazon Redshift para copiar dados dos arquivos.csv no S3 para uma tabela apropriada no Amazon Redshift.

Se o Enhanced VPC Routing não estiver habilitado, o Amazon Redshift roteará o tráfego pela Internet, incluindo o tráfego para outros serviços dentro da rede. AWS Se o recurso não estiver habilitado, não será necessário configurar o caminho de rede. Se o recurso estiver habilitado, você deverá criar especificamente um caminho de rede entre o cluster do VPC e os recursos de dados. Para obter mais informações sobre a configuração necessária, consulte [Roteamento aprimorado da VPC](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) na documentação do Amazon Redshift. 

## Criação e uso de AWS KMS chaves para criptografar dados de destino do Amazon Redshift
<a name="CHAP_Target.Redshift.KMSKeys"></a>

É possível criptografar os dados de destino enviados ao Amazon S3 antes que sejam copiados no Amazon Redshift. Para fazer isso, você pode criar e usar AWS KMS chaves personalizadas. É possível utilizar a chave criada para criptografar os dados de destino utilizando um dos seguintes mecanismos ao criar o endpoint de destino do Amazon Redshift:
+ Utilize a opção a seguir ao executar o comando `create-endpoint` utilizando a AWS CLI.

  ```
  --redshift-settings '{"EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "your-kms-key-ARN"}'
  ```

  Aqui, `your-kms-key-ARN` é o nome de recurso da Amazon (ARN) de sua chave do KMS. Para obter mais informações, consulte [Utilizar uma chave de criptografia de dados e um bucket do Amazon S3 como armazenamento intermediário](#CHAP_Target.Redshift.EndpointSettings).
+ Defina o atributo de conexão adicional `encryptionMode` como o valor `SSE_KMS`, e o atributo de conexão adicional `serverSideEncryptionKmsKeyId` como o ARN de sua chave do KMS. Para obter mais informações, consulte [Configurações de endpoint ao usar o Amazon Redshift como destino para AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib).

Para criptografar dados de destino do Amazon Redshift usando uma chave KMS, você precisa de AWS Identity and Access Management uma função (IAM) que tenha permissões para acessar os dados do Amazon Redshift. Esse perfil do IAM é acessado em uma política (uma política de chaves) anexada à chave de criptografia criada. É possível fazer isso no console do IAM criando o seguinte:
+ Uma função do IAM com uma política AWS gerenciada.
+ A chave do KMS com uma política de chaves que faz referência a esse perfil.

Os procedimentos a seguir descrevem como fazer isso.

**Para criar uma função do IAM com a política AWS gerenciada necessária**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**. A página **Roles (Funções)** é aberta.

1. Selecione **Criar perfil**. A página **Create role (Criar função)** é aberta.

1. Com o **Serviço da AWS ** escolhido como uma entidade confiável, escolha **DMS** como o serviço que utilizará esse perfil.

1. Escolha **Próximo: Permissões**. A página **Attach permissions policies (Anexar políticas de permissões)** é exibida.

1. Encontre e selecione a política `AmazonDMSRedshiftS3Role`.

1. Escolha **Próximo: tags**. A página **Adicionar tags** é exibida. Aqui, você pode adicionar todas as tags desejadas.

1. Escolha **Next: Review (Próximo: revisar)** e reveja os resultados.

1. Se as configurações forem o que você precisa, insira um nome para o perfil (por exemplo, `DMS-Redshift-endpoint-access-role`), e qualquer descrição adicional e escolha **Criar função**. A página **Roles (Funções)** é aberta com uma mensagem indicando que o perfil foi criado.

Agora, você criou o perfil para acessar os recursos do Amazon Redshift para criptografia com um nome especificado, por exemplo `DMS-Redshift-endpoint-access-role`.

**Para criar uma chave de AWS KMS criptografia com uma política de chaves que faça referência à sua função do IAM**
**nota**  
Para obter mais informações sobre como AWS DMS funciona com chaves de AWS KMS criptografia, consulte[Configurando uma chave de criptografia e especificando permissões AWS KMS](CHAP_Security.md#CHAP_Security.EncryptionKey).

1. Faça login no console Console de gerenciamento da AWS e abra o AWS Key Management Service (AWS KMS) em [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Para alterar o Região da AWS, use o seletor de região no canto superior direito da página.

1. No painel de navegação, escolha **Chaves gerenciadas pelo cliente**.

1. Escolha **Criar chave**. A página **Configure key (Configurar chave)** é aberta.

1. Para **Key type (Tipo de chave)**, escolha **Symmetric (Simétrica)**.
**nota**  
Ao criar essa chave, você só pode criar uma chave simétrica, porque todos os AWS serviços, como o Amazon Redshift, funcionam somente com chaves de criptografia simétricas.

1. Escolha **Opções avançadas**. Para **Key material origin (Origem do material da chave)**, certifique-se de que o **KMS** está escolhido e escolha **Next (Próximo)**. A página **Add labels (Adicionar rótulos)** é aberta.

1. Em **Create alias and description (Criar alias e descrição)**, insira um alias para a chave (por exemplo, `DMS-Redshift-endpoint-encryption-key`) e qualquer descrição adicional.

1. Em **Tags**, adicione todas as tags desejadas para ajudar a identificar a chave e controlar seu uso e escolha **Next (Próximo)**. A página **Define key administrative permissions (Definir permissões administrativas de chaves)** é aberta mostrando uma lista de usuários e funções que podem ser escolhidos.

1. Adicione os usuários e as funções desejados para gerenciar a chave. Certifique-se de que esses usuários e funções tenham as permissões necessárias para gerenciar a chave. 

1. Em **Key deletion (Exclusão de chaves)**, escolha se os administradores de chaves podem excluir a chave e escolha **Next (Próximo)**. A página **Define key usage permissions (Definir permissões de uso de chaves)** é aberta mostrando uma lista adicional de usuários e funções que podem ser escolhidos.

1. Para **Esta conta**, escolha os usuários disponíveis que deseja que executem operações criptográficas em destinos do Amazon Redshift. Escolha também o perfil criado anteriormente em **Perfis** para ativar o acesso à criptografia dos objetos de destino do Amazon Redshift, por exemplo, `DMS-Redshift-endpoint-access-role`).

1. Se você quiser adicionar outras contas não listadas para ter esse mesmo acesso, em **Outras AWS contas**, escolha **Adicionar outra AWS conta** e escolha **Avançar**. A página **Review and edit key policy (Rever e editar política de chave)** é aberta mostrando o JSON da política de chave que você pode revisar e editar digitando no JSON existente. Aqui, a política de chave que faz referência à função e aos usuários é mostrada (por exemplo, `Admin` e `User1`) que você escolheu na etapa anterior. Você também pode ver as diferentes ações de chaves permitidas para as várias entidades principais (usuários e perfis), conforme mostrado no exemplo a seguir.

------
#### [ JSON ]

****  

   ```
   {
       "Id": "key-consolepolicy-3",
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:root"
                   ]
               },
               "Action": "kms:*",
               "Resource": "*"
           },
           {
               "Sid": "Allow access for Key Administrators",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:role/Admin"
                   ]
               },
               "Action": [
                   "kms:Create*",
                   "kms:Describe*",
                   "kms:Enable*",
                   "kms:List*",
                   "kms:Put*",
                   "kms:Update*",
                   "kms:Revoke*",
                   "kms:Disable*",
                   "kms:Get*",
                   "kms:Delete*",
                   "kms:TagResource",
                   "kms:UntagResource",
                   "kms:ScheduleKeyDeletion",
                   "kms:CancelKeyDeletion"
               ],
               "Resource": "*"
           },
           {
               "Sid": "Allow use of the key",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:role/DMS-Redshift-endpoint-access-role",
                       "arn:aws:iam::111122223333:role/Admin",
                       "arn:aws:iam::111122223333:role/User1"
                   ]
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": "*"
           },
           {
               "Sid": "Allow attachment of persistent resources",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:role/DMS-Redshift-endpoint-access-role",
                       "arn:aws:iam::111122223333:role/Admin",
                       "arn:aws:iam::111122223333:role/User1"
                   ]
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:ListGrants",
                   "kms:RevokeGrant"
               ],
               "Resource": "*",
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": true
                   }
               }
           }
       ]
   }
   ```

------

1. Escolha **Terminar**. A página **Chaves de criptografia** é aberta com uma mensagem indicando que a sua AWS KMS key foi criada.

Agora, você criou uma nova chave do KMS com um alias especificado (por exemplo, `DMS-Redshift-endpoint-encryption-key`). Essa chave permite AWS DMS criptografar os dados de destino do Amazon Redshift.

## Configurações de endpoint ao usar o Amazon Redshift como destino para AWS DMS
<a name="CHAP_Target.Redshift.ConnectionAttrib"></a>

É possível utilizar as configurações de endpoint para configurar o destino do Amazon Redshift de forma semelhante à utilização de atributos de conexão adicional. Você especifica as configurações ao criar o endpoint de destino usando o AWS DMS console ou usando o `create-endpoint` comando no [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), com a sintaxe `--redshift-settings '{"EndpointSetting": "value", ...}'` JSON.

A tabela a seguir mostra as configurações de endpoint que é possível utilizar com o Amazon Redshift como destino.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/CHAP_Target.Redshift.html)

## Utilizar uma chave de criptografia de dados e um bucket do Amazon S3 como armazenamento intermediário
<a name="CHAP_Target.Redshift.EndpointSettings"></a>

É possível utilizar as configurações de endpoint do Amazon Redshift para configurar o seguinte:
+ Uma chave de criptografia de AWS KMS dados personalizada. É possível utilizar essa chave para criptografar os dados enviados ao Amazon S3 antes que sejam copiados no Amazon Redshift.
+ Um bucket do S3 personalizado como armazenamento intermediário para dados migrados para o Amazon Redshift.
+ Mapeie um booleano como booleano de uma origem do PostgreSQL. Por padrão, um tipo BOOLEAN é migrado como varchar(1). É possível especificar `MapBooleanAsBoolean` para permitir que o destino do Redshift migre o tipo booleano como booleano, conforme mostrado no exemplo a seguir.

  ```
  --redshift-settings '{"MapBooleanAsBoolean": true}'
  ```

  Observe que você deve definir essa configuração nos endpoints de origem e de destino para que ela tenha efeito.

### Configurações de chave do KMS para criptografia de dados
<a name="CHAP_Target.Redshift.EndpointSettings.KMSkeys"></a>

Os exemplos a seguir mostram como configurar uma chave personalizada do KMS para criptografar os dados enviados por push ao S3. Para começar, é possível fazer a seguinte chamada de `create-endpoint` utilizando a AWS CLI.

```
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target 
--engine-name redshift --username your-username --password your-password 
--server-name your-server-name --port 5439 --database-name your-db-name 
--redshift-settings '{"EncryptionMode": "SSE_KMS", 
"ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/24c3c5a1-f34a-4519-a85b-2debbef226d1"}'
```

Aqui, o objeto JSON especificado pela opção `--redshift-settings` define dois parâmetros. Um é um parâmetro `EncryptionMode` com o valor `SSE_KMS`. O outro é um parâmetro `ServerSideEncryptionKmsKeyId` com o valor `arn:aws:kms:us-east-1:111122223333:key/24c3c5a1-f34a-4519-a85b-2debbef226d1`. Esse valor é um Nome de recurso da Amazon (ARN) para a chave personalizada do KMS.

Por padrão, a criptografia dos dados do S3 ocorre usando a criptografia do lado do servidor do S3. Para o destino do Amazon Redshift do exemplo anterior, isso também é equivalente a especificar as configurações de endpoint, como no exemplo a seguir.

```
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target 
--engine-name redshift --username your-username --password your-password 
--server-name your-server-name --port 5439 --database-name your-db-name 
--redshift-settings '{"EncryptionMode": "SSE_S3"}'
```

Para obter mais informações sobre como trabalhar com a criptografia do lado do servidor do S3, consulte [Proteger dados utilizando criptografia do lado do servidor](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) no *Guia do usuário do Amazon Simple Storage Service*.

**nota**  
Também é possível utilizar o comando `modify-endpoint` na CLI para alterar o valor do parâmetro `EncryptionMode` para um endpoint existente de `SSE_KMS` para `SSE_S3`. Mas não é possível alterar o valor de `EncryptionMode` de `SSE_S3` para `SSE_KMS`.

### Configurações do bucket do Amazon S3
<a name="CHAP_Target.Redshift.EndpointSettings.S3Buckets"></a>

Quando você migra dados para um endpoint de destino do Amazon Redshift AWS DMS , usa um bucket padrão do Amazon S3 como armazenamento intermediário de tarefas antes de copiar os dados migrados para o Amazon Redshift. Por exemplo, os exemplos mostrados para a criação de um endpoint de destino do Amazon Redshift com uma chave de criptografia de dados do AWS KMS utilizam esse bucket padrão do S3 (consulte [Configurações de chave do KMS para criptografia de dados](#CHAP_Target.Redshift.EndpointSettings.KMSkeys)). 

Em vez disso, você pode especificar um bucket S3 personalizado para esse armazenamento intermediário incluindo os seguintes parâmetros no valor da sua `--redshift-settings` opção no AWS CLI `create-endpoint` comando:
+ `BucketName`: uma string que você especifica como o nome do armazenamento do bucket do S3. Se o perfil de acesso ao serviço for baseado na política `AmazonDMSRedshiftS3Role`, esse valor deverá ter um prefixo de `dms-`, por exemplo, `dms-my-bucket-name`.
+ `BucketFolder`: (opcional) uma string que é possível especificar como o nome da pasta de armazenamento no bucket do S3 especificado.
+ `ServiceAccessRoleArn`: o ARN de um perfil do IAM que permite acesso administrativo ao bucket do S3. Normalmente, você cria esse perfil com base na política `AmazonDMSRedshiftS3Role`. Para obter um exemplo, consulte o procedimento para criar um perfil do IAM com a política gerenciada pela AWS necessária em [Criação e uso de AWS KMS chaves para criptografar dados de destino do Amazon Redshift](#CHAP_Target.Redshift.KMSKeys).
**nota**  
Se você especificar o ARN de outro perfil do IAM utilizando a opção `--service-access-role-arn` do comando `create-endpoint`, essa opção de perfil do IAM terá precedência.

O exemplo a seguir mostra como é possível utilizar esses parâmetros para especificar um bucket personalizado do Amazon S3 na seguinte chamada de `create-endpoint` utilizando a AWS CLI. 

```
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target 
--engine-name redshift --username your-username --password your-password 
--server-name your-server-name --port 5439 --database-name your-db-name 
--redshift-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", 
"BucketName": "your-bucket-name", "BucketFolder": "your-bucket-folder-name"}'
```

## Configurações de tarefas de vários threads para o Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply"></a>

É possível melhorar o desempenho de tarefas de carga máxima e captura de dados de alteração (CDC) para um endpoint de destino do Amazon Redshift utilizando configurações de tarefas de vários threads. Elas permitem especificar os threads simultâneos e o número de registros a serem armazenados em um buffer.

### Configurações de tarefas de vários threads para o Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply.FullLoad"></a>

Para promover o desempenho da carga máxima, é possível utilizar as seguintes configurações da tarefa `ParallelLoad*`:
+ `ParallelLoadThreads`: especifica o número de threads simultâneos que o DMS utiliza durante uma carga máxima para enviar registros de dados para um endpoint de destino do Amazon Redshift. O valor padrão é zero (0) e o valor máximo é 32. Para obter mais informações, consulte [Configurações de tarefa de carregamento completo](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md).

  É possível utilizar o atributo `enableParallelBatchInMemoryCSVFiles` definido como `false` ao utilizar a configuração da tarefa `ParallelLoadThreads`. O atributo melhora o desempenho de tarefas de carga máxima maiores com vários threads, fazendo com que o DMS grave em disco em vez de na memória. O valor padrão é `true`.
+ `ParallelLoadBufferSize`: especifica o máximo de solicitações de registros de dados ao utilizar threads de carga paralela com o destino do Redshift. O valor padrão é 100 e o valor máximo é 1.000. Recomendamos que você use essa opção quando ParallelLoadThreads > 1 (maior que um).

**nota**  
Support para o uso de configurações de `ParallelLoad*` tarefas durante o FULL LOAD nos endpoints de destino do Amazon Redshift está disponível nas AWS DMS versões 3.4.5 e superiores.  
A configuração de `ReplaceInvalidChars` do endpoint do Redshift não é compatível para utilização durante a captura de dados de alteração (CDC) ou durante uma tarefa de migração FULL LOAD ativada para carga paralela. Ela é compatível com a migração FULL LOAD quando a carga paralela não está ativada. Para obter mais informações, consulte [RedshiftSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_RedshiftSettings.html)a *Referência AWS Database Migration Service da API*

### Configurações de tarefas de CDC de vários threads para o Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply.CDC"></a>

Para promover o desempenho da CDC, é possível utilizar as seguintes configurações da tarefa `ParallelApply*`:
+ `ParallelApplyThreads`— Especifica o número de threads simultâneos que são AWS DMS usados durante um carregamento do CDC para enviar registros de dados para um endpoint de destino do Amazon Redshift. O valor padrão é zero (0) e o valor máximo é 32. O valor mínimo recomendado é igual ao número de fatias no cluster.
+ `ParallelApplyBufferSize`: especifica o máximo de solicitações de registro de dados ao utilizar threads de aplicação paralelos com o destino do Redshift. O valor padrão é 100 e o valor máximo é 1.000. Recomendamos usar essa opção quando ParallelApplyThreads > 1 (maior que um). 

  Para obter o máximo benefício do Redshift como destino, é recomendável que o valor de `ParallelApplyBufferSize` seja pelo menos duas vezes (o dobro ou mais) do número de `ParallelApplyThreads`.

**nota**  
Support para o uso de configurações de `ParallelApply*` tarefas durante o CDC para endpoints de destino do Amazon Redshift está disponível AWS DMS nas versões 3.4.3 e superiores.

O nível de paralelismo aplicado depende da correlação entre o *tamanho do lote* e o *tamanho máximo do arquivo* utilizado para transferir dados. Ao utilizar configurações de tarefas CDC de vários threads com um destino do Redshift, os benefícios são obtidos quando o tamanho do lote é grande em relação ao tamanho máximo do arquivo. Por exemplo, é possível utilizar a seguinte combinação de configurações de endpoint e de tarefa para ajustar o desempenho ideal. 

```
// Redshift endpoint setting
                
        MaxFileSize=250000;

// Task settings

        BatchApplyEnabled=true;
        BatchSplitSize =8000;
        BatchApplyTimeoutMax =1800;
        BatchApplyTimeoutMin =1800;
        ParallelApplyThreads=32;
        ParallelApplyBufferSize=100;
```

Utilizando as configurações do exemplo anterior, um cliente com uma workload transacional pesada se beneficia com seu buffer de lote, contendo 8.000 registros, sendo preenchido em 1800 segundos, utilizando 32 threads paralelos com um tamanho máximo de arquivo de 250 MB.

Para obter mais informações, consulte [Configurações de ajuste de processamento de alterações](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md).

**nota**  
As consultas do DMS executadas durante a replicação contínua em um cluster do Redshift podem compartilhar a mesma fila do WLM (gerenciamento da workload) com outras consultas de aplicações em execução. Portanto, considere configurar adequadamente as propriedades do WLM para influenciar o desempenho durante a replicação contínua para um destino do Redshift. Por exemplo, se outras consultas ETL paralelas estiverem em execução, o DMS será executado mais lentamente e os ganhos de desempenho serão perdidos.

## Tipos de dados de destino do Amazon Redshift
<a name="CHAP_Target.Redshift.DataTypes"></a>

O endpoint do Amazon Redshift é AWS DMS compatível com a maioria dos tipos de dados do Amazon Redshift. A tabela a seguir mostra os tipos de dados de destino do Amazon Redshift que são compatíveis com o uso AWS DMS e o mapeamento padrão dos tipos de AWS DMS dados.

Para obter informações adicionais sobre AWS DMS os tipos de dados, consulte[Tipos de dados do AWS Database Migration Service](CHAP_Reference.DataTypes.md).


| AWS DMS tipos de dados | Tipos de dados do Amazon Redshift | 
| --- | --- | 
| BOOLEAN | BOOL | 
| BYTES | VARCHAR (tamanho) | 
| DATE | DATE | 
| TIME | VARCHAR(20) | 
| DATETIME |  Se a escala for => 0 e =< 6, dependendo do tipo de coluna de destino do Redshift, uma das seguintes opções: TIMESTAMP (s) TIMESTAMPTZ (s): se o timestamp de origem contiver um deslocamento de zona (como no SQL Server ou Oracle), ele será convertido em UTC na inserção/atualização. Se ele não contiver um deslocamento, a hora já será considerada em UTC. Se a escala for => 7 e =< 9, use:  VARCHAR (37) | 
| INT1 | INT2 | 
| INT2 | INT2 | 
| INT4 | INT4 | 
| INT8 | INT8 | 
| NUMERIC | Se a escala for => 0 e =< 37, use:  NUMERIC (p,s)  Se a escala for => 38 e =< 127, use:  VARCHAR (tamanho) | 
| REAL4 | FLOAT4 | 
| REAL8 | FLOAT8 | 
| STRING | Se o tamanho for de 1 a 65.535, utilize VARCHAR (tamanho em bytes)  Se o tamanho for de 65.536 a 2.147.483.647, utilize VARCHAR (65535)  | 
| UINT1 | INT2 | 
| UINT2 | INT2 | 
| UINT4 | INT4 | 
| UINT8 | NUMERIC (20,0) | 
| WSTRING |  Se o tamanho for de 1 a 65.535, utilize NVARCHAR (tamanho em bytes)  Se o tamanho for de 65.536 a 2.147.483.647, utilize NVARCHAR (65535) | 
| BLOB | VARCHAR (tamanho máximo de LOB \$12)  O tamanho máximo de LOB não pode exceder 31 KB. O Amazon Redshift não oferece suporte a VARCHARs mais de 64 KB. | 
| NCLOB | NVARCHAR (tamanho máximo de LOB)  O tamanho máximo de LOB não pode exceder 63 KB. O Amazon Redshift não oferece suporte a VARCHARs mais de 64 KB. | 
| CLOB | VARCHAR (tamanho máximo de LOB)  O tamanho máximo de LOB não pode exceder 63 KB. O Amazon Redshift não oferece suporte a VARCHARs mais de 64 KB. | 

## Usando AWS DMS com o Amazon Redshift Serverless como destino
<a name="CHAP_Target.Redshift.RSServerless"></a>

AWS DMS suporta o uso do Amazon Redshift Serverless como um endpoint de destino. Para obter informações sobre como utilizar o Amazon Redshift sem servidor, consulte [Amazon Redshift sem servidor](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-serverless.html) no [Guia de gerenciamento do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html).

Este tópico descreve como usar um endpoint sem servidor do Amazon Redshift com. AWS DMS

**nota**  
Ao criar um endpoint sem servidor do Amazon Redshift, para o **DatabaseName**campo de configuração do seu [RedshiftSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_RedshiftSettings.html)endpoint, use o nome do data warehouse do Amazon Redshift ou o nome do endpoint do grupo de trabalho. Para o **ServerName**campo, use o valor de Endpoint exibido na página **Grupo de trabalho** do cluster sem servidor (por exemplo,). `default-workgroup.093291321484.us-east-1.redshift-serverless.amazonaws.com` Para obter informações sobre como criar um endpoint, consulte [Criar endpoints de origem e de destino](CHAP_Endpoints.Creating.md). Para obter informações sobre o endpoint do grupo de trabalho, consulte [Conexão com o Amazon Redshift sem servidor](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-connecting.html).

### Política de confiança com o Amazon Redshift sem servidor como destino
<a name="CHAP_Target.Redshift.RSServerless.policy"></a>

Ao utilizar o Amazon Redshift sem servidor como um endpoint de destino, adicione a seguinte seção destacada à política de confiança. Essa política de confiança é anexada ao perfil `dms-access-for-endpoint`.

Para obter mais informações sobre como usar uma política de confiança com AWS DMS, consulte[Criação das funções do IAM para usar com AWS DMS](security-iam.md#CHAP_Security.APIRole).

### Limitações ao utilizar o Amazon Redshift sem servidor como destino
<a name="CHAP_Target.Redshift.RSServerless.Limitations"></a>

A utilização do Redshift sem servidor como destino apresenta as seguintes limitações:
+ AWS DMS só oferece suporte ao Amazon Redshift Serverless como endpoint em regiões que oferecem suporte ao Amazon Redshift Serverless. Para obter informações sobre quais regiões são compatíveis com o Amazon Redshift sem servidor, consulte **API do Redshift sem servidor** no tópico [Endpoints e cotas do Amazon Redshift](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) na [Referência geral do AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html).
+ Ao utilizar o roteamento aprimorado da VPC, crie um endpoint do Amazon S3 na mesma VPC do Redshift sem servidor ou no cluster provisionado pelo Redshift. Para obter mais informações, consulte [Usando o roteamento de VPC aprimorado com o Amazon Redshift como destino para AWS Database Migration Service](#CHAP_Target.Redshift.EnhancedVPC).
+ AWS DMS não oferece suporte à taxa de transferência aprimorada para o Amazon Redshift Serverless como destino. Para obter mais informações, consulte [Melhoria do throughput para migrações de carga máxima do Oracle para o Amazon Redshift e o Amazon S3](CHAP_Serverless.Components.md#CHAP_Serverless.Throughput).
+ AWS DMS não suporta conexões com o Amazon Redshift Redshift Serverless quando o modo SSL está definido como. `verify-full` Para conexões que exigem verificação de SSL para destinos sem servidor do Amazon Redshift, use modos SSL alternativos, como ou. `require` `verify-ca`