

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo di un database Amazon Redshift come destinazione per AWS Database Migration Service
<a name="CHAP_Target.Redshift"></a>

Puoi migrare i dati verso i database Amazon Redshift utilizzando. AWS Database Migration Service Amazon Redshift è un servizio di data warehouse nel cloud in scala petabyte interamente gestito. Con un database Amazon Redshift come destinazione, puoi eseguire la migrazione dei dati da tutti gli altri database di origine supportati.

Puoi utilizzare Amazon Redshift Serverless come destinazione per. AWS DMS Per ulteriori informazioni, consulta la sezione seguente: [Utilizzo AWS DMS con Amazon Redshift Serverless come destinazioneAmazon Redshift Serverless](#CHAP_Target.Redshift.RSServerless).

 Il cluster Amazon Redshift deve trovarsi nello stesso AWS account e nella stessa AWS regione dell'istanza di replica. 

Durante una migrazione di database verso Amazon Redshift, sposta AWS DMS innanzitutto i dati in un bucket Amazon S3. Quando i file risiedono in un bucket Amazon S3 AWS DMS , li trasferisce nelle tabelle appropriate nel data warehouse Amazon Redshift. AWS DMS crea il bucket S3 nella stessa AWS regione del database Amazon Redshift. L'istanza AWS DMS di replica deve trovarsi nella stessa regione. AWS 

Se utilizzi l'API AWS CLI o DMS per migrare i dati su Amazon Redshift, configura AWS Identity and Access Management un ruolo (IAM) per consentire l'accesso a S3. Per ulteriori informazioni sulla creazione di questo ruolo IAM, consulta [Creazione dei ruoli IAM da utilizzare con AWS DMS](security-iam.md#CHAP_Security.APIRole).

L'endpoint Amazon Redshift fornisce l'automazione completa per le operazioni seguenti:
+ Generazione dello schema e mappatura dei tipi di dati
+ Caricamento completo delle tabelle di database di origine
+ Caricamento incrementale delle modifiche apportate alle tabelle di origine
+ Applicazione delle modifiche dello schema nel DDL (Data Definition Language) effettuate sulle tabelle di origine
+ Sincronizzazione tra il caricamento completo e i processi Change Data Capture (CDC).

AWS Database Migration Service supporta sia le operazioni a pieno carico che quelle di elaborazione delle modifiche. AWS DMS legge i dati dal database di origine e crea una serie di file con valori separati da virgole (.csv). Per le operazioni a caricamento completo, crea file per ogni tabella. AWS DMS AWS DMS quindi copia i file di tabella per ogni tabella in una cartella separata in Amazon S3. Quando i file vengono caricati su Amazon S3, AWS DMS invia un comando di copia e i dati contenuti nei file vengono copiati in Amazon Redshift. Per le operazioni di elaborazione delle modifiche, AWS DMS copia le modifiche nette nei file.csv. AWS DMS quindi carica i file di modifica della rete su Amazon S3 e copia i dati su Amazon Redshift.

Per ulteriori dettagli sull'utilizzo di Amazon Redshift come target per AWS DMS, consulta le seguenti sezioni: 

**Topics**
+ [Prerequisiti per l'utilizzo di un database Amazon Redshift come destinazione per AWS Database Migration Service](#CHAP_Target.Redshift.Prerequisites)
+ [Privilegi richiesti per l'utilizzo di Redshift come destinazione](#CHAP_Target.Redshift.Privileges)
+ [Limitazioni all'uso di Amazon Redshift come obiettivo per AWS Database Migration Service](#CHAP_Target.Redshift.Limitations)
+ [Configurazione di un database Amazon Redshift come destinazione per AWS Database Migration Service](#CHAP_Target.Redshift.Configuration)
+ [Utilizzo del routing VPC avanzato con Amazon Redshift come destinazione per AWS Database Migration Service](#CHAP_Target.Redshift.EnhancedVPC)
+ [Creazione e utilizzo di AWS KMS chiavi per crittografare i dati di destinazione di Amazon Redshift](#CHAP_Target.Redshift.KMSKeys)
+ [Impostazioni degli endpoint quando si utilizza Amazon Redshift come destinazione per AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib)
+ [Utilizzo di una chiave di crittografia dei dati e di un bucket Amazon S3 come storage intermedio](#CHAP_Target.Redshift.EndpointSettings)
+ [Impostazioni delle attività multithread per Amazon Redshift](#CHAP_Target.Redshift.ParallelApply)
+ [Tipi di dati di destinazione per Amazon Redshift.](#CHAP_Target.Redshift.DataTypes)
+ [Utilizzo AWS DMS con Amazon Redshift Serverless come destinazione](#CHAP_Target.Redshift.RSServerless)

## Prerequisiti per l'utilizzo di un database Amazon Redshift come destinazione per AWS Database Migration Service
<a name="CHAP_Target.Redshift.Prerequisites"></a>

Di seguito sono descritti i prerequisiti necessari per l'utilizzo di Amazon Redshift come destinazione per la migrazione dei dati:
+ Usa la console AWS di gestione per avviare un cluster Amazon Redshift. Prendi nota delle informazioni di base sul tuo AWS account e sul tuo cluster Amazon Redshift, come password, nome utente e nome del database. Tali valori sono necessari durante la creazione dell'endpoint di destinazione Amazon Redshift. 
+ Il cluster Amazon Redshift deve trovarsi nello stesso AWS account e nella stessa AWS regione dell'istanza di replica.
+ L'istanza di AWS DMS replica richiede la connettività di rete all'endpoint Amazon Redshift (nome host e porta) utilizzato dal cluster.
+ AWS DMS utilizza un bucket Amazon S3 per trasferire dati al database Amazon Redshift. Per consentire a AWS DMS di creare il bucket, la console utilizza un ruolo IAM, `dms-access-for-endpoint`. Se utilizzi l'API AWS CLI o DMS per creare una migrazione di database con Amazon Redshift come database di destinazione, devi creare questo ruolo IAM. Per ulteriori informazioni sulla creazione di questo ruolo, consultare [Creazione dei ruoli IAM da utilizzare con AWS DMS](security-iam.md#CHAP_Security.APIRole). 
+ AWS DMS converte BLOBs e NCLOBs in un VARCHAR sull'istanza Amazon Redshift di destinazione. CLOBs Amazon Redshift non supporta tipi di dati VARCHAR di dimensioni superiori a 64 KB, quindi non è possibile archiviare dati tradizionali su Amazon LOBs Redshift. 
+ Imposta l'impostazione dell'attività dei metadati di destinazione [BatchApplyEnabled](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md)su `true` for per gestire AWS DMS le modifiche alle tabelle di destinazione di Amazon Redshift durante il CDC. È necessaria una chiave primaria nella tabella di origine e nella tabella di destinazione. Senza una chiave primaria, le modifiche vengono applicate istruzione dopo istruzione. E ciò può influire negativamente sulle prestazioni delle attività durante il CDC causando latenza di destinazione e influendo sulla coda di commit del cluster. 
+ Quando la sicurezza a livello di riga è abilitata nelle tabelle in Redshift, è necessario concedere le autorizzazioni appropriate a tutti gli utenti DMS.

## Privilegi richiesti per l'utilizzo di Redshift come destinazione
<a name="CHAP_Target.Redshift.Privileges"></a>

Utilizza il comando GRANT per definire i privilegi di accesso per un utente o un gruppo di utenti. I privilegi includono opzioni di accesso come la possibilità di leggere i dati in tabelle e viste, scrivere dati e creare tabelle. Per ulteriori informazioni sull'utilizzo di GRANT con Amazon Redshift, consulta [GRANT](https://docs.aws.amazon.com//redshift/latest/dg/r_GRANT.html) nella *Guida per gli sviluppatori di database Amazon Redshift*. 

Di seguito è riportata la sintassi per assegnare privilegi specifici per una tabella, un database, uno schema, una funzione, una procedura o privilegi a livello di lingua su tabelle e viste 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 } [, ...]
```

Di seguito è riportata la sintassi per i privilegi a livello di colonna su tabelle e viste Amazon Redshift. 

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

Di seguito è riportata la sintassi per il privilegio ASSUMEROLE concesso a utenti e gruppi con un ruolo specificato.

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

## Limitazioni all'uso di Amazon Redshift come obiettivo per AWS Database Migration Service
<a name="CHAP_Target.Redshift.Limitations"></a>

Le seguenti limitazioni si applicano quando si utilizza un database Amazon Redshift come destinazione:
+ Non abilitare il controllo delle versioni per il bucket S3 che usi come storage intermedio per la destinazione Amazon Redshift. Se hai bisogno del controllo delle versioni S3, utilizza le policy del ciclo di vita per eliminare attivamente le vecchie versioni. In caso contrario, è possibile che si verifichino errori della connessione di test dell'endpoint a causa del timeout della chiamata `list-object` S3. Per creare una policy del ciclo di vita per un bucket S3, consulta [Gestione del ciclo di vita dello storage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). Per eliminare la versione di un oggetto S3, consulta [Eliminazione di versioni di oggetti da un bucket con funzione Controllo delle versioni abilitata](https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjectVersions.html).
+ Il seguente DDL non è supportato:

  ```
  ALTER TABLE table name MODIFY COLUMN column name data type;
  ```
+  AWS DMS non può migrare o replicare le modifiche a uno schema con un nome che inizia con un carattere di sottolineatura (\$1). Se disponi di schemi con un nome che inizia con un carattere di sottolineatura, utilizza le trasformazioni di mappatura per rinominare lo schema sulla destinazione. 
+  Amazon Redshift non supporta VARCHARs dimensioni superiori a 64 KB. LOBs i database tradizionali non possono essere archiviati in Amazon Redshift.
+  L'applicazione di un'istruzione DELETE a una tabella con una chiave primaria a più colonne non è supportata quando uno dei nomi di colonna della chiave primaria utilizza una parola riservata. Vai [qui](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) per vedere un elenco di parole riservate Amazon Redshift.
+ Potrebbero verificarsi problemi di prestazioni se il sistema di origine esegue operazioni UPDATE sulla chiave primaria di una tabella di origine. Questi problemi di prestazioni si verificano quando si applicano modifiche alla destinazione. Ciò accade perché le operazioni UPDATE (e DELETE) dipendono dal valore della chiave primaria per identificare la riga di destinazione. Se aggiorni la chiave primaria di una tabella di origine, il log delle attività conterrà messaggi come i seguenti:

  ```
  Update on table 1 changes PK to a PK that was previously updated in the same bulk update.
  ```
+ DMS non supporta nomi DNS personalizzati durante la configurazione di un endpoint per un cluster Redshift ed è necessario utilizzare il nome DNS fornito da Amazon. Poiché il cluster Amazon Redshift deve trovarsi nello stesso AWS account e nella stessa regione dell'istanza di replica, la convalida non riesce se si utilizza un endpoint DNS personalizzato.
+ Amazon Redshift prevede un timeout di sessione inattiva predefinito di 4 ore. Quando non c'è alcuna esecuzione all'interno dell'attività di replica DMS, Redshift disconnette la sessione dopo 4 ore. Gli errori possono derivare dall'impossibilità di DMS di connettersi e dalla potenziale necessità di riavviare il sistema. Come soluzione alternativa, imposta per SESSION TIMEOUT un limite superiore a 4 ore per l'utente della replica DMS. In alternativa, consulta la descrizione di [ALTER USER](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html) nella *Guida per gli sviluppatori di database di Amazon Redshift*.
+ Quando AWS DMS replica i dati della tabella di origine senza una chiave primaria o unica, la latenza CDC potrebbe essere elevata, con conseguente livello di prestazioni inaccettabile.
+ Il troncamento delle partizioni non è supportato durante la replica CDC dalla sorgente Oracle alla destinazione Redshift.
+ I record duplicati potrebbero apparire nelle tabelle di destinazione perché Amazon Redshift non impone le chiavi primarie e AWS DMS può riprodurre CDC quando un'attività viene ripresa. Per evitare duplicati, utilizza l'impostazione. `ApplyErrorInsertPolicy=INSERT_RECORD` Per ulteriori informazioni, consulta [Impostazioni delle attività per la gestione degli errori](CHAP_Tasks.CustomizingTasks.TaskSettings.ErrorHandling.md). In alternativa, è possibile implementare procedure di rilevamento dei duplicati a livello di applicazione e di pulizia post-migrazione.

## Configurazione di un database Amazon Redshift come destinazione per AWS Database Migration Service
<a name="CHAP_Target.Redshift.Configuration"></a>

AWS Database Migration Service deve essere configurato per funzionare con l'istanza Amazon Redshift. Nella tabella seguente vengono descritte le proprietà di configurazione disponibili per l'endpoint Amazon Redshift.


| Proprietà | Description | 
| --- | --- | 
| server | Il nome del cluster Amazon Redshift in uso. | 
| port | Il numero di porta per Amazon Redshift. Il valore predefinito è 5439. | 
| username | Il nome utente Amazon Redshift di un utente registrato. | 
| password | La password per l'utente denominato nella proprietà username. | 
| database | Il nome del data warehouse (servizio) Amazon Redshift in uso. | 

Se desideri aggiungere ulteriori attributi della stringa di connessione all'endpoint Amazon Redshift, puoi specificare `maxFileSize` e `fileTransferUploadStreams`. Per ulteriori informazioni su questi attributi, consulta [Impostazioni degli endpoint quando si utilizza Amazon Redshift come destinazione per AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib).

## Utilizzo del routing VPC avanzato con Amazon Redshift come destinazione per AWS Database Migration Service
<a name="CHAP_Target.Redshift.EnhancedVPC"></a>

Se usi il routing VPC avanzato con la destinazione Amazon Redshift, tutto il traffico di tipo COPY tra il cluster Amazon Redshift e i repository di dati passa attraverso il VPC. Poiché il routing VPC avanzato influisce sul modo in cui Amazon Redshift accede ad altre risorse, i comandi COPY potrebbero avere esito negativo se non hai configurato correttamente il VPC.

AWS DMS può essere influenzato da questo comportamento perché utilizza il comando COPY per spostare i dati in S3 in un cluster Amazon Redshift.

Di seguito sono riportati i passaggi AWS DMS necessari per caricare i dati in un target Amazon Redshift:

1. AWS DMS copia i dati dall'origine in file.csv sul server di replica.

1. AWS DMS utilizza l' AWS SDK per copiare i file.csv in un bucket S3 sul tuo account.

1. AWS DMS utilizza quindi il comando COPY in Amazon Redshift per copiare i dati dai file.csv in S3 in una tabella appropriata in Amazon Redshift.

Se il routing VPC avanzato non è abilitato, Amazon Redshift indirizza il traffico attraverso Internet, incluso il traffico verso altri servizi all'interno della rete. AWS Se la caratteristica non è abilitata, non è necessario configurare il percorso di rete. Se la caratteristica è abilitata, è necessario creare un percorso di rete tra il VPC del cluster e le risorse di dati. Per ulteriori informazioni sulla configurazione necessaria, consulta [Routing VPC avanzato](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) nella documentazione di Amazon Redshift. 

## Creazione e utilizzo di AWS KMS chiavi per crittografare i dati di destinazione di Amazon Redshift
<a name="CHAP_Target.Redshift.KMSKeys"></a>

È possibile crittografare i dati di destinazione trasmessi ad Amazon S3 prima di copiarli in Amazon Redshift. A tale scopo, puoi creare e utilizzare chiavi personalizzate. AWS KMS Puoi utilizzare la chiave creata per crittografare i dati di destinazione usando uno dei seguenti meccanismi al momento della creazione dell'endpoint di destinazione Amazon Redshift:
+ Utilizza la seguente opzione quando esegui il comando `create-endpoint` utilizzando la AWS CLI.

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

  Qui, `your-kms-key-ARN` è l'ARN (Amazon Resource Name) per la chiave KMS. Per ulteriori informazioni, consulta [Utilizzo di una chiave di crittografia dei dati e di un bucket Amazon S3 come storage intermedio](#CHAP_Target.Redshift.EndpointSettings).
+ Imposta l'attributo di connessione aggiuntivo `encryptionMode` sul valore `SSE_KMS` e l'attributo della connessione aggiuntiva `serverSideEncryptionKmsKeyId` per l'ARN per la chiave KMS. Per ulteriori informazioni, consulta [Impostazioni degli endpoint quando si utilizza Amazon Redshift come destinazione per AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib).

Per crittografare i dati di destinazione di Amazon Redshift utilizzando una chiave KMS, è necessario AWS Identity and Access Management un ruolo (IAM) con le autorizzazioni per accedere ai dati di Amazon Redshift. È possibile accedere a questo ruolo IAM in una policy (policy della chiave) collegata alla chiave di crittografia creata. È possibile farlo nella console IAM creando quanto segue:
+ Un ruolo IAM con una policy gestita. AWS
+ Una chiave di crittografia KMS con la policy della chiave che fa riferimento a questo ruolo.

Nelle seguenti procedure viene descritto come procedere.

**Per creare un ruolo IAM con la policy AWS gestita richiesta**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, seleziona **Ruoli**. Viene visualizzata la pagina **Roles (Ruoli)**.

1. Scegli **Crea ruolo**. Viene visualizzata la pagina **Create role (Crea ruolo)**.

1. Dopo aver selezionato **Servizio AWS ** come entità attendibile, scegli **DMS** come servizio per l'utilizzo del ruolo.

1. Scegli **Successivo: autorizzazioni**. Verrà visualizzata la pagina **Attach permissions policies (Collega policy di autorizzazioni)**.

1. Trova e seleziona la policy `AmazonDMSRedshiftS3Role`.

1. Scegli **Successivo: Tag**. Viene visualizzata la pagina **Aggiungi tag**. Qui è possibile aggiungere i tag desiderati.

1. Seleziona **Next: Review (Successivo: Rivedi)** ed esamina i risultati.

1. Se le impostazioni sono quelle desiderate, immetti un nome per il ruolo (ad esempio, `DMS-Redshift-endpoint-access-role`) e qualsiasi ulteriore descrizione, quindi scegli **Create role (Crea ruolo)**. Viene visualizzata la pagina **Roles (Ruoli)** con un messaggio che indica che il ruolo è stato creato.

Ora il nuovo ruolo per accedere alle risorse di Amazon Redshift per la crittografia con un nome specifico, ad esempio `DMS-Redshift-endpoint-access-role`, è stato creato.

**Per creare una chiave di AWS KMS crittografia con una policy chiave che faccia riferimento al tuo ruolo IAM**
**Nota**  
Per ulteriori informazioni su come AWS DMS funzionano le chiavi di AWS KMS crittografia, consulta[Impostazione di una chiave di crittografia e specificazione delle autorizzazioni AWS KMS](CHAP_Security.md#CHAP_Security.EncryptionKey).

1. Accedi a Console di gestione AWS e apri la console AWS Key Management Service (AWS KMS) in [https://console.aws.amazon.com/kms.](https://console.aws.amazon.com/kms)

1. Per modificare il Regione AWS, usa il selettore della regione nell'angolo in alto a destra della pagina.

1. Nel riquadro di navigazione, scegli **Chiavi gestite dal cliente**.

1. Scegli **Crea chiave**. Verrà visualizzata la pagina **Configure key (Configura chiave)**.

1. Alla voce **Key type (Tipo di chiave)**, scegliere **Symmetric (Simmetrica)**.
**Nota**  
Quando crei questa chiave, puoi creare solo una chiave simmetrica, perché tutti i AWS servizi, come Amazon Redshift, funzionano solo con chiavi di crittografia simmetriche.

1. Scegliere **Advanced Options (Opzioni avanzate)**. Alla voce **Key material origin (Origine del materiale della chiave)**, assicurarsi che sia selezionata la voce **KMS** quindi scegliere **Next (Avanti)**. Verrà visualizzata la pagina **Add labels (Aggiungi etichette)**.

1. Alla voce **Create alias and description (Crea alias e descrizione)**, inserire un alias per la chiave (ad esempio `DMS-Redshift-endpoint-encryption-key`) e qualsiasi descrizione aggiuntiva.

1. Alla voce **Tag**, aggiungere tutti i tag desiderati per identificare la chiave e monitorarne l'utilizzo, quindi scegliere **Next (Avanti)**. Verrà visualizzata la pagina **Define key administrative permissions (Definisci autorizzazioni amministrative della chiave)** che mostra un elenco di utenti e ruoli tra cui è possibile scegliere.

1. Aggiungi gli utenti e i ruoli che desideri gestiscano la chiave. Assicurati che questi utenti e ruoli dispongano delle autorizzazioni necessarie per gestire la chiave. 

1. Alla voce **Key deletion (Eliminazione chiave)**, scegliere se gli amministratori della chiave possono eliminarla, quindi scegliere **Next (Avanti)**. Verrà visualizzata la pagina **Define key usage permissions (Definisci autorizzazioni di utilizzo della chiave)** che mostra un elenco aggiuntivo di utenti e ruoli tra cui è possibile scegliere.

1. Per **Questo account** scegli tra gli utenti disponibili quelli che dovranno eseguire operazioni di crittografia sulle destinazioni Amazon Redshift. Scegli in **Ruoli** il ruolo creato in precedenza per abilitare l'accesso alla crittografia degli oggetti di destinazione Amazon Redshift, ad esempio `DMS-Redshift-endpoint-access-role`.

1. **Se desideri aggiungere altri account non elencati per avere lo stesso accesso, per **Altri AWS account, scegli **Aggiungi un AWS ** altro account**, quindi scegli Avanti.** Verrà visualizzata la pagina **Review and edit key policy (Rivedi e modifica la policy della chiave)** che mostra il JSON associato alla policy della chiave, che è possibile rivedere e modificare digitando all'interno del testo esistente. Qui è possibile visualizzare il punto in cui la policy della chiave fa riferimento al ruolo e agli utenti (ad esempio,`Admin` e `User1`) selezionati nella fase precedente. È anche possibile visualizzare le diverse operazioni di chiave consentite per i diversi principali (utenti e ruoli), come mostrato nel seguente esempio.

------
#### [ 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. Scegli **Fine**. La pagina delle **chiavi di crittografia** si apre con un messaggio che indica che il tuo è AWS KMS key stato creato.

È stata creata una nuova chiave KMS con un alias specificato (ad esempio, `DMS-Redshift-endpoint-encryption-key`). Questa chiave consente di AWS DMS crittografare i dati di destinazione di Amazon Redshift.

## Impostazioni degli endpoint quando si utilizza Amazon Redshift come destinazione per AWS DMS
<a name="CHAP_Target.Redshift.ConnectionAttrib"></a>

È possibile utilizzare le impostazioni degli endpoint per configurare il database di destinazione Amazon Redshift in modo simile a come si usano gli attributi aggiuntivi di connessione. Le impostazioni vengono specificate quando si crea l'endpoint di destinazione utilizzando la AWS DMS console o utilizzando il `create-endpoint` comando in [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), con la `--redshift-settings '{"EndpointSetting": "value", ...}'` sintassi JSON.

La tabella riportata di seguito mostra le impostazioni degli endpoint che è possibile utilizzare con Amazon Redshift come destinazione.

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

## Utilizzo di una chiave di crittografia dei dati e di un bucket Amazon S3 come storage intermedio
<a name="CHAP_Target.Redshift.EndpointSettings"></a>

Puoi utilizzare le impostazioni degli endpoint di destinazione Amazon Redshift per configurare:
+ Una chiave di crittografia AWS KMS dei dati personalizzata. Puoi utilizzare quindi questa chiave per crittografare i dati trasmessi ad Amazon S3 prima che siano copiati su Amazon Redshift.
+ Un bucket S3 personalizzato come storage intermedio per i dati migrati in Amazon Redshift.
+ Mappa un booleano come tale da un'origine PostgreSQL. Per impostazione predefinita, il tipo BOOLEAN viene migrato come varchar(1). Puoi specificare `MapBooleanAsBoolean` per consentire alla destinazione Redshift di migrare il tipo booleano come tale, come mostrato nell'esempio seguente.

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

  Tieni presente che questa impostazione, affinché abbia effetto, deve essere configurata sia sull'endpoint di origine che su quello di destinazione.

### Impostazioni delle chiavi KMS per la crittografia dei dati
<a name="CHAP_Target.Redshift.EndpointSettings.KMSkeys"></a>

I seguenti esempi mostrano la configurazione di una chiave KMS personalizzata per crittografare i dati trasmessi a S3. Per iniziare, è possibile effettuare la seguente chiamata `create-endpoint` utilizzando la 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"}'
```

Qui l'oggetto JSON specificato dall'opzione `--redshift-settings` definisce due parametri. Uno è un parametro `EncryptionMode` con il valore `SSE_KMS`. L'altro è un parametro `ServerSideEncryptionKmsKeyId` con il valore `arn:aws:kms:us-east-1:111122223333:key/24c3c5a1-f34a-4519-a85b-2debbef226d1`. Questo valore è un ARN (Amazon Resource Name) per la chiave KMS personalizzata.

Per impostazione predefinita, la crittografia dei dati di S3 viene effettuata utilizzando la crittografia lato server. Per la destinazione Amazon Redshift dell'esempio precedente, ciò equivale a specificare le impostazioni degli endpoint, come nell'esempio seguente.

```
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"}'
```

Per ulteriori informazioni sull'utilizzo della crittografia lato server S3, consulta [Protezione dei dati con la crittografia lato server](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) nella *Guida per l'utente di Amazon Simple Storage Service*.

**Nota**  
È inoltre possibile utilizzare il comando CLI `modify-endpoint` per modificare il valore del parametro `EncryptionMode` per un endpoint esistente da `SSE_KMS` a `SSE_S3`. Tuttavia non puoi modificare il valore di `EncryptionMode` da `SSE_S3` a `SSE_KMS`.

### Impostazioni del bucket Amazon S3
<a name="CHAP_Target.Redshift.EndpointSettings.S3Buckets"></a>

Quando esegui la migrazione dei dati verso un endpoint di destinazione Amazon Redshift AWS DMS , utilizza un bucket Amazon S3 predefinito come storage di attività intermedio prima di copiare i dati migrati su Amazon Redshift. Gli esempi mostrati per la creazione di un endpoint di destinazione Amazon Redshift con una chiave di crittografia dei dati AWS KMS utilizzano questo bucket S3 predefinito (consulta [Impostazioni delle chiavi KMS per la crittografia dei dati](#CHAP_Target.Redshift.EndpointSettings.KMSkeys)). 

Puoi invece specificare un bucket S3 personalizzato per questo storage intermedio includendo i seguenti parametri nel valore della tua opzione sul comando: `--redshift-settings` AWS CLI `create-endpoint`
+ `BucketName`: una stringa che specifichi come nome dello storage del bucket S3. Se il ruolo di accesso al servizio si basa sulla policy `AmazonDMSRedshiftS3Role`, questo valore deve avere il prefisso `dms-`, ad esempio `dms-my-bucket-name`.
+ `BucketFolder` (facoltativo): una stringa che è possibile indicare come nome della cartella di storage nel bucket S3 specificato.
+ `ServiceAccessRoleArn`: l'ARN di un ruolo IAM che consente l'accesso amministrativo al bucket S3. Di solito, è necessario creare questo ruolo in base alla policy `AmazonDMSRedshiftS3Role`. Per un esempio, consulta la procedura per creare un ruolo IAM con la policy gestita da AWS richiesta in [Creazione e utilizzo di AWS KMS chiavi per crittografare i dati di destinazione di Amazon Redshift](#CHAP_Target.Redshift.KMSKeys).
**Nota**  
Se specifichi l'ARN di un altro ruolo IAM utilizzando l'opzione `--service-access-role-arn` del comando `create-endpoint`, questa opzione per il ruolo IAM ha la precedenza.

L'esempio seguente mostra come utilizzare questi parametri per specificare un bucket Amazon S3 personalizzato nella seguente chiamata `create-endpoint` utilizzando la 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"}'
```

## Impostazioni delle attività multithread per Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply"></a>

Puoi migliorare le prestazioni delle attività di pieno carico e acquisizione dei dati di modifica (CDC) per un endpoint di destinazione Amazon Redshift utilizzando le impostazioni delle attività multithread. Ti consentono di specificare il numero di thread simultanei e il numero di record da archiviare in un buffer.

### Impostazioni delle attività di pieno carico multithread per Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply.FullLoad"></a>

Per promuovere le prestazioni del pieno carico, puoi utilizzare le seguenti impostazioni dell'attività `ParallelLoad*`:
+ `ParallelLoadThreads`: specifica il numero di thread simultanei che DMS utilizza durante un pieno carico per eseguire il push di record di dati a un endpoint di destinazione Amazon Redshift. Il valore predefinito è zero (0) e il valore massimo è 32. Per ulteriori informazioni, consulta [Impostazioni delle attività di caricamento completo](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md).

  Puoi impostare l'attributo `enableParallelBatchInMemoryCSVFiles` su `false` quando usi l'impostazione dell'attività `ParallelLoadThreads`. L'attributo migliora le prestazioni delle attività di pieno carico multithread di maggiori dimensioni grazie alla possibilità di DMS di scrivere sul disco anziché sulla memoria. Il valore predefinito è `true`.
+ `ParallelLoadBufferSize`: specifica il numero massimo di richieste di record di dati durante l'utilizzo di thread di caricamento paralleli con la destinazione Redshift. Il valore predefinito è 100 e il valore massimo è 1.000. Ti consigliamo di utilizzare questa opzione quando è ParallelLoadThreads > 1 (maggiore di uno).

**Nota**  
Il supporto per l'uso delle impostazioni delle `ParallelLoad*` attività durante il FULL LOAD sugli endpoint target di Amazon Redshift è disponibile nelle AWS DMS versioni 3.4.5 e successive.  
L'impostazione dell'endpoint `ReplaceInvalidChars` Redshift non è supportata per l'uso durante l'acquisizione dei dati di modifica (CDC) o durante un'attività di migrazione FULL LOAD abilitata al caricamento parallelo. È supportata per la migrazione FULL LOAD quando il caricamento parallelo non è abilitato. *Per ulteriori informazioni, consulta l'API [RedshiftSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_RedshiftSettings.html)Reference AWS Database Migration Service *

### Impostazioni dell'attività di CDC multithread per Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply.CDC"></a>

Per promuovere le prestazioni della CDC, puoi utilizzare le seguenti impostazioni dell'attività `ParallelApply*`.
+ `ParallelApplyThreads`: specifica il numero di thread simultanei AWS DMS utilizzati durante un caricamento CDC per inviare i record di dati a un endpoint di destinazione di Amazon Redshift. Il valore predefinito è zero (0) e il valore massimo è 32. Il valore minimo consigliato è pari al numero di sezioni del cluster.
+ `ParallelApplyBufferSize`: specifica il numero massimo di richieste di record di dati durante l'utilizzo di thread di applicazione paralleli con la destinazione Redshift. Il valore predefinito è 100 e il valore massimo è 1.000. Consigliamo di utilizzare questa opzione quando è ParallelApplyThreads > 1 (maggiore di uno). 

  Per ottenere il massimo vantaggio da Redshift come destinazione, è opportuno che il valore di `ParallelApplyBufferSize` sia almeno due volte (il doppio) il numero di`ParallelApplyThreads`.

**Nota**  
Il supporto per l'uso delle impostazioni delle `ParallelApply*` attività durante il CDC verso gli endpoint di destinazione Amazon Redshift è disponibile AWS DMS nelle versioni 3.4.3 e successive.

Il livello di parallelismo applicato dipende dalla correlazione tra la *dimensione del batch* totale e la *dimensione massima del file* utilizzato per trasferire i dati. Quando si utilizzano impostazioni dell'attività di CDC multithread con una destinazione Redshift, si ottengono vantaggi quando la dimensione del batch è elevata rispetto alla dimensione massima del file. Ad esempio, per ottimizzare le prestazioni è possibile utilizzare la seguente combinazione di impostazioni dell'endpoint e dell'attività. 

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

// Task settings

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

Utilizzando le impostazioni dell'esempio precedente, un cliente con un carico di lavoro transazionale intenso trae vantaggio dal fatto che il buffer batch, contenente 8000 record, viene riempito in 1800 secondi e utilizza 32 thread paralleli con una dimensione massima del file di 250 MB.

Per ulteriori informazioni, consulta [Impostazioni di ottimizzazione dell'elaborazione delle modifiche](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md).

**Nota**  
Le query DMS eseguite durante la replica continua su un cluster Redshift possono condividere la stessa coda di gestione del carico di lavoro con altre query applicative in esecuzione. Pertanto, prendi in considerazione la corretta configurazione delle proprietà di gestione del carico di lavoro per influenzare le prestazioni durante la replica continua su una destinazione Redshift. Ad esempio, se sono in esecuzione altre query ETL parallele, DMS viene eseguito più lentamente e i miglioramenti delle prestazioni sono vanificati.

## Tipi di dati di destinazione per Amazon Redshift.
<a name="CHAP_Target.Redshift.DataTypes"></a>

L'endpoint Amazon Redshift per AWS DMS supporta la maggior parte dei tipi di dati Amazon Redshift. La tabella seguente mostra i tipi di dati target di Amazon Redshift supportati durante l'utilizzo AWS DMS e la mappatura predefinita dei tipi di AWS DMS dati.

Per ulteriori informazioni sui tipi di AWS DMS dati, consulta. [Tipi di dati per AWS Database Migration Service](CHAP_Reference.DataTypes.md)


| AWS DMS tipi di dati | Tipi di dati Amazon Redshift | 
| --- | --- | 
| BOOLEAN | BOOL | 
| BYTES | VARCHAR (lunghezza) | 
| DATE | DATE | 
| TIME | VARCHAR(20) | 
| DATETIME |  Se la scala è => 0 e =< 6, a seconda del tipo di colonna di destinazione Redshift, il valore è uno dei seguenti: TIMESTAMP (s) TIMESTAMPTZ (s): se il timestamp di origine contiene un offset di zona (come in SQL Server oppure Oracle), viene convertito in UTC al momento dell’inserimento/aggiornamento. Se non contiene un offset, l’ora viene già considerata in UTC. Se il dimensionamento è => 7 e =< 9:  VARCHAR (37) | 
| INT1 | INT2 | 
| INT2 | INT2 | 
| INT4 | INT4 | 
| INT8 | INT8 | 
| NUMERIC | Se il dimensionamento è => 0 e =< 37:  NUMERIC (p,s)  Se il dimensionamento è => 38 e =< 127:  VARCHAR (lunghezza) | 
| REAL4 | FLOAT4 | 
| REAL8 | FLOAT8 | 
| STRING | Se la lunghezza è compresa tra 1 e 65.535, utilizza VARCHAR (lunghezza in byte)  Se la lunghezza è compresa tra 65.536 e 2.147.483.647, utilizza VARCHAR (65535) | 
| UINT1 | INT2 | 
| UINT2 | INT2 | 
| UINT4 | INT4 | 
| UINT8 | NUMERIC (20,0) | 
| WSTRING |  Se la lunghezza è compresa tra 1 e 65.535, utilizza NVARCHAR (lunghezza in byte)  Se la lunghezza è compresa tra 65.536 e 2.147.483.647, utilizza NVARCHAR (65535) | 
| BLOB | VARCHAR (dimensioni massime di LOB \$12)  Le dimensioni massime di LOB non possono superare 31 KB. Amazon Redshift non supporta VARCHARs dimensioni superiori a 64 KB. | 
| NCLOB | NVARCHAR (dimensioni massime di LOB)  Le dimensioni massime di LOB non possono superare 63 KB. Amazon Redshift non supporta VARCHARs dimensioni superiori a 64 KB. | 
| CLOB | VARCHAR (dimensioni massime di LOB)  Le dimensioni massime di LOB non possono superare 63 KB. Amazon Redshift non supporta VARCHARs dimensioni superiori a 64 KB. | 

## Utilizzo AWS DMS con Amazon Redshift Serverless come destinazione
<a name="CHAP_Target.Redshift.RSServerless"></a>

AWS DMS supporta l'utilizzo di Amazon Redshift Serverless come endpoint di destinazione. Per informazioni sull'uso di Amazon Redshift serverless, consulta [Amazon Redshift serverless](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-serverless.html) nella [Guida alla gestione di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html).

Questo argomento descrive come utilizzare un endpoint Serverless Amazon Redshift con. AWS DMS

**Nota**  
Quando crei un endpoint Serverless Amazon Redshift, per il **DatabaseName**campo della configurazione degli [RedshiftSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_RedshiftSettings.html)endpoint, usa il nome del data warehouse Amazon Redshift o il nome dell'endpoint del gruppo di lavoro. Per il **ServerName**campo, usa il valore di Endpoint visualizzato nella pagina **Workgroup** per il cluster serverless (ad esempio,). `default-workgroup.093291321484.us-east-1.redshift-serverless.amazonaws.com` Per informazioni su come creare un endpoint, vedi [Creazione di endpoint di origine e destinazione](CHAP_Endpoints.Creating.md). Per informazioni sull'endpoint del gruppo di lavoro, consulta [Connessione ad Amazon Redshift serverless](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-connecting.html).

### Policy di attendibilità con Amazon Redshift serverless come destinazione
<a name="CHAP_Target.Redshift.RSServerless.policy"></a>

Quando utilizzi Amazon Redshift serverless come endpoint di destinazione, devi aggiungere la seguente sezione evidenziata alla policy di attendibilità. Questa policy di attendibilità è associata al ruolo `dms-access-for-endpoint`.

Per ulteriori informazioni sull'utilizzo di una politica di fiducia con AWS DMS, consulta. [Creazione dei ruoli IAM da utilizzare con AWS DMS](security-iam.md#CHAP_Security.APIRole)

### Limitazioni all'utilizzo di Amazon Redshift serverless come destinazione
<a name="CHAP_Target.Redshift.RSServerless.Limitations"></a>

L'utilizzo di Redshift serverless come destinazione prevede le seguenti limitazioni:
+ AWS DMS supporta Amazon Redshift Serverless come endpoint solo nelle regioni che supportano Amazon Redshift Serverless. Per informazioni sulle regioni che supportano Amazon Redshift serverless, consulta **API Redshift serverless** nell'argomento [Endpoint e quote di Amazon Redshift](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) della [Guida di riferimento generale di AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html).
+ Quando utilizzi il routing VPC avanzato, assicurati di creare un endpoint Amazon S3 nello stesso VPC del cluster Redshift serverless o del cluster con provisioning Redshift. Per ulteriori informazioni, consulta [Utilizzo del routing VPC avanzato con Amazon Redshift come destinazione per AWS Database Migration Service](#CHAP_Target.Redshift.EnhancedVPC).
+ AWS DMS non supporta Enhanced Throughput for Amazon Redshift Serverless come destinazione. Per ulteriori informazioni, consulta [Throughput migliorato per le migrazioni a pieno carico da Oracle ad Amazon Redshift e Amazon S3](CHAP_Serverless.Components.md#CHAP_Serverless.Throughput).
+ AWS DMS non supporta connessioni ad Amazon Redshift Redshift Serverless quando la modalità SSL è impostata su. `verify-full` Per le connessioni che richiedono la verifica SSL verso destinazioni Serverless di Amazon Redshift, utilizza modalità SSL alternative come o. `require` `verify-ca`