

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à.

# Connessione ai database di origine con AWS Schema Conversion Tool
<a name="CHAP_Source"></a>

AWS Schema Conversion Tool (AWS SCT) può convertire gli schemi dai seguenti database e data warehouse di origine in un database o data warehouse di destinazione. Per informazioni sulle autorizzazioni, sulle connessioni e su cosa è AWS SCT possibile convertire per l'uso con il database o il data warehouse di destinazione, consulta i dettagli nei seguenti argomenti.

**Informazioni sulla crittografia**  
[Connessione a Amazon RDS e Aurora crittografati ](CHAP_Source.Encrypt.RDS.md)

**Fonti di database**
+ [Connessione ad Apache Cassandra](CHAP_Source.Cassandra.md)
+ [Connessione ad Azure SQL](CHAP_Source.AzureSQL.md)
+ [Connessione a IBM for z/OS DB2 ](CHAP_Source.DB2zOS.md)
+ [database IBM Db2 LUW](CHAP_Source.DB2LUW.md)
+ [Utilizzo di MySQL come origine](CHAP_Source.MySQL.md)
+ [I database Oracle](CHAP_Source.Oracle.md)
+ [Database PostgreSQL](CHAP_Source.PostgreSQL.md)
+ [Database SAP](CHAP_Source.SAP.md)
+ [Database SQL Server](CHAP_Source.SQLServer.md)

**Fonti di data warehouse**
+ [Amazon Redshift](CHAP_Source.Redshift.md)
+ [Azure Synapse Analytics come fonte](CHAP_Source.AzureSynapse.md)
+ [BigQuery come fonte](CHAP_Source.BigQuery.md)
+ [Database Greenplum](CHAP_Source.Greenplum.md)
+ [Database Netezza](CHAP_Source.Netezza.md)
+ [Data warehouse Oracle](CHAP_Source.OracleDW.md)
+ [Snowflake](CHAP_Source.Snowflake.md)
+ [Data Warehouse SQL Server](CHAP_Source.SQLServerDW.md)
+ [Database Teradata](CHAP_Source.Teradata.md)
+ [Database Vertica](CHAP_Source.Vertica.md)

**Grandi fonti di dati**
+ [Connessione ad Apache Hadoop](CHAP_Source.Hadoop.md)
+ [Connessione ad Apache Oozie](CHAP_Source.Oozie.md)

# Connessione a database crittografati di Amazon Relational Database Service e Amazon Aurora con il AWS Schema Conversion Tool
<a name="CHAP_Source.Encrypt.RDS"></a>

Per aprire connessioni crittografate ai database Amazon RDS o Amazon Aurora da un'applicazione, devi AWS importare i certificati root in una qualche forma di archiviazione delle chiavi. Puoi scaricare i certificati root dalla pagina AWS [Using SSL/TLS to encrypt a connection to a DB nella Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) *RDS User* Guide. 

Sono disponibili due opzioni, un certificato root che funziona per tutte le AWS regioni e un pacchetto di certificati che contiene sia i vecchi che i nuovi certificati root.

A seconda del tipo che desideri utilizzare, segui i passaggi di una delle due procedure seguenti.

**Per importare il certificato o i certificati nella memoria di sistema Windows**

1. Scarica uno o più certificati da una delle seguenti fonti:

   Per informazioni sul download dei certificati, consulta [Using SSL/TLS to encrypt a connection to a DB nella Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) *RDS User* Guide.

1. Nella finestra di ricerca di Windows, inserisci. **Manage computer certificates** Quando viene richiesto se consentire all'applicazione di apportare modifiche al computer, scegliete **Sì**.

1. Quando si apre la finestra dei certificati, se necessario espandi **Certificati - Computer locale** in modo da visualizzare l'elenco dei certificati. Apri il menu contestuale (con il pulsante destro del mouse) per **Trusted Root Certification Authorities**, quindi scegli **Tutte le attività**, **Importa**.

1. Scegli **Avanti**, quindi **Sfoglia** e trova il `*.pem` file scaricato nel passaggio 1. Scegli **Apri** per selezionare il file del certificato, scegli **Avanti**, quindi scegli **Fine**.
**Nota**  
Per trovare il file, modificate il tipo di file nella finestra di navigazione selezionando **Tutti i file (\$1.\$1)**, poiché non `.pem` è un'estensione di certificato standard.

1. Nella Microsoft Management Console, espandi **Certificati**. Quindi espandi **Trusted Root Certification Authorities****, scegli Certificati** e trova il certificato per confermare che esiste. Il nome del certificato inizia con`Amazon RDS`.

1. Riavviare il computer.

**Per importare il certificato o i certificati in Java KeyStore**

1. Scarica il certificato o i certificati da una delle seguenti fonti:

   Per informazioni sul download dei certificati, consulta [Using SSL/TLS to encrypt a connection to a DB nella Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) *RDS User* Guide.

1. Se hai scaricato il pacchetto di certificati, suddividilo in singoli file di certificati. A tale scopo, posiziona ogni blocco di certificati, che inizia con `-----BEGIN CERTIFICATE-----` e termina con, `-----END CERTIFICATE-----` in un `*.pem` file separato. Dopo aver creato un `*.pem` file separato per ogni certificato, puoi rimuovere in sicurezza il file del pacchetto di certificati.

1. Apri una finestra di comando o una sessione di terminale nella directory in cui hai scaricato il certificato ed esegui il comando seguente per ogni `*.pem` file creato nel passaggio precedente.

   ```
   keytool -importcert -file <filename>.pem -alias <filename>.pem -keystore storename
   ```  
**Example**  

   L'esempio seguente presuppone che il `eu-west-1-bundle.pem` file sia stato scaricato.

   ```
   keytool -importcert -file eu-west-1-bundle.pem -alias eu-west-1-bundle.pem -keystore trust-2019.ks
   Picked up JAVA_TOOL_OPTIONS: -Dlog4j2.formatMsgNoLookups=true
   Enter keystore password:
   Re-enter new password:
   Owner: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
   Issuer: CN=Amazon RDS Root 2019 CA, OU=Amazon RDS, O="Amazon Web Services, Inc.", ST=Washington, L=Seattle, C=US
   Serial number: c73467369250ae75
   Valid from: Thu Aug 22 19:08:50 CEST 2019 until: Thu Aug 22 19:08:50 CEST 2024
   Certificate fingerprints:
            SHA1: D4:0D:DB:29:E3:75:0D:FF:A6:71:C3:14:0B:BF:5F:47:8D:1C:80:96
            SHA256: F2:54:C7:D5:E9:23:B5:B7:51:0C:D7:9E:F7:77:7C:1C:A7:E6:4A:3C:97:22:E4:0D:64:54:78:FC:70:AA:D0:08
   Signature algorithm name: SHA256withRSA
   Subject Public Key Algorithm: 2048-bit RSA key
   Version: 3
   
   Extensions:
   
   #1: ObjectId: 2.5.29.35 Criticality=false
   AuthorityKeyIdentifier [
   KeyIdentifier [
   0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
   0010: 60 FF BC 1F                                        `...
   ]
   ]
   
   #2: ObjectId: 2.5.29.19 Criticality=true
   BasicConstraints:[
     CA:true
     PathLen:2147483647
   ]
   
   #3: ObjectId: 2.5.29.15 Criticality=true
   KeyUsage [
     Key_CertSign
     Crl_Sign
   ]
   
   #4: ObjectId: 2.5.29.14 Criticality=false
   SubjectKeyIdentifier [
   KeyIdentifier [
   0000: 73 5F 60 D8 BC CB 03 98   F4 2B 17 34 2E 36 5A A6  s_`......+.4.6Z.
   0010: 60 FF BC 1F                                        `...
   ]
   ]
   
   Trust this certificate? [no]:  yes
   Certificate was added to keystore
   ```

1. Aggiungere il keystore come trust store in. AWS SCT A tale scopo, dal menu principale scegli **Impostazioni, Impostazioni** **globali**, **Sicurezza**, **Trust store**, quindi **seleziona Seleziona archivio attendibile esistente**. 

   Dopo aver aggiunto il trust store, puoi utilizzarlo per configurare una connessione con SSL abilitata quando crei una AWS SCT connessione al database. Nella finestra di dialogo AWS SCT **Connetti al database**, scegli **Usa SSL** e scegli l'archivio di fiducia inserito in precedenza.

# Connessione ai database Apache Cassandra con AWS Schema Conversion Tool
<a name="CHAP_Source.Cassandra"></a>

Puoi usarlo AWS SCT per convertire gli spazi chiave da Apache Cassandra ad Amazon DynamoDB. 

## Connessione ad Apache Cassandra come sorgente
<a name="CHAP_Source.Cassandra.Connecting"></a>

Usa la seguente procedura per connetterti al tuo database di origine di Apache Cassandra con. AWS Schema Conversion Tool

**Per connettersi a un database di origine di Apache Cassandra**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi** fonte. 

1. Scegli **Cassandra**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni di connessione al database di origine di Apache Cassandra, utilizzate le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Cassandra.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

# Connessione ai database Apache Hadoop con AWS Schema Conversion Tool
<a name="CHAP_Source.Hadoop"></a>

Puoi utilizzare l'interfaccia a riga di AWS SCT comando (CLI) per migrare da Apache Hadoop ad Amazon EMR. AWS SCT utilizza il bucket Amazon S3 come storage temporaneo per i dati durante la migrazione.

AWS SCT supporta come sorgente Apache Hadoop versione 2.2.0 e successive. Inoltre, AWS SCT supporta la versione 0.13.0 e successive di Apache Hive.

AWS SCT supporta come destinazione Amazon EMR versione 6.3.0 e successive. Inoltre, AWS SCT supporta come destinazione Apache Hadoop versione 2.6.0 e successive e Apache Hive versione 0.13.0 e successive.

**Topics**
+ [Prerequisiti per l'utilizzo di Apache Hadoop come sorgente](#CHAP_Source.Hadoop.Prerequisites)
+ [Autorizzazioni per l'utilizzo di Hive come fonte](#CHAP_Source.Hadoop.Permissions)
+ [Autorizzazioni per l'utilizzo di HDFS come sorgente](#CHAP_Source.Hadoop.PermissionsHDFS)
+ [Autorizzazioni per l'utilizzo di HDFS come destinazione](#CHAP_Source.Hadoop.PermissionsHDFSTarget)
+ [Connessione ad Apache Hadoop come sorgente](#CHAP_Source.Hadoop.Connecting)
+ [Connessione ai servizi Hive e HDFS di origine](#CHAP_Source.Hadoop.Hive)
+ [Connessione ad Amazon EMR come destinazione](#CHAP_Source.Hadoop.Target)

## Prerequisiti per l'utilizzo di Apache Hadoop come sorgente
<a name="CHAP_Source.Hadoop.Prerequisites"></a>

I seguenti prerequisiti sono necessari per connettersi ad Apache Hadoop con la CLI. AWS SCT 
+ Crea un bucket Amazon S3 per archiviare i dati durante la migrazione. Puoi quindi copiare i dati su Amazon EMR HDFS o utilizzare Amazon S3 come repository di dati per i tuoi carichi di lavoro Hadoop. Per ulteriori informazioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella *Guida per l’utente di Amazon S3*.
+ Crea un ruolo AWS Identity and Access Management (IAM) con la policy. `AmazonS3FullAccess` AWS SCT utilizza questo ruolo IAM per accedere al tuo bucket Amazon S3.
+ Prendi nota della tua chiave AWS segreta e della chiave di accesso AWS segreta. Per ulteriori informazioni sulle chiavi di AWS accesso, consulta [Managing access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) nella *IAM User Guide*.
+ Crea e configura un cluster Amazon EMR di destinazione. Per ulteriori informazioni, consulta la sezione [Guida introduttiva ad Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html) nella Amazon *EMR Management Guide.*
+ Installa l'`distcp`utilità sul tuo cluster Apache Hadoop di origine. Inoltre, installa l'`s3-dist-cp`utilità sul cluster Amazon EMR di destinazione. Assicurati che gli utenti del database dispongano delle autorizzazioni necessarie per eseguire queste utilità.
+ Configura il `core-site.xml` file nel cluster Hadoop di origine per utilizzare il protocollo s3a. A tale scopo, impostate il `fs.s3a.aws.credentials.provider` parametro su uno dei seguenti valori.
  + `org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider`
  + `org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider`
  + `org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider`
  + `org.apache.hadoop.fs.s3a.auth.AssumedRoleCredentialProvider`

  È possibile aggiungere il seguente esempio di codice nel `core-site.xml` file.

  ```
  <property>
    <name>fs.s3a.aws.credentials.provider</name>
    <value>org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider</value>
  </property>
  ```

  L'esempio precedente mostra una delle quattro opzioni del precedente elenco di opzioni. Se non impostate il `fs.s3a.aws.credentials.provider` parametro nel `core-site.xml` file, AWS SCT sceglie automaticamente il provider.

## Autorizzazioni per l'utilizzo di Hive come fonte
<a name="CHAP_Source.Hadoop.Permissions"></a>

Le autorizzazioni richieste per un utente sorgente Hive sono le seguenti:
+ `READ`accesso alle cartelle di dati di origine e al bucket Amazon S3 di origine
+ `READ+WRITE`accesso ai bucket Amazon S3 intermedi e di destinazione

Per aumentare la velocità di migrazione, ti consigliamo di eseguire la compattazione per le tabelle di origine ACID-Transactional.

Le autorizzazioni richieste per un utente target di Amazon EMR Hive sono le seguenti:
+ `READ`accesso al bucket Amazon S3 di destinazione
+ `READ+WRITE`accesso al bucket Amazon S3 intermedio
+ `READ+WRITE`accesso alle cartelle HDFS di destinazione

## Autorizzazioni per l'utilizzo di HDFS come sorgente
<a name="CHAP_Source.Hadoop.PermissionsHDFS"></a>

Le autorizzazioni richieste per HDFS come sorgente sono le seguenti:
+ `EXECUTE`per NameNode
+ `EXECUTE+READ`per tutte le cartelle e i file di origine inclusi nel progetto di migrazione
+ `READ+WRITE`per la `tmp` directory in cui NameNode eseguire i job Spark e archiviare i file prima della migrazione ad Amazon S3

In HDFS, tutte le operazioni richiedono un accesso trasversale. L'accesso trasversale richiede l'`EXECUTE`autorizzazione su tutti i componenti esistenti del percorso, ad eccezione del componente del percorso finale. Ad esempio, per qualsiasi operazione di accesso`/foo/bar/baz`, l'utente deve disporre dell'`EXECUTE`autorizzazione su `/``/foo`, e. `/foo/bar`

Il seguente esempio di codice mostra come concedere `EXECUTE+READ` le autorizzazioni per le cartelle e i file di origine e le `READ+WRITE` autorizzazioni per la directory. `tmp`

```
hadoop fs –chmod –R 744 /user/hdfs-data
hadoop fs –chmod –R 766 /tmp
```

## Autorizzazioni per l'utilizzo di HDFS come destinazione
<a name="CHAP_Source.Hadoop.PermissionsHDFSTarget"></a>

Le autorizzazioni richieste per Amazon EMR HDFS come destinazione sono le seguenti:
+ `EXECUTE`per il NameNode cluster Amazon EMR di destinazione
+ `READ+WRITE`per le cartelle HDFS di destinazione in cui archivierai i dati dopo la migrazione

## Connessione ad Apache Hadoop come sorgente
<a name="CHAP_Source.Hadoop.Connecting"></a>

È possibile utilizzare Apache Hadoop come sorgente nella versione 1.0.670 o superiore. AWS SCT Puoi migrare i cluster Hadoop su Amazon EMR solo nell'interfaccia a riga di AWS SCT comando (CLI). Prima di iniziare, acquisisci familiarità con l'interfaccia a riga di comando di. AWS SCT Per ulteriori informazioni, consulta [Riferimento CLI per AWS Schema Conversion Tool](CHAP_Reference.md).

**Per connettersi ad Apache Hadoop nella CLI AWS SCT**

1. Crea un nuovo script AWS SCT CLI o modifica un modello di scenario esistente. Ad esempio, puoi scaricare e modificare il `HadoopMigrationTemplate.scts` modello. Per ulteriori informazioni, consulta [Ottenere scenari CLI](CHAP_Reference.md#CHAP_Reference.Scenario).

1. Configura le impostazioni AWS SCT dell'applicazione come la posizione del driver e la cartella di registro.

   Scaricate il driver JDBC richiesto e specificate la posizione in cui archiviate il file. Per ulteriori informazioni, consulta [Installazione dei driver JDBC per AWS Schema Conversion Tool](CHAP_Installing.JDBCDrivers.md).

   Il seguente esempio di codice mostra come aggiungere il percorso al driver Apache Hive. Dopo aver eseguito questo esempio di codice, AWS SCT memorizza i file di registro nella `c:\sct` cartella.

   ```
   SetGlobalSettings
       -save: 'true'
       -settings: '{
           "hive_driver_file": "c:\\sct\\HiveJDBC42.jar",
           "log_folder": "c:\\sct",
           "console_log_folder": "c:\\sct"
       }'
   /
   ```

   È possibile utilizzare questo esempio e gli esempi seguenti in Windows.

1. Crea un nuovo AWS SCT progetto.

   Il seguente esempio di codice crea il `hadoop_emr` progetto nella `c:\sct` cartella.

   ```
   CreateProject
       -name: 'hadoop_emr'
       -directory: 'c:\sct'
   /
   ```

1. Aggiungi il tuo cluster Hadoop di origine al progetto.

   Usa il `AddSourceCluster` comando per connetterti al cluster Hadoop di origine. Assicurati di fornire i valori per i seguenti parametri obbligatori:`name`, `host``port`, e. `user` Gli altri parametri sono facoltativi.

   Il seguente esempio di codice aggiunge il cluster Hadoop di origine. Questo esempio imposta `HADOOP_SOURCE` come nome del cluster di origine. Utilizzate questo nome di oggetto per aggiungere i servizi Hive e HDFS al progetto e creare regole di mappatura.

   ```
   AddSourceCluster
       -name: 'HADOOP_SOURCE'
       -vendor: 'HADOOP'
       -host: 'hadoop_address'
       -port: '22'
       -user: 'hadoop_user'
       -password: 'hadoop_password'
       -useSSL: 'true'
       -privateKeyPath: 'c:\path\name.pem'
       -passPhrase: 'hadoop_passphrase'
   /
   ```

   Nell'esempio precedente, sostituiscilo *hadoop\$1address* con l'indirizzo IP del tuo cluster Hadoop. Se necessario, configura il valore dell'opzione di porta. Quindi, sostituisci *hadoop\$1user* e *hadoop\$1password* con il nome del tuo utente Hadoop e la password per questo utente. Ad esempio*path\$1name*, inserisci il nome e il percorso del file PEM per il tuo cluster Hadoop di origine.

1. Salva lo script CLI. Quindi, aggiungi le informazioni di connessione per i tuoi servizi Hive e HDFS.

## Connessione ai servizi Hive e HDFS di origine
<a name="CHAP_Source.Hadoop.Hive"></a>

Puoi connetterti ai servizi Hive e HDFS di origine con la AWS SCT CLI. Per connetterti ad Apache Hive, usa la versione 2.3.4 o successiva del driver JDBC Hive. Per ulteriori informazioni, consulta [Installazione dei driver JDBC per AWS Schema Conversion Tool](CHAP_Installing.JDBCDrivers.md).

AWS SCT si connette ad Apache Hive con l'utente del cluster. `hadoop` Per farlo, usa i comandi `AddSourceClusterHive` and`AddSourceClusterHDFS`. È possibile utilizzare uno dei seguenti approcci.
+ Crea un nuovo tunnel SSH.

  In `createTunnel`, immettere **true**. Per`host`, inserisci l'indirizzo IP interno del tuo servizio Hive o HDFS di origine. Per`port`, inserisci la porta di servizio del tuo servizio Hive o HDFS.

  Quindi, inserisci le tue credenziali Hive o HDFS per e. `user` `password` Per ulteriori informazioni sui tunnel SSH, consulta [Configurare un tunnel SSH sul nodo primario utilizzando il port forwarding locale](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ssh-tunnel-local.html) nella Amazon EMR Management Guide.
+ Usa un tunnel SSH esistente.

  In `host`, immettere **localhost**. Per`port`, inserisci la porta locale dai parametri del tunnel SSH.
+ Connect direttamente ai servizi Hive e HDFS.

  Ad esempio`host`, inserisci l'indirizzo IP o il nome host del servizio Hive o HDFS di origine. Ad esempio`port`, inserisci la porta di servizio del tuo servizio Hive o HDFS. Quindi, inserisci le tue credenziali Hive o HDFS per e. `user` `password`

**Per connettersi a Hive e HDFS nella CLI AWS SCT**

1. Apri lo script CLI che include le informazioni di connessione per il tuo cluster Hadoop di origine. Assicurati di utilizzare il nome del cluster Hadoop definito nel passaggio precedente.

1. Aggiungi il tuo servizio Hive di origine al progetto.

   Usa il `AddSourceClusterHive` comando per connettere il servizio Hive di origine. Assicurati di fornire i valori per i seguenti parametri obbligatori:`user`,`password`, `cluster``name`, e`port`. Gli altri parametri sono facoltativi.

   Il seguente esempio di codice crea un tunnel AWS SCT per l'utilizzo del servizio Hive. Questo servizio sorgente Hive viene eseguito sullo stesso PC di. AWS SCT Questo esempio utilizza il cluster `HADOOP_SOURCE` di origine dell'esempio precedente.

   ```
   AddSourceClusterHive
       -cluster: 'HADOOP_SOURCE'
       -name: 'HIVE_SOURCE'
       -host: 'localhost'
       -port: '10005'
       -user: 'hive_user'
       -password: 'hive_password'
       -createTunnel: 'true'
       -localPort: '10005'
       -remoteHost: 'hive_remote_address'
       -remotePort: 'hive_port'
   /
   ```

   Il seguente esempio di codice si connette al servizio Hive senza un tunnel.

   ```
   AddSourceClusterHive
       -cluster: 'HADOOP_SOURCE'
       -name: 'HIVE_SOURCE'
       -host: 'hive_address'
       -port: 'hive_port'
       -user: 'hive_user'
       -password: 'hive_password'
   /
   ```

   Negli esempi precedenti, sostituisci *hive\$1user* e *hive\$1password* con il nome del tuo utente Hive e la password per questo utente.

   Quindi, sostituisci *hive\$1address* e *hive\$1port* con l'indirizzo NameNode IP e la porta del cluster Hadoop di origine.

   Infatti*hive\$1remote\$1address*, è possibile utilizzare il valore predefinito `127.0.0.1` o l'indirizzo NameNode IP del servizio Hive di origine.

1. Aggiungi il tuo servizio HDFS di origine al progetto.

   Usa il `AddSourceClusterHDFS` comando per connettere il servizio HDFS di origine. Assicurati di fornire i valori per i seguenti parametri obbligatori:`user`,`password`, `cluster``name`, e`port`. Gli altri parametri sono facoltativi.

   Assicurati che l'utente disponga delle autorizzazioni necessarie per migrare i dati dal servizio HDFS di origine. Per ulteriori informazioni, consulta [Autorizzazioni per l'utilizzo di Hive come fonte](#CHAP_Source.Hadoop.Permissions).

   Il seguente esempio di codice crea un tunnel AWS SCT per l'utilizzo del servizio Apache HDFS. Questo esempio utilizza il cluster `HADOOP_SOURCE` di origine creato in precedenza.

   ```
   AddSourceClusterHDFS
       -cluster: 'HADOOP_SOURCE'
       -name: 'HDFS_SOURCE'
       -host: 'localhost'
       -port: '9005'
       -user: 'hdfs_user'
       -password: 'hdfs_password'
       -createTunnel: 'true'
       -localPort: '9005'
       -remoteHost: 'hdfs_remote_address'
       -remotePort: 'hdfs_port'
   /
   ```

   Il codice seguente si connette al servizio Apache HDFS senza tunnel.

   ```
   AddSourceClusterHDFS
       -cluster: 'HADOOP_SOURCE'
       -name: 'HDFS_SOURCE'
       -host: 'hdfs_address'
       -port: 'hdfs_port'
       -user: 'hdfs_user'
       -password: 'hdfs_password'
   /
   ```

   Negli esempi precedenti, sostituisci *hdfs\$1user* e *hdfs\$1password* con il nome del tuo utente HDFS e la password per questo utente.

   Quindi, sostituisci *hdfs\$1address* e *hdfs\$1port* con l'indirizzo NameNode IP e la porta del cluster Hadoop di origine.

   Infatti*hdfs\$1remote\$1address*, è possibile utilizzare il valore predefinito `127.0.0.1` o l'indirizzo NameNode IP del servizio Hive di origine.

1. Salva lo script CLI. Successivamente, aggiungi le informazioni di connessione per il cluster Amazon EMR di destinazione e i comandi di migrazione.

## Connessione ad Amazon EMR come destinazione
<a name="CHAP_Source.Hadoop.Target"></a>

Puoi connetterti al cluster Amazon EMR di destinazione con la CLI AWS SCT . A tal fine, autorizzi il traffico in entrata e utilizzi SSH. In questo caso, AWS SCT dispone di tutte le autorizzazioni necessarie per lavorare con il tuo cluster Amazon EMR. Per ulteriori informazioni, consulta [Prima della connessione e Connessione](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-ssh-prereqs.html) [al nodo primario tramite SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) nella Amazon EMR Management Guide.

AWS SCT si connette ad Amazon EMR Hive con l'utente del `hadoop` cluster. Per connetterti ad Amazon EMR Hive, usa la versione del driver JDBC Hive 2.6.2.1002 o successiva. Per ulteriori informazioni, consulta [Installazione dei driver JDBC per AWS Schema Conversion Tool](CHAP_Installing.JDBCDrivers.md).

**Per connettersi ad Amazon EMR nella CLI AWS SCT**

1. Apri lo script CLI che include le informazioni di connessione per il tuo cluster Hadoop di origine. Aggiungi le credenziali Amazon EMR di destinazione in questo file.

1. Aggiungi il cluster Amazon EMR di destinazione al progetto.

   Il seguente esempio di codice aggiunge il cluster Amazon EMR di destinazione. Questo esempio imposta `HADOOP_TARGET` come nome del cluster di destinazione. Usa questo nome di oggetto per aggiungere i tuoi servizi Hive e HDFS e una cartella bucket Amazon S3 al progetto e creare regole di mappatura.

   ```
   AddTargetCluster
   	-name: 'HADOOP_TARGET'
   	-vendor: 'AMAZON_EMR'
   	-host: 'ec2-44-44-55-66.eu-west-1.EXAMPLE.amazonaws.com'
   	-port: '22'
   	-user: 'emr_user'
   	-password: 'emr_password'
   	-useSSL: 'true'
   	-privateKeyPath: 'c:\path\name.pem'
   	-passPhrase: '1234567890abcdef0!'
   	-s3Name: 'S3_TARGET'
   	-accessKey: 'AKIAIOSFODNN7EXAMPLE'
   	-secretKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
   	-region: 'eu-west-1'
   	-s3Path: 'doc-example-bucket/example-folder'
   /
   ```

   Nell'esempio precedente, inserisci i nomi AWS delle risorse e le informazioni di connessione Amazon EMR. Ciò include l'indirizzo IP del cluster Amazon EMR, la chiave di AWS accesso, la chiave di accesso AWS segreta e il bucket Amazon S3. Se necessario, configura il valore della variabile di porta. Quindi, sostituisci *emr\$1user* e *emr\$1password* con il nome del tuo utente Amazon EMR e la password per questo utente. Per*path\$1name*, inserisci il nome e il percorso del file PEM per il cluster Amazon EMR di destinazione. Per ulteriori informazioni, vedere [Download del file PEM per EMR Cluster Access.](https://docs.aws.amazon.com/whitepapers/latest/teaching-big-data-skills-with-amazon-emr/download-pem-file-for-emr-cluster-access.html)

1. Aggiungi il bucket Amazon S3 di destinazione al progetto.

   Il seguente esempio di codice aggiunge il bucket Amazon S3 di destinazione. Questo esempio utilizza il `HADOOP_TARGET` cluster creato in precedenza.

   ```
   AddTargetClusterS3
   	-cluster: 'HADOOP_TARGET'
   	-Name: 'S3_TARGET'
   	-accessKey: 'AKIAIOSFODNN7EXAMPLE'
   	-secretKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
   	-region: 'eu-west-1'
   	-s3Path: 'doc-example-bucket/example-folder'
   /
   ```

   Nell'esempio precedente, inserisci la chiave di AWS accesso, la chiave di accesso AWS segreta e il bucket Amazon S3.

1. Aggiungi il servizio Hive di destinazione al progetto.

   Il seguente esempio di codice crea un tunnel per AWS SCT lavorare con il servizio Hive di destinazione. Questo esempio utilizza il cluster `HADOOP_TARGET` di destinazione creato in precedenza.

   ```
   AddTargetClusterHive
       -cluster: 'HADOOP_TARGET'
       -name: 'HIVE_TARGET'
       -host: 'localhost'
       -port: '10006'
       -user: 'hive_user'
       -password: 'hive_password'
       -createTunnel: 'true'
       -localPort: '10006'
       -remoteHost: 'hive_address'
       -remotePort: 'hive_port'
   /
   ```

   Nell'esempio precedente, sostituisci *hive\$1user* e *hive\$1password* con il nome del tuo utente Hive e la password per questo utente.

   Successivamente, *hive\$1address* sostituiscilo con il valore predefinito `127.0.0.1` o con l'indirizzo NameNode IP del servizio Hive di destinazione. Successivamente, *hive\$1port* sostituiscilo con la porta del servizio Hive di destinazione.

1. Aggiungi il servizio HDFS di destinazione al progetto.

   Il seguente esempio di codice crea un tunnel per AWS SCT lavorare con il servizio Apache HDFS. Questo esempio utilizza il cluster `HADOOP_TARGET` di destinazione creato in precedenza.

   ```
   AddTargetClusterHDFS
       -cluster: 'HADOOP_TARGET'
       -name: 'HDFS_TARGET'
       -host: 'localhost'
       -port: '8025'
       -user: 'hdfs_user'
       -password: 'hdfs_password'
       -createTunnel: 'true'
       -localPort: '8025'
       -remoteHost: 'hdfs_address'
       -remotePort: 'hdfs_port'
   /
   ```

   Nell'esempio precedente, sostituisci *hdfs\$1user* e *hdfs\$1password* con il nome del tuo utente HDFS e la password per questo utente.

   Quindi, sostituisci *hdfs\$1address* e *hdfs\$1port* con l'indirizzo IP e la porta privati del servizio NameNode HDFS di destinazione.

1. Salva lo script CLI. Quindi, aggiungi regole di mappatura e comandi di migrazione. Per ulteriori informazioni, consulta [Migrazione dei carichi di lavoro Hadoop](big-data-hadoop.md).

# Connessione ai flussi di lavoro di Apache Oozie con AWS Schema Conversion Tool
<a name="CHAP_Source.Oozie"></a>

È possibile utilizzare l'interfaccia a riga di AWS SCT comando (CLI) per convertire i flussi di lavoro di Apache Oozie in. AWS Step Functions Dopo aver migrato i carichi di lavoro Apache Hadoop su Amazon EMR, puoi utilizzare un servizio nativo per orchestrare i tuoi lavori. Cloud AWS Per ulteriori informazioni, consulta [Connessione ad Apache Hadoop](CHAP_Source.Hadoop.md).

AWS SCT converte i flussi di lavoro di Oozie e li utilizza per emulare funzionalità che non supporta. AWS Step Functions AWS Lambda AWS Step Functions Inoltre, AWS SCT converte le proprietà del lavoro di Oozie in. AWS Systems Manager

Per convertire i flussi di lavoro di Apache Oozie, assicurati di utilizzare AWS SCT la versione 1.0.671 o successiva. Inoltre, acquisisci familiarità con l'interfaccia a riga di comando di. AWS SCT Per ulteriori informazioni, consulta [Riferimento CLI per AWS Schema Conversion Tool](CHAP_Reference.md).

## Prerequisiti per l'utilizzo di Apache Oozie come sorgente
<a name="CHAP_Source.Oozie.Prerequisites"></a>

I seguenti prerequisiti sono necessari per connettersi ad Apache Oozie con la CLI. AWS SCT 
+ Crea un bucket Amazon S3 per archiviare le definizioni delle macchine a stati. Puoi usare queste definizioni per configurare le tue macchine a stati. Per ulteriori informazioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella *Guida per l’utente di Amazon S3*.
+ Crea un ruolo AWS Identity and Access Management (IAM) con la `AmazonS3FullAccess` policy. AWS SCT utilizza questo ruolo IAM per accedere al tuo bucket Amazon S3.
+ Prendi nota della tua chiave AWS segreta e della chiave di accesso AWS segreta. Per ulteriori informazioni sulle chiavi di AWS accesso, consulta [Managing access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) nella *IAM User Guide*.
+ Archivia AWS le tue credenziali e le informazioni sul tuo bucket Amazon S3 nel profilo AWS del servizio nelle impostazioni globali dell'applicazione. Quindi, AWS SCT utilizza questo profilo di AWS servizio per lavorare con le tue risorse. AWS Per ulteriori informazioni, consulta [Gestione dei profili in AWS Schema Conversion Tool](CHAP_UserInterface.Profiles.md).

Per lavorare con i flussi di lavoro di Apache Oozie di origine, è AWS SCT necessaria la struttura specifica dei file sorgente. Ciascuna cartella dell'applicazione deve includere il file. `job.properties` Questo file include coppie chiave-valore delle proprietà del lavoro. Inoltre, ogni cartella dell'applicazione deve includere il `workflow.xml` file. Questo file descrive i nodi di azione e i nodi di flusso di controllo del flusso di lavoro.

## Connessione ad Apache Oozie come sorgente
<a name="CHAP_Source.Oozie.Connecting"></a>

Usa la seguente procedura per connetterti ai tuoi file sorgente di Apache Oozie.

**Per connettersi ad Apache Oozie nella CLI AWS SCT**

1. Crea un nuovo script AWS SCT CLI o modifica un modello di scenario esistente. Ad esempio, puoi scaricare e modificare il `OozieConversionTemplate.scts` modello. Per ulteriori informazioni, consulta [Ottenere scenari CLI](CHAP_Reference.md#CHAP_Reference.Scenario).

1. Configura le impostazioni AWS SCT dell'applicazione.

   Il seguente esempio di codice salva le impostazioni dell'applicazione e consente di memorizzare le password nel progetto. È possibile utilizzare queste impostazioni salvate in altri progetti.

   ```
   SetGlobalSettings
       -save: 'true'
       -settings: '{
           "store_password": "true"
       }'
   /
   ```

1. Crea un nuovo AWS SCT progetto.

   Il seguente esempio di codice crea il `oozie` progetto nella `c:\sct` cartella.

   ```
   CreateProject
       -name: 'oozie'
       -directory: 'c:\sct'
   /
   ```

1. Aggiungi la cartella con i file sorgente di Apache Oozie al progetto usando il `AddSource` comando. Assicurati di utilizzare il `APACHE_OOZIE` valore per il `vendor` parametro. Fornite inoltre i valori per i seguenti parametri obbligatori: `name` e`mappingsFolder`.

   Il seguente esempio di codice aggiunge Apache Oozie come sorgente nel AWS SCT progetto. Questo esempio crea un oggetto sorgente con il nome. `OOZIE` Utilizzate questo nome di oggetto per aggiungere regole di mappatura. Dopo aver eseguito questo esempio di codice, AWS SCT utilizza la `c:\oozie` cartella per caricare i file sorgente nel progetto.

   ```
   AddSource
       -name: 'OOZIE'
       -vendor: 'APACHE_OOZIE'
       -mappingsFolder: 'c:\oozie'
   /
   ```

   È possibile utilizzare questo esempio e gli esempi seguenti in Windows.

1. Connect ai file di origine di Apache Oozie utilizzando il `ConnectSource` comando. Usa il nome dell'oggetto sorgente che hai definito nel passaggio precedente.

   ```
   ConnectSource
       -name: 'OOZIE'
       -mappingsFolder: 'c:\oozie'
   /
   ```

1. Salva lo script CLI. Quindi, aggiungi le informazioni di connessione per il tuo AWS Step Functions servizio.

## Autorizzazioni per l'utilizzo AWS Lambda delle funzioni nel pacchetto di estensione
<a name="CHAP_Source.Oozie.TargetPrerequisites"></a>

Per le funzioni di origine che AWS Step Functions non sono supportate, AWS SCT crea un pacchetto di estensione. Questo pacchetto di estensione include AWS Lambda funzioni che emulano le funzioni di origine.

Per utilizzare questo pacchetto di estensione, crea un ruolo AWS Identity and Access Management (IAM) con le seguenti autorizzazioni.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "lambda",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:498160209112:function:LoadParameterInitialState:*",
                "arn:aws:lambda:*:498160209112:function:EvaluateJSPELExpressions:*"
            ]
        },
        {
            "Sid": "emr",
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:DescribeStep",
                "elasticmapreduce:AddJobFlowSteps"
            ],
            "Resource": [
                "arn:aws:elasticmapreduce:*:498160209112:cluster/*"
            ]
        },
        {
            "Sid": "s3",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::*/*"
            ]
        }
    ]
}
```

------

Per applicare il pacchetto di estensione, è AWS SCT necessario un ruolo IAM con le seguenti autorizzazioni.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRolePolicies",
                "iam:CreateRole",
                "iam:TagRole",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DeleteRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/sct/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRolePolicies"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/lambda_LoadParameterInitialStateRole",
                "arn:aws:iam::111122223333:role/lambda_EvaluateJSPELExpressionsRole",
                "arn:aws:iam::111122223333:role/stepFunctions_MigratedOozieWorkflowRole"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:CreateFunction",
                "lambda:UpdateFunctionCode",
                "lambda:DeleteFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:LoadParameterInitialState",
                "arn:aws:lambda:*:111122223333:function:EvaluateJSPELExpressions"
            ]
        }
    ]
}
```

------

## Connessione a AWS Step Functions come destinazione
<a name="CHAP_Source.Oozie.Target"></a>

Utilizza la seguente procedura per connetterti AWS Step Functions come destinazione.

**A cui connettersi AWS Step Functions nella AWS SCT CLI**

1. Apri lo script CLI che include le informazioni di connessione per i tuoi file sorgente di Apache Oozie.

1. Aggiungi le informazioni sul tuo obiettivo di migrazione nel AWS SCT progetto utilizzando il comando. `AddTarget` Assicurati di utilizzare il `STEP_FUNCTIONS` valore per il `vendor` parametro. Fornite inoltre i valori per i seguenti parametri obbligatori: `name` e`profile`.

   Il seguente esempio di codice aggiunge AWS Step Functions come sorgente nel AWS SCT progetto. Questo esempio crea un oggetto di destinazione con il nome`AWS_STEP_FUNCTIONS`. Utilizzate questo nome di oggetto quando create regole di mappatura. Inoltre, questo esempio utilizza un profilo di AWS SCT servizio creato nella fase dei prerequisiti. Assicurati di sostituirlo *profile\$1name* con il nome del tuo profilo.

   ```
   AddTarget
       -name: 'AWS_STEP_FUNCTIONS'
       -vendor: 'STEP_FUNCTIONS'
       -profile: 'profile_name'
   /
   ```

   Se non utilizzi il profilo del AWS servizio, assicurati di fornire i valori per i seguenti parametri obbligatori: `accessKey``secretKey`,`awsRegion`, e`s3Path`. Utilizza questi parametri per specificare la chiave di accesso AWS AWS segreta Regione AWS, la chiave segreta e il percorso del bucket Amazon S3.

1. Connect a AWS Step Functions usando il `ConnectTarget` comando. Utilizzate il nome dell'oggetto di destinazione definito nel passaggio precedente.

   Il seguente esempio di codice si connette all'oggetto di `AWS_STEP_FUNCTIONS` destinazione utilizzando il profilo del AWS servizio. Assicurati di sostituirlo *profile\$1name* con il nome del tuo profilo.

   ```
   ConnectTarget
       -name: 'AWS_STEP_FUNCTIONS'
       -profile: 'profile_name'
   /
   ```

1. Salva lo script CLI. Quindi, aggiungi regole di mappatura e comandi di migrazione. Per ulteriori informazioni, consulta [Conversione dei flussi di lavoro Oozie;](big-data-oozie.md).

# Connessione ai database SQL di Microsoft Azure con AWS SCT
<a name="CHAP_Source.AzureSQL"></a>

È possibile utilizzare AWS SCT per convertire schemi, oggetti di codice e codice dell'applicazione dal database SQL di Azure ai seguenti obiettivi: 
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition

**Topics**
+ [Privilegi per il database SQL di Azure come origine](#CHAP_Source.AzureSQL.Permissions)
+ [Connessione al database SQL di Azure come origine](#CHAP_Source.AzureSQL.Connecting)

## Privilegi per il database SQL di Azure come origine
<a name="CHAP_Source.AzureSQL.Permissions"></a>

I privilegi richiesti per il database SQL di Azure come origine sono i seguenti: 
+ VIEW DEFINITION 
+ VIEW DATABASE STATE 

Ripeti l'assegnazione per ogni database di cui desideri convertire lo schema. 

I privilegi richiesti per i database MySQL e PostgreSQL di destinazione sono descritti nelle sezioni seguenti.
+ [Privilegi per MySQL come database di destinazione](CHAP_Source.SQLServer.ToMySQL.md#CHAP_Source.SQLServer.ToMySQL.ConfigureTarget) 
+ [Privilegi per PostgreSQL come database di destinazione](CHAP_Source.SQLServer.ToPostgreSQL.md#CHAP_Source.SQLServer.ToPostgreSQL.ConfigurePostgreSQL) 

## Connessione al database SQL di Azure come origine
<a name="CHAP_Source.AzureSQL.Connecting"></a>

Usa la procedura seguente per connetterti al database di origine del database SQL di Azure con. AWS Schema Conversion Tool

**Per connettersi a un database di origine del database SQL di Azure**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi sorgente**. 

1. Scegli **Database SQL di Azure**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database di origine del database SQL di Azure, usa le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.AzureSQL.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

# Connessione a IBM DB2 for z/OS Databases con AWS Schema Conversion Tool
<a name="CHAP_Source.DB2zOS"></a>

È possibile utilizzare AWS SCT per convertire schemi, oggetti di codice e codice applicativo da IBM Db2 per i seguenti obiettivi. z/OS 
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition

## Prerequisiti per utilizzare Db2 come database di origine z/OS
<a name="CHAP_Source.DB2zOS.Prerequisites"></a>

La versione del database IBM Db2 per la z/OS versione 12 Function Level 100 non supporta la maggior parte delle nuove funzionalità di IBM Db2 per la versione 12. z/OS Questa versione del database fornisce il supporto per il fallback alla versione 11 di Db2 e la condivisione dei dati con la versione 11 di Db2. Per evitare la conversione delle funzionalità non supportate di Db2 versione 11, si consiglia di utilizzare un IBM Db2 for z/OS database di livello 500 o superiore come sorgente per. AWS SCT

È possibile utilizzare il seguente esempio di codice per verificare la versione del codice IBM Db2 for database di origine. z/OS 

```
SELECT GETVARIABLE('SYSIBM.VERSION') as version FROM SYSIBM.SYSDUMMY1;
```

Assicurati che questo codice restituisca una versione `DSN12015` o una versione successiva.

È possibile utilizzare il seguente esempio di codice per controllare il valore del registro `APPLICATION COMPATIBILITY` speciale nel database IBM Db2 for z/OS di origine.

```
SELECT CURRENT APPLICATION COMPATIBILITY as version FROM SYSIBM.SYSDUMMY1;
```

Assicurati che questo codice restituisca una versione `V12R1M500` o una versione successiva.

## Privilegi per Db2 z/OS come database di origine
<a name="CHAP_Source.DB2zOS.Permissions"></a>

I privilegi necessari per connettersi a un z/OS database Db2 e leggere i cataloghi e le tabelle di sistema sono i seguenti:
+ SELEZIONA SU SYSIBM.LOCATIONS
+ SELEZIONA SU SYSIBM.SYSCHECKS
+ SELEZIONA SU SYSIBM.SYSCOLUMNS
+ SELEZIONA NEL DATABASE SYSIBM.SYS
+ SELEZIONA SYSIBM.SYSDATATYPES
+ SELEZIONA SU SYSIBM. SYSDUMMY1
+ SELEZIONA SU SYSIBM.SYSFOREIGNKEYS
+ SELEZIONA SU SYSIBM.SYSINDEXES
+ SELEZIONA SYSIBM.SYSKEYCOLUSE
+ SELEZIONA SU SYSIBM.SYSKEYS
+ SELEZIONA SU SYSIBM.SYSKEYTARGETS
+ SELEZIONA SU SYSIBM.SYSJAROBJECTS
+ SELEZIONA SUL PACCHETTO SYSIBM.SYS
+ SELEZIONA SU SYSIBM.SYSPARMS
+ SELEZIONA SU SYSIBM.SYSRELS
+ SELEZIONA SU SYSIBM.SYSROUTINES
+ SELEZIONA SU SYSIBM.SYSSEQUENCES
+ SELEZIONA SU SYSIBM.SYSSEQUENCESDEP
+ SELEZIONA SU SYSIBM.SYSSYNERONIMI
+ SELEZIONA SU SYSIBM.SYSTAB.CONST
+ SELEZIONA SU SYSIBM.SYSTABLES
+ SELEZIONA SU SYSIBM.SYSTABLESPACE
+ SELEZIONA SU SYSIBM.SYSTRIGGERS
+ SELEZIONA SYSIBM.SYSVARIABLES
+ SELEZIONA SU SYSIBM.SYSVIEWS

Per convertire Db2 for z/OS tables in tabelle partizionate PostgreSQL, raccogli statistiche su tablespace e tabelle nel tuo database usando l'utilità come illustrato di seguito. `RUNSTATS`

```
LISTDEF YOURLIST INCLUDE TABLESPACES DATABASE YOURDB 
RUNSTATS TABLESPACE
LIST YOURLIST
TABLE (ALL) INDEX (ALL KEYCARD)
UPDATE ALL
REPORT YES
SHRLEVEL REFERENCE
```

Nell'esempio precedente, sostituisci il segnaposto con il nome del database di origine. `YOURDB`

## Connessione a Db2 per come sorgente z/OS
<a name="CHAP_Source.DB2zOS.Connecting"></a>

Usa la seguente procedura per connetterti al tuo database Db2 for z/OS source con. AWS SCT

**Per connettersi a un database IBM Db2 for source z/OS**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi** fonte.

1. **Scegli **Db2 for z/OS**, quindi scegli Avanti.**

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database IBM Db2 for z/OS source, utilizza le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine.

1. Scegli **Connect** per connetterti al tuo database di origine.

## Privilegi per MySQL come database di destinazione
<a name="CHAP_Source.DB2zOS.ConfigureMySQL"></a>

I privilegi richiesti per MySQL come destinazione sono i seguenti:
+ CREA SU\$1 . \$1
+ PIÙ TARDI \$1 . \$1
+ SCENDI SU \$1 . \$1
+ INDICE SU\$1 . \$1
+ RIFERIMENTI SU\$1 . \$1
+ SELECT ON \$1.\$1
+ CREA UNA VISTA SU\$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ GRILLETTO SU \$1 . \$1
+ CREA ROUTINE SU\$1 . \$1
+ MODIFICA LA ROUTINE SU \$1 . \$1
+ ESEGUI SU\$1 . \$1
+ SELECT ON mysql.proc
+ INSERISCI, AGGIORNA SU AWS\$1DB 2ZOS\$1EXT. \$1
+ INSERISCI, AGGIORNA, ELIMINA SU AWS\$1DB 2ZOS\$1EXT\$1DATA. \$1
+ CREARE TABELLE TEMPORANEE SU AWS\$1DB 2ZOS\$1EXT\$1DATA. \$1

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT SELECT ON mysql.proc TO 'user_name';
GRANT INSERT, UPDATE ON AWS_DB2ZOS_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_DB2ZOS_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_DB2ZOS_EXT_DATA.* TO 'user_name';
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome del tuo utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

Per utilizzare Amazon RDS for MySQL come destinazione, `log_bin_trust_function_creators` imposta il parametro su true e il to. `character_set_server` `latin1` Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

Per utilizzare Aurora MySQL come destinazione, imposta il `log_bin_trust_function_creators` parametro su true e il su. `character_set_server` `latin1` Inoltre, imposta il `lower_case_table_names` parametro su true. Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

## Privilegi per PostgreSQL come database di destinazione
<a name="CHAP_Source.DB2zOS.ConfigurePostgreSQL"></a>

Per utilizzare PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `CREATE ON DATABASE` Assicurati di concedere questo privilegio per ogni database PostgreSQL di destinazione.

Per utilizzare Amazon RDS for PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `rds_superuser`

Per utilizzare i sinonimi pubblici convertiti, modifica il percorso di ricerca predefinito del database in. `"$user", public_synonyms, public`

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
GRANT rds_superuser TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *db\$1name* sostituiscilo con il nome del database di destinazione. Infine, *your\$1password* sostituiscilo con una password sicura.

In PostgreSQL, solo il proprietario di uno schema o un `superuser` può rilasciare uno schema. Il proprietario può eliminare uno schema e tutti gli oggetti inclusi in questo schema anche se il proprietario dello schema non possiede alcuni dei suoi oggetti.

Quando utilizzi utenti diversi per convertire e applicare schemi diversi al database di destinazione, puoi ricevere un messaggio di errore quando non AWS SCT puoi eliminare uno schema. Per evitare questo messaggio di errore, utilizza il ruolo `superuser`. 

## Impostazioni di conversione da Db2 z/OS a PostgreSQL
<a name="CHAP_Source.DB2zOS.PostgreSQLConversionSettings"></a>

**Per modificare le impostazioni di conversione da Db2 for z/OS a PostgreSQL, scegli Impostazioni, quindi **scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **Db2 for z/OS**, quindi scegli Db2 for — PostgreSQL o **Db2 **for** — Amazon Aurora (compatibile con z/OS PostgreSQL**). z/OS AWS SCT visualizza tutte le impostazioni disponibili per la conversione da IBM Db2 a z/OS PostgreSQL.

Le impostazioni di conversione z/OS da Db2 a PostgreSQL includono le seguenti opzioni AWS SCT :
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per generare nomi univoci per i vincoli nel database di destinazione.

  In PostgreSQL, tutti i nomi di vincolo utilizzati devono essere univoci. AWS SCT può generare nomi univoci per i vincoli nel codice convertito aggiungendo un prefisso con il nome della tabella al nome del vincolo. **Per assicurarti che ciò AWS SCT generi nomi univoci per i tuoi vincoli, seleziona Genera nomi univoci per i vincoli.**
+ Per mantenere la formattazione dei nomi di colonna, delle espressioni e delle clausole nelle istruzioni DML nel codice convertito.

  AWS SCT può mantenere il layout dei nomi di colonna, delle espressioni e delle clausole nelle istruzioni DML nella stessa posizione e ordine del codice sorgente. A tale scopo, selezionate **Sì** per **Mantieni la formattazione dei nomi di colonna, delle espressioni e delle clausole nelle istruzioni** DML.
+ Per escludere le partizioni di tabella dall'ambito di conversione.

  AWS SCT può saltare tutte le partizioni di una tabella sorgente durante la conversione. A tale scopo, seleziona **Escludi le partizioni della tabella dall'ambito** di conversione.
+ Per utilizzare il partizionamento automatico per le tabelle partizionate in base alla crescita.

  Per la migrazione dei dati, AWS SCT può partizionare automaticamente tutte le tabelle più grandi della dimensione specificata. Per utilizzare questa opzione, seleziona **Applica la partizione delle tabelle più grandi di** e inserisci le dimensioni delle tabelle in gigabyte. Quindi, inserisci il numero di partizioni. AWS SCT quando si attiva questa opzione, considera le dimensioni del dispositivo di archiviazione ad accesso diretto (DASD) del database di origine.

  AWS SCT può determinare automaticamente il numero di partizioni. A tale scopo, seleziona **Aumenta il numero di partizioni in modo proporzionale** e inserisci il numero massimo di partizioni.
+ Per restituire set di risultati dinamici come matrice di valori del tipo di dati refCursor.

  AWS SCT può convertire le procedure di origine che restituiscono set di risultati dinamici in procedure che hanno una matrice di refcursori aperti come parametro di output aggiuntivo. A tale scopo, selezionate **Usa un array di refcursors per restituire tutti** i set di risultati dinamici.
+ Per specificare lo standard da utilizzare per la conversione dei valori di data e ora in rappresentazioni di stringhe.

  AWS SCT può convertire i valori di data e ora in rappresentazioni di stringhe utilizzando uno dei formati di settore supportati. A tale scopo, seleziona **Usa rappresentazioni di stringa di valori di data** o **Usa rappresentazioni di stringa di** valori temporali. Quindi, scegli uno dei seguenti standard.
  + Organizzazione internazionale per gli standard (ISO)
  + Standard europeo IBM (EUR)
  + IBM USA Standard (Stati Uniti)
  + Standard industriale giapponese Christian Era (JIS)

# ConnConnecting ai database IBM DB2 per Linux, UNIX e Windows con AWS Schema Conversion Tool
<a name="CHAP_Source.DB2LUW"></a>

È possibile utilizzare AWS SCT per convertire schemi, oggetti di codice nel linguaggio SQL e codice dell'applicazione da IBM Db2 per Linux, Unix e Windows (Db2 LUW) ai seguenti obiettivi.
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition
+ Amazon RDS per MariaDB

AWS SCT supporta come sorgente le versioni Db2 LUW 9.1, 9.5, 9.7, 10.1, 10.5, 11.1 e 11.5.

## Privilegi per Db2 LUW come sorgente
<a name="CHAP_Source.DB2LUW.Permissions"></a>

I privilegi necessari per connettersi a un database Db2 LUW, verificare i privilegi disponibili e leggere i metadati dello schema per una sorgente sono i seguenti: 
+ Privilegi necessari per stabilire una connessione:
  + CONNETTERSI AL DATABASE
+ Privilegio necessario per l'esecuzione di istruzioni SQL:
  + ESEGUI SUL PACCHETTO NULLID. SYSSH200
+ Privilegi necessari per ottenere informazioni a livello di istanza:
  + ESEGUIRE SULLA FUNZIONE SYSPROC.ENV\$1GET\$1INST\$1INFO
  + SELEZIONARE SU SYSIBMADM.ENV\$1INST\$1INFO
  + SELEZIONARE SYSIBMADM.ENV\$1SYS\$1INFO
+ Privilegi necessari a verificare i privilegi concessi tramite ruoli, gruppi e autorità:
  + ESEGUI SULLA FUNZIONE SYSPROC.AUTH\$1LIST\$1AUTHORITIES\$1FOR\$1AUTHID
  + ESEGUI SULLA FUNZIONE SYSPROC.AUTH\$1LIST\$1GROUPS\$1FOR\$1AUTHID
  + ESEGUI SULLA FUNZIONE SYSPROC.AUTH\$1LIST\$1ROLES\$1FOR\$1AUTHID
  + SELEZIONA SU SYSIBMADM.PRIVILEGES
+ Privilegi necessari per cataloghi di sistema e tabelle:
  + SELEZIONA SU SYSCAT.ATTRIBUTES
  + SELEZIONA SU SYSCAT.CHECKS
  + SELEZIONA SU SYSCAT.COLIDENTATTRIBUTES
  + SELEZIONA SU SYSCAT.COLUMNS
  + SELEZIONA SU SYSCAT.DATAPARTITIONEXPRESSION
  + SELEZIONA SYSCAT.DATAPARTITIONS
  + SELEZIONA SYSCAT.DATATYPEDEP
  + SELEZIONA SYSCAT.DATATYPES
  + SELEZIONA SU SYSCAT.HIERARCHIES
  + SELEZIONA SU SYSCAT.INDEXCOLUSE
  + SELEZIONA SU SYSCAT.INDEXES
  + SELEZIONA SULLE PARTIZIONI SYSCAT.INDEX
  + SELEZIONA SU SYSCAT.KEYCOLUSE
  + SELEZIONA SU SYSCAT.MODULEOBJECTS
  + SELEZIONA SU SYSCAT.MODULES
  + SELEZIONA SU SYSCAT.NICKNAME
  + SELEZIONA SU SYSCAT.PERIODS
  + SELEZIONA SU SYSCAT.REFERENCES
  + SELEZIONA SU SYSCAT.ROUTINEPARMS
  + SELEZIONA SU SYSCAT.ROUTINES
  + SELEZIONA SU SYSCAT.ROWFIELDS
  + SELEZIONA SU SYSCAT.SCHEMATA
  + SELEZIONA SU SYSCAT.SEQUENCES
  + SELEZIONA SU SYSCAT.TABCONST
  + SELEZIONA SU SYSCAT.TABLES
  + SELEZIONA SU SYSCAT.TRIGGERS
  + SELEZIONA SU SYSCAT.VARIABLEDEP
  + SELEZIONA SU SYSCAT.VARIABLES
  + SELEZIONA SU SYSCAT.VIEWS
  + SELEZIONA SU SYSIBM. SYSDUMMY1
+  Per eseguire le istruzioni SQL, l'account utente necessita di un privilegio per l'utilizzo di almeno uno dei carichi di lavoro abilitati nel database. Se nessuno dei carichi di lavoro è assegnato all'utente, accertati che il carico di lavoro utente predefinito sia accessibile per l'utente:
  + UTILIZZO SUL CARICO DI LAVORO SYSDEFAULTUSERWORKLOAD

Per eseguire le query, devi creare uno spazio tabelle di sistema temporaneo con dimensioni di pagina 8K, 16K e 32K, se non esiste. Per creare spazi tabelle temporanei, esegui gli script seguenti:

```
CREATE BUFFERPOOL BP8K
  IMMEDIATE
  ALL DBPARTITIONNUMS
  SIZE AUTOMATIC
  NUMBLOCKPAGES 0
  PAGESIZE 8K;
  
CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_8K 
  PAGESIZE 8192 
  BUFFERPOOL BP8K;
  
CREATE BUFFERPOOL BP16K
  IMMEDIATE
  ALL DBPARTITIONNUMS
  SIZE AUTOMATIC
  NUMBLOCKPAGES 0
  PAGESIZE 16K;
  
CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_BP16K 
  PAGESIZE 16384 
  BUFFERPOOL BP16K;  
  
CREATE BUFFERPOOL BP32K
  IMMEDIATE
  ALL DBPARTITIONNUMS
  SIZE AUTOMATIC
  NUMBLOCKPAGES 0
  PAGESIZE 32K;
  
CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_BP32K 
  PAGESIZE 32768 
  BUFFERPOOL BP32K;
```

## Connessione a Db2 LUW come sorgente
<a name="CHAP_Source.DB2LUW.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine Db2 LUW con AWS Schema Conversion Tool. 

**Per connettersi a un database di origine Db2 LUW**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi** fonte. 

1. **Scegli **Db2 LUW**, quindi scegli Avanti.** 

   Viene visualizzata la finestra **di dialogo Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database di origine IBM Db2 LUW, utilizzare le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

# Migrazione da IBM DB2 per Linux, UNIX e Windows ad Amazon Relational Database Service per PostgreSQL o Amazon Aurora PostgreSQL Compatible Edition
<a name="CHAP_Source.DB2LUW.ToPostgreSQL"></a>

Quando si migra IBM Db2 LUW a PostgreSQL, è possibile convertire varie istruzioni trigger utilizzate con Db2 AWS SCT LUW. Queste istruzioni trigger includono quanto segue:
+ **Eventi trigger: gli eventi trigger** INSERT, DELETE e UPDATE specificano che l'azione attivata viene eseguita ogni volta che l'evento viene applicato alla tabella dell'oggetto o alla vista dell'oggetto. È possibile specificare qualsiasi combinazione degli eventi INSERT, DELETE e UPDATE, ma è possibile specificare ogni evento solo una volta. AWS SCT supporta eventi trigger singoli e multipli. Per gli eventi, PostgreSQL ha praticamente la stessa funzionalità. 
+ **Event OF COLUMN** — È possibile specificare il nome di una colonna da una tabella di base. Il trigger viene attivato solo tramite l'aggiornamento di una colonna identificata nell'elenco dei nomi delle colonne. PostgreSQL ha la stessa funzionalità.
+ **Trigger dell'istruzione**: specificano che l'azione attivata viene applicata una sola volta per l'intera istruzione. Non è possibile specificare questo tipo di granularità per attivare un trigger BEFORE o un trigger INSTEAD OF. Se specificato, viene attivato un trigger UPDATE o DELETE, anche se non sono coinvolte righe. PostgreSQL, inoltre, dispone di questa funzionalità e la dichiarazione del trigger per i trigger dell'istruzione è identica per PostgreSQL e Db2 LUW.
+ **Clausole di riferimento: specificano i** nomi di correlazione per le variabili di transizione e i nomi delle tabelle per le tabelle di transizione. I nomi di correlazione identificano una determinata riga nella serie di righe interessate dall'attivazione SQL. I nomi della tabella identificano il set completo di righe interessate. Ogni riga influenzata da un'operazione di attivazione SQL è disponibile per l'azione attivata qualificando le colonne con nomi di correlazione specifici. PostgreSQL non supporta questa funzionalità e usa solo un nome di correlazione NEW oppure OLD.
+ **INVECE DEI trigger**: li supporta. AWS SCT 

## Conversione di tabelle partizionate Db2 LUW in tabelle partizionate PostgreSQL versione 10
<a name="CHAP_Source.DB2LUW.ToPostgreSQL.PartitionedTables"></a>

AWS SCT può convertire le tabelle Db2 LUW in tabelle partizionate in PostgreSQL 10. Durante la conversione di una tabella partizionata Db2 LUW in PostgreSQL esistono diverse restrizioni:
+ Puoi creare una tabella partizionata con una colonna nullable in Db2 LUW e specificare una partizione per archiviare valori NULL. Tuttavia, PostgreSQL non supporta valori NULL per il partizionamento RANGE.
+ Db2 LUW può utilizzare una clausola INCLUSIVE o EXCLUSIVE per impostare valori di delimitazione dell'intervallo. PostgreSQL supporta solo la clausola INCLUSIVE per una delimitazione di inizio e una clausola EXCLUSIVE per una delimitazione di fine. Il nome di partizione convertito è nel formato <nome\$1tabella\$1originale>\$1<nome\$1partizione\$1originale>.
+ È possibile creare chiavi primarie o univoche per tabelle partizionate in Db2 LUW. PostgreSQL richiede la creazione di una chiave primaria o univoca per ogni partizione direttamente. Le limitazioni della chiave primaria o univoca devono essere rimosse dalla tabella padre. Il nome chiave convertito è nel formato <nome\$1chiave\$1originale>\$1<nome\$1partizione\$1originale>.
+ Puoi creare un vincolo di chiave esterna da e verso una tabella partizionata in Db2 LUW. Tuttavia, PostgreSQL non supporta i riferimenti delle chiavi esterne nelle tabelle partizionate. Inoltre, PostgreSQL non supporta i riferimenti delle chiavi esterne da una tabella partizionata a un'altra tabella.
+ Puoi creare un indice su una tabella partizionata in Db2 LUW. Tuttavia, PostgreSQL richiede la creazione di un indice per ogni partizione direttamente. Gli indici devono essere rimossi dalla tabella padre. Il nome indice convertito è nel formato <nome\$1indice\$1originale>\$1<nome\$1partizione\$1originale>.
+ È necessario definire trigger di riga su singole partizioni, non sulla tabella partizionata. I trigger devono essere rimossi dalla tabella padre. Il nome trigger convertito è nel formato <nome\$1trigger\$1originale>\$1<nome\$1partizione\$1originale>.

## Privilegi per PostgreSQL come destinazione
<a name="CHAP_Source.DB2LUW.ToPostgreSQL.ConfigureTarget"></a>

Per utilizzare PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `CREATE ON DATABASE` Assicurati di concedere questo privilegio per ogni database PostgreSQL di destinazione.

Per utilizzare i sinonimi pubblici convertiti, modifica il percorso di ricerca predefinito del database in. `"$user", public_synonyms, public`

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *db\$1name* sostituiscilo con il nome del database di destinazione. Infine, *your\$1password* sostituiscilo con una password sicura.

In PostgreSQL, solo il proprietario di uno schema o un `superuser` può rilasciare uno schema. Il proprietario può eliminare uno schema e tutti gli oggetti inclusi in questo schema anche se il proprietario dello schema non possiede alcuni dei suoi oggetti.

Quando utilizzi utenti diversi per convertire e applicare schemi diversi al database di destinazione, puoi ricevere un messaggio di errore quando non AWS SCT puoi eliminare uno schema. Per evitare questo messaggio di errore, utilizza il ruolo `superuser`. 

# Migrazione da IBM DB2 per Linux, UNIX e Windows ad Amazon RDS for MySQL o Amazon Aurora MySQL
<a name="CHAP_Source.DB2LUW.ToMySQL"></a>

Quando converti un database IBM Db2 LUW in RDS for MySQL o Amazon Aurora MySQL, tieni presente quanto segue.

## Privilegi per MySQL come destinazione
<a name="CHAP_Source.DB2LUW.ToMySQL.ConfigureTarget"></a>

I privilegi richiesti per MySQL come destinazione sono i seguenti:
+ CREA SU\$1 . \$1
+ PIÙ TARDI \$1 . \$1
+ SCENDI SU \$1 . \$1
+ INDICE SU\$1 . \$1
+ RIFERIMENTI SU\$1 . \$1
+ SELECT ON \$1.\$1
+ CREA UNA VISTA SU\$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ GRILLETTO SU \$1 . \$1
+ CREA ROUTINE SU\$1 . \$1
+ MODIFICA LA ROUTINE SU \$1 . \$1
+ ESEGUI SU\$1 . \$1
+ SELECT ON mysql.proc
+ INSERISCI, AGGIORNA SU AWS\$1DB 2\$1EXT. \$1
+ INSERISCI, AGGIORNA, ELIMINA SU AWS\$1DB 2\$1EXT\$1DATA. \$1
+ CREARE TABELLE TEMPORANEE SU AWS\$1DB 2\$1EXT\$1DATA. \$1

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT SELECT ON mysql.proc TO 'user_name';
GRANT INSERT, UPDATE ON AWS_DB2_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_DB2_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_DB2_EXT_DATA.* TO 'user_name';
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome del tuo utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

Per utilizzare Amazon RDS per MySQL o Aurora MySQL come destinazione, imposta il parametro `lower_case_table_names` su `1`. Questo valore indica che il server MySQL gestisce gli identificatori di nomi di oggetti come tabelle, indici, trigger e database senza distinzione tra maiuscole e minuscole. Se hai attivato la registrazione binaria nell'istanza di destinazione, imposta il parametro `log_bin_trust_function_creators` su `1`. In questo caso, non è necessario utilizzare le caratteristiche `DETERMINISTIC`, `READS SQL DATA` o `NO SQL` per creare funzioni archiviate. Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

# Usare MySQL come sorgente per AWS SCT
<a name="CHAP_Source.MySQL"></a>

È possibile utilizzare AWS SCT per convertire schemi, oggetti di codice del database e codice dell'applicazione da MySQL ai seguenti obiettivi: 
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition
+ Amazon RDS per MySQL

Per ulteriori informazioni, consulta le sezioni seguenti:

**Topics**
+ [Privilegi per MySQL come database di origine](#CHAP_Source.MySQL.Permissions)
+ [Connessione a MySQL come sorgente](#CHAP_Source.MySQL.Connecting)
+ [Privilegi per PostgreSQL come database di destinazione](#CHAP_Source.MySQL.ConfigurePostgreSQL)

## Privilegi per MySQL come database di origine
<a name="CHAP_Source.MySQL.Permissions"></a>

I privilegi richiesti per MySQL come sorgente sono i seguenti: 
+ SELECT ON \$1.\$1 
+ SHOW VIEW ON \$1.\$1 

## Connessione a MySQL come sorgente
<a name="CHAP_Source.MySQL.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine MySQL con AWS Schema Conversion Tool. 

**Per connettersi al database di origine MySQL**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi** fonte. 

1. **Scegli **MySQL**, quindi scegli Avanti.**

   Viene visualizzata la finestra **di dialogo Aggiungi sorgente**.

1. Per **Nome connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Secret**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni di connessione al database di origine MySQL, utilizzare le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.MySQL.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Privilegi per PostgreSQL come database di destinazione
<a name="CHAP_Source.MySQL.ConfigurePostgreSQL"></a>

Per utilizzare PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `CREATE ON DATABASE` Assicurati di concedere questo privilegio per ogni database PostgreSQL di destinazione.

Per utilizzare i sinonimi pubblici convertiti, modifica il percorso di ricerca predefinito del database in. `"$user", public_synonyms, public`

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *db\$1name* sostituiscilo con il nome del database di destinazione. Infine, *your\$1password* sostituiscilo con una password sicura.

In PostgreSQL, solo il proprietario di uno schema o un `superuser` può rilasciare uno schema. Il proprietario può eliminare uno schema e tutti gli oggetti inclusi in questo schema anche se il proprietario dello schema non possiede alcuni dei suoi oggetti.

Quando utilizzi utenti diversi per convertire e applicare schemi diversi al database di destinazione, puoi ricevere un messaggio di errore quando non AWS SCT puoi eliminare uno schema. Per evitare questo messaggio di errore, utilizza il ruolo `superuser`. 

# Connessione ai database Oracle con AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle"></a>

È possibile utilizzare AWS SCT per convertire schemi, oggetti di codice del database e codice dell'applicazione da Oracle Database ai seguenti obiettivi: 
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition
+ Amazon RDS per Oracle
+ Amazon RDS per MariaDB

Quando l'origine è un database Oracle, i commenti possono essere convertiti nel formato appropriato, ad esempio, in un database PostgreSQL. AWS SCT può convertire commenti su tabelle, viste e colonne. I commenti possono includere apostrofi; AWS SCT raddoppia gli apostrofi durante la conversione delle istruzioni SQL, proprio come avviene per le stringhe letterali.

Per ulteriori informazioni, consulta gli argomenti seguenti.

**Topics**
+ [Privilegi per Oracle come origine](#CHAP_Source.Oracle.Permissions)
+ [Connessione a Oracle come fonte](#CHAP_Source.Oracle.Connecting)
+ [Migrazione da Oracle ad Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL con AWS Schema Conversion Tool](CHAP_Source.Oracle.ToPostgreSQL.md)
+ [Migrazione da Oracle ad Amazon RDS for MySQL o Amazon Aurora MySQL con AWS Schema Conversion Tool](CHAP_Source.Oracle.ToMySQL.md)
+ [Migrazione da Oracle Database ad Amazon RDS for Oracle con AWS Schema Conversion Tool](CHAP_Source.Oracle.ToRDSOracle.md)

## Privilegi per Oracle come origine
<a name="CHAP_Source.Oracle.Permissions"></a>

I privilegi richiesti per Oracle come fonte sono i seguenti: 
+ CONNECT 
+ SELECT\$1CATALOG\$1ROLE 
+ SELECT ANY DICTIONARY 
+ SELECT ON SYS.ARGUMENT\$1

## Connessione a Oracle come fonte
<a name="CHAP_Source.Oracle.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine Oracle con AWS Schema Conversion Tool. 

**Per connetterti a un database di origine Oracle**

1. In AWS Schema Conversion Tool, scegli **Aggiungi fonte**. 

1. Scegli **Oracle**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Secret**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database di origine Oracle, utilizzare le seguenti istruzioni:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

1. Scegliete **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

# Migrazione da Oracle ad Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL con AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToPostgreSQL"></a>

Quando converti un database Oracle in RDS per PostgreSQL o Amazon Aurora PostgreSQL, tieni presente quanto segue.

**Topics**
+ [Privilegi per PostgreSQL come database di destinazione](#CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget)
+ [Impostazioni di conversione da Oracle a PostgreSQL](#CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings)
+ [Conversione di sequenze Oracle](#CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences)
+ [Conversione di ROWID Oracle](#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID)
+ [Conversione di Oracle Dynamic SQL](#CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL)
+ [Conversione di partizioni Oracle](#CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning)

Durante la conversione di oggetti di sistema Oracle in PostgreSQL AWS SCT , esegue le conversioni come illustrato nella tabella seguente.


| Oggetto di sistema Oracle | Description | Oggetto PostgreSQL convertito | 
| --- | --- | --- | 
| V\$1VERSION  | Visualizza i numeri di versione dei componenti principali della libreria nel database Oracle | aws\$1oracle\$1ext.v\$1version | 
| V\$1INSTANCE | Vista che mostra lo stato dell'istanza corrente. | aws\$1oracle\$1ext.v\$1instance | 

È possibile utilizzare AWS SCT per convertire i file Oracle SQL\$1Plus in psql, che è un front-end basato su terminale per PostgreSQL. Per ulteriori informazioni, consulta [Conversione del codice SQL dell'applicazione utilizzando AWS SCT](CHAP_Converting.App.md).

## Privilegi per PostgreSQL come database di destinazione
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget"></a>

Per utilizzare PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `CREATE ON DATABASE` Assicurati di concedere questo privilegio per ogni database PostgreSQL di destinazione.

Per utilizzare i sinonimi pubblici convertiti, modifica il percorso di ricerca predefinito del database in. `"$user", public_synonyms, public`

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *db\$1name* sostituiscilo con il nome del database di destinazione. Infine, *your\$1password* sostituiscilo con una password sicura.

Per utilizzare Amazon RDS for PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `rds_superuser`

In PostgreSQL, solo il proprietario di uno schema o un `superuser` può rilasciare uno schema. Il proprietario può eliminare uno schema e tutti gli oggetti che lo schema include anche se il proprietario dello schema non possiede alcuni dei suoi oggetti.

Quando utilizzi utenti diversi per convertire e applicare schemi diversi al database di destinazione, puoi ricevere un messaggio di errore quando non AWS SCT puoi eliminare uno schema. Per evitare questo messaggio di errore, utilizza il ruolo `superuser`. 

## Impostazioni di conversione da Oracle a PostgreSQL
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da Oracle a PostgreSQL, scegli Impostazioni AWS SCT in, quindi **scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — PostgreSQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da Oracle a PostgreSQL.

Le impostazioni di conversione da Oracle a PostgreSQL includono le seguenti opzioni AWS SCT :
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+  AWS SCT Per consentire la conversione delle viste materializzate Oracle in tabelle o viste materializzate su PostgreSQL. Per la **conversione delle viste materializzate as, scegli come convertire le viste** materializzate di origine.
+ Per lavorare con il codice sorgente Oracle quando include e `TO_NUMBER` funzioni con parametri non supportati da PostgreSQL. `TO_CHAR` `TO_DATE` Per impostazione predefinita, AWS SCT emula l'utilizzo di questi parametri nel codice convertito.

  Se il codice sorgente Oracle include solo parametri supportati da PostgreSQL, è possibile utilizzare `TO_CHAR` PostgreSQL e funzioni native. `TO_DATE` `TO_NUMBER` In questo caso, il codice convertito funziona più velocemente. Per includere solo questi parametri, seleziona i seguenti valori:
  + **La funzione TO\$1CHAR () non utilizza stringhe di formattazione specifiche di Oracle**
  + **La funzione TO\$1DATE () non utilizza stringhe di formattazione specifiche di Oracle**
  + **La funzione TO\$1NUMBER () non utilizza stringhe di formattazione specifiche di Oracle**
+ Per risolvere i casi in cui il database Oracle di origine memorizza solo valori interi nelle colonne a chiave primaria o esterna del tipo di `NUMBER` dati, è AWS SCT possibile convertire queste colonne nel tipo di dati. `BIGINT` Questo approccio migliora le prestazioni del codice convertito. Per adottare questo approccio, seleziona **Converti le colonne NUMBER primarie/chiave esterna in colonne BIGINT**. Assicurati che l'origine non includa valori con virgola mobile in queste colonne per evitare la perdita di dati.
+ Per saltare i trigger e i vincoli disattivati nel codice sorgente. Per farlo, scegli **Ignora i trigger e i vincoli disabilitati**.
+ Da utilizzare AWS SCT per convertire variabili di stringa chiamate SQL dinamico. Il codice del database può modificare i valori di queste variabili di stringa. Per assicurarti che converta AWS SCT sempre il valore più recente di questa variabile di stringa, seleziona **Converti il codice SQL dinamico creato nelle cosiddette routine**.
+ Per risolvere questo problema, PostgreSQL versione 10 e precedenti non supportano le procedure. Se tu o i tuoi utenti non avete familiarità con l'uso delle procedure in PostgreSQL AWS SCT , potete convertire le procedure Oracle in funzioni PostgreSQL. A tale scopo, seleziona **Converti procedure in funzioni**.
+ Per visualizzare informazioni aggiuntive sulle azioni eseguite. A tale scopo, puoi aggiungere funzioni specifiche al pacchetto di estensione selezionando **Add on exception raise block per problemi di migrazione con i livelli di gravità successivi**. Quindi scegli i livelli di gravità per generare le eccezioni definite dall'utente.
+ Per lavorare con un database Oracle di origine che potrebbe includere vincoli con i nomi generati automaticamente. Se il codice sorgente utilizza questi nomi, assicuratevi di selezionare **Converti i nomi dei vincoli generati dal sistema utilizzando i nomi originali** di origine. Se il codice sorgente utilizza questi vincoli ma non ne utilizza i nomi, deselezionate questa opzione per aumentare la velocità di conversione.
+ Per stabilire se il database e le applicazioni funzionano in fusi orari diversi. Per impostazione predefinita, AWS SCT emula i fusi orari nel codice convertito. Tuttavia, non è necessaria questa emulazione quando il database e le applicazioni utilizzano lo stesso fuso orario. In questo caso, la selezione **Fuso orario sul lato client corrisponde al fuso orario sul server**.
+ Per stabilire se i database di origine e di destinazione funzionano in fusi orari diversi. In caso affermativo, la funzione che emula la funzione Oracle `SYSDATE` integrata restituisce valori diversi rispetto alla funzione di origine. Per assicurarti che le funzioni di origine e di destinazione restituiscano gli stessi valori, scegli **Imposta il fuso orario predefinito per l'emulazione SYSDATE**.
+ Per utilizzare le funzioni dell'estensione orafce nel codice convertito. A tale scopo, in **Usa l'implementazione di orafce**, seleziona le funzioni da usare. [Per ulteriori informazioni su orafce, vedere orafce on.](https://github.com/orafce/orafce) GitHub

## Conversione di sequenze Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences"></a>

AWS SCT converte le sequenze da Oracle a PostgreSQL. Se utilizzate sequenze per mantenere i vincoli di integrità, assicuratevi che i nuovi valori di una sequenza migrata non si sovrappongano ai valori esistenti.

**Per popolare le sequenze convertite con l'ultimo valore del database di origine**

1. Apri il tuo AWS SCT progetto con Oracle come sorgente.

1. Scegli **Impostazioni**, quindi scegli **Impostazioni di conversione**. 

1. Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — PostgreSQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da Oracle a PostgreSQL. 

1. Scegli **Popola le sequenze convertite con l'ultimo valore generato** sul lato sorgente.

1. Scegliete **OK** per salvare le impostazioni e chiudere la finestra di dialogo **delle impostazioni di conversione**. 

## Conversione di ROWID Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID"></a>

 In un database Oracle, la pseudocolonna ROWID contiene l'indirizzo della riga di tabella. La pseudocolonna ROWID è unica per Oracle, quindi AWS SCT converte la pseudocolonna ROWID in una colonna di dati su PostgreSQL. Utilizzando questa conversione, è possibile conservare le informazioni ROWID. 

Durante la conversione della pseudocolonna ROWID, AWS SCT può creare una colonna di dati con il tipo di dati. `bigint` Se non esiste una chiave primaria, AWS SCT imposta la colonna ROWID come chiave primaria. Se esiste una chiave primaria, AWS SCT imposta la colonna ROWID con un vincolo univoco.

Se il codice del database sorgente include operazioni con ROWID, che non possono essere eseguite utilizzando un tipo di dati numerico, AWS SCT puoi creare una colonna di dati con il tipo di dati. `character varying`

**Per creare una colonna di dati per ROWID Oracle per un progetto**

1. Apri il tuo AWS SCT progetto con Oracle come sorgente.

1. Scegli **Impostazioni**, quindi scegli **Impostazioni di conversione**. 

1. Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — PostgreSQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da Oracle a PostgreSQL. 

1. Per **Genera ID di riga**, esegui una delle seguenti operazioni: 
   + Scegliete **Genera come identità** per creare una colonna di dati numerici.
   + Scegli **Genera come tipo di dominio di caratteri** per creare una colonna di dati di caratteri.

1. Scegliete **OK** per salvare le impostazioni e chiudere la finestra di dialogo **delle impostazioni di conversione**. 

## Conversione di Oracle Dynamic SQL
<a name="CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL"></a>

 Oracle offre due modi per implementare l'SQL dinamico: utilizzando un'istruzione EXECUTE IMMEDIATE o chiamando le procedure nel pacchetto DBMS\$1SQL. Se il database Oracle di origine include oggetti con SQL dinamico, utilizzalo AWS SCT per convertire le istruzioni SQL dinamiche Oracle in PostgreSQL.

**Per convertire Oracle dynamic SQL in PostgreSQL**

1. Apri il tuo AWS SCT progetto usando Oracle come sorgente.

1. Scegli un oggetto di database che utilizzi SQL dinamico nella visualizzazione ad albero dei sorgenti di Oracle.

1. Apri il menu contestuale (fai clic con il pulsante destro del mouse) per l'oggetto, scegli **Converti schema** e accetta di sostituire gli oggetti se esistono. La schermata seguente mostra la procedura convertita al di sotto della procedura Oracle con SQL dinamico.  
![\[Conversione Dynamic SQL\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/images/dynamicsql1.png)

## Conversione di partizioni Oracle
<a name="CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning"></a>

AWS SCT attualmente supporta i seguenti metodi di partizionamento: 
+ Intervallo
+ List
+ Intervallo a più colonne
+ Hash
+ Composito (lista-lista, lista-lista, lista-intervallo, lista-hash, range-hash, hash-hash)

# Migrazione da Oracle ad Amazon RDS for MySQL o Amazon Aurora MySQL con AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToMySQL"></a>

Per emulare le funzioni del database Oracle nel codice MySQL convertito, usa il pacchetto di estensione Oracle to MySQL in. AWS SCT Per ulteriori informazioni sui pacchetti di estensione, consulta [Utilizzo dei pacchetti di estensione con AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Privilegi per MySQL come database di destinazione](#CHAP_Source.Oracle.ToMySQL.ConfigureTarget)
+ [Impostazioni di conversione da Oracle a MySQL](#CHAP_Source.Oracle.ToMySQL.ConversionSettings)
+ [Considerazioni sulla migrazione](#CHAP_Source.Oracle.ToMySQL.MigrationConsiderations)
+ [Conversione dell'istruzione WITH in Oracle in RDS per MySQL o Amazon Aurora MySQL](#CHAP_Source.Oracle.ToMySQL.With)

## Privilegi per MySQL come database di destinazione
<a name="CHAP_Source.Oracle.ToMySQL.ConfigureTarget"></a>

I privilegi richiesti per MySQL come destinazione sono i seguenti:
+ CREA SU\$1 . \$1
+ PIÙ TARDI \$1 . \$1
+ SCENDI SU \$1 . \$1
+ INDICE SU\$1 . \$1
+ RIFERIMENTI SU\$1 . \$1
+ SELECT ON \$1.\$1
+ CREA UNA VISTA SU\$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ GRILLETTO SU \$1 . \$1
+ CREA ROUTINE SU\$1 . \$1
+ MODIFICA LA ROUTINE SU \$1 . \$1
+ ESEGUI SU\$1 . \$1
+ CREARE TABELLE TEMPORANEE SU\$1 . \$1
+ AWS\$1LAMBDA\$1ACCESSO
+ INSERISCI, AGGIORNA SU AWS\$1ORACLE \$1EXT. \$1
+ INSERISCI, AGGIORNA, ELIMINA SU AWS\$1ORACLE \$1EXT\$1DATA. \$1

Se utilizzi un database MySQL versione 5.7 o precedente come destinazione, concedi l'autorizzazione INVOKE LAMBDA \$1.\$1 anziché \$1ACCESS. AWS\$1LAMBDA Per i database MySQL versione 8.0 e successive, concedi l'autorizzazione. AWS\$1LAMBDA\$1ACCESS 

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON *.* TO 'user_name';
GRANT AWS_LAMBDA_ACCESS TO 'user_name';
GRANT INSERT, UPDATE ON AWS_ORACLE_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_ORACLE_EXT_DATA.* TO 'user_name';
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome del tuo utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

Se utilizzi un database MySQL versione 5.7 o precedente come destinazione, usa invece di. `GRANT INVOKE LAMBDA ON *.* TO 'user_name'` `GRANT AWS_LAMBDA_ACCESS TO 'user_name'`

Per utilizzare Amazon RDS per MySQL o Aurora MySQL come destinazione, imposta il parametro `lower_case_table_names` su `1`. Questo valore indica che il server MySQL gestisce gli identificatori di nomi di oggetti come tabelle, indici, trigger e database senza distinzione tra maiuscole e minuscole. Se hai attivato la registrazione binaria nell'istanza di destinazione, imposta il parametro `log_bin_trust_function_creators` su `1`. In questo caso, non è necessario utilizzare le caratteristiche `DETERMINISTIC`, `READS SQL DATA` o `NO SQL` per creare funzioni archiviate. Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

## Impostazioni di conversione da Oracle a MySQL
<a name="CHAP_Source.Oracle.ToMySQL.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da Oracle a MySQL, **scegli Impostazioni AWS SCT in, quindi scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — MySQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da Oracle a MySQL.

Le impostazioni di conversione da Oracle AWS SCT a MySQL includono le seguenti opzioni:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per risolvere questo problema, il database Oracle di origine può utilizzare la `ROWID` pseudocolonna, ma MySQL non supporta funzionalità simili. AWS SCT può emulare la pseudocolonna nel `ROWID` codice convertito. **Per fare ciò, scegli **Genera come identità per Genera ID** di riga?** .

  Se il codice sorgente Oracle non utilizza la `ROWID` pseudocolonna, scegli **Non generare per **generare**** l'ID di riga? In questo caso, il codice convertito funziona più velocemente.
+ Per lavorare con il codice sorgente Oracle quando include e `TO_NUMBER` funzioni con parametri che MySQL non supporta. `TO_CHAR` `TO_DATE` Per impostazione predefinita, AWS SCT emula l'utilizzo di questi parametri nel codice convertito.

  Quando il codice sorgente Oracle include solo parametri supportati da PostgreSQL, è possibile utilizzare MySQL e funzioni native. `TO_CHAR` `TO_DATE` `TO_NUMBER` In questo caso, il codice convertito funziona più velocemente. Per includere solo questi parametri, seleziona i seguenti valori:
  + **La funzione TO\$1CHAR () non utilizza stringhe di formattazione specifiche di Oracle**
  + **La funzione TO\$1DATE () non utilizza stringhe di formattazione specifiche di Oracle**
  + **La funzione TO\$1NUMBER () non utilizza stringhe di formattazione specifiche di Oracle**
+ Per stabilire se il database e le applicazioni vengono eseguiti in fusi orari diversi. Per impostazione predefinita, AWS SCT emula i fusi orari nel codice convertito. Tuttavia, non è necessaria questa emulazione quando il database e le applicazioni utilizzano lo stesso fuso orario. In questo caso, la selezione **Fuso orario sul lato client corrisponde al fuso orario sul server**.

## Considerazioni sulla migrazione
<a name="CHAP_Source.Oracle.ToMySQL.MigrationConsiderations"></a>

Quando converti Oracle in RDS for MySQL o Aurora MySQL, per modificare l'ordine di esecuzione delle istruzioni, puoi utilizzare un'istruzione e un'etichetta. `GOTO` Tutte le istruzioni PL/SQL che seguono un'`GOTO`istruzione vengono ignorate e l'elaborazione continua dall'etichetta. È possibile utilizzare `GOTO` istruzioni ed etichette ovunque all'interno di una procedura, di un batch o di un blocco di istruzioni. Puoi anche aggiungere istruzioni GOTO.

MySQL non utilizza istruzioni. `GOTO` Quando AWS SCT converte il codice che contiene un'`GOTO`istruzione, converte l'istruzione in modo che utilizzi un'istruzione or. `BEGIN…END` `LOOP…END LOOP` 

È possibile trovare esempi di come AWS SCT converte `GOTO` le istruzioni nella tabella seguente.


| Istruzione Oracle | Istruzione MySQL | 
| --- | --- | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   GOTO label1;<br />   statement2;<br />   ....<br />   label1:<br />   Statement3;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br /> label1:<br /> BEGIN<br />   ....<br />   statement1;<br />   ....<br />   LEAVE label1;<br />   statement2;<br />   ....<br /> END;<br />   Statement3;<br />   ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   GOTO label1;<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   LOOP<br />    statement2;<br />    ....<br />    ITERATE label1;<br />    LEAVE label1;<br />   END LOOP; <br />    statement3;<br />    ....<br />    statement4;<br />    ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   BEGIN<br />    statement2;<br />    ....    <br />    statement3;<br />    ....<br />    statement4;<br />    ....    <br />   END; <br />END<br /></pre>  | 

## Conversione dell'istruzione WITH in Oracle in RDS per MySQL o Amazon Aurora MySQL
<a name="CHAP_Source.Oracle.ToMySQL.With"></a>

È possibile utilizzare la clausola WITH (subquery\$1factoring) in Oracle per assegnare un nome (query\$1name) a un blocco di sottoquery. È quindi possibile fare riferimento al blocco di sottoquery in più posizioni nella query specificando il query\$1name. Se un blocco di subquery non contiene collegamenti o parametri (locali, procedure, funzioni, pacchetti), AWS SCT converte la clausola in una vista o in una tabella temporanea. 

Il vantaggio di convertire la clausola in una tabella temporanea è che i riferimenti ripetuti alla sottoquery potrebbero essere più efficienti. La maggiore efficienza è dovuta al fatto che i dati vengono facilmente recuperati dalla tabella temporanea piuttosto che essere richiesti da ogni riferimento. È possibile emularlo utilizzando viste aggiuntive o una tabella temporanea. Il nome della visualizzazione utilizza il formato `<procedure_name>$<subselect_alias>`.

È possibile trovare esempi nella tabella seguente. 


| Istruzione Oracle | Istruzione MySQL | 
| --- | --- | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_VARIABLE_01<br />     (p_state IN NUMBER)<br />AS<br />  l_dept_id NUMBER := 1; <br />BEGIN<br />FOR cur IN  <br />           (WITH dept_empl(id, name, surname, <br />              lastname, state, dept_id)<br />              AS<br />                  (<br />                    SELECT id, name, surname,  <br />                     lastname, state, dept_id <br />                      FROM test_ora_pg.dept_employees<br />                     WHERE state = p_state AND <br />                       dept_id = l_dept_id)<br />            SELECT id,state   <br />              FROM dept_empl<br />            ORDER BY id)  LOOP<br />  NULL;<br />END LOOP;<br /></pre>  |  <pre>CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_VARIABLE_01(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 1;<br />    DECLARE var$id VARCHAR (8000);<br />    DECLARE var$state VARCHAR (8000);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        ID, STATE<br />        FROM (SELECT<br />            ID, NAME, SURNAME, LASTNAME, STATE, DEPT_ID<br />            FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />            WHERE STATE = par_p_state AND DEPT_ID = var_l_dept_id) AS dept_empl<br />        ORDER BY ID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$id, var$state;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_REGULAR_MULT_01<br />AS    <br />BEGIN<br /><br /> FOR cur IN  (<br />               WITH dept_empl AS<br />                   (<br />                        SELECT id, name, surname, <br />                         lastname, state, dept_id <br />                          FROM test_ora_pg.dept_employees<br />                         WHERE state = 1),<br />                    dept AS <br />                   (SELECT id deptid, parent_id, <br />                      name deptname<br />                      FROM test_ora_pg.department                <br />                   )<br />                SELECT dept_empl.*,dept.*          <br />                 FROM dept_empl, dept<br />                 WHERE dept_empl.dept_id = dept.deptid<br />              ) LOOP<br />              NULL;<br />            END LOOP;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br /> `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT id, name, surname, lastname, state, dept_id <br />   FROM test_ora_pg.dept_employees<br />  WHERE state = 1);<br />  <br />CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br /> `(deptid, parent_id,deptname)<br />AS<br />(SELECT id deptid, parent_id, name deptname<br />   FROM test_ora_pg.department);  <br /><br /><br />CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br />BEGIN<br />    DECLARE var$ID DOUBLE;<br />    DECLARE var$NAME VARCHAR (30);<br />    DECLARE var$SURNAME VARCHAR (30);<br />    DECLARE var$LASTNAME VARCHAR (30);<br />    DECLARE var$STATE DOUBLE;<br />    DECLARE var$DEPT_ID DOUBLE;<br />    DECLARE var$deptid DOUBLE;<br />    DECLARE var$PARENT_ID DOUBLE;<br />    DECLARE var$deptname VARCHAR (200);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        dept_empl.*, dept.*<br />        FROM TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br />          ` AS dept_empl,<br />             TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br />          ` AS dept<br />        WHERE dept_empl.DEPT_ID = dept.DEPTID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />    FETCH cur INTO var$ID, var$NAME, var$SURNAME, <br />     var$LASTNAME, var$STATE, var$DEPT_ID, var$deptid, <br />     var$PARENT_ID, var$deptname;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /><br />call test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br />  TEST_ORA_PG.P_WITH_SELECT_VAR_CROSS_02(p_state IN NUMBER)<br />AS    <br />   l_dept_id NUMBER := 10;<br />BEGIN<br /> FOR cur IN  (<br />               WITH emp AS              <br />                    (SELECT id, name, surname, <br />                      lastname, state, dept_id <br />                       FROM test_ora_pg.dept_employees<br />                      WHERE dept_id > 10                 <br />                    ),<br />                    active_emp AS<br />                    (<br />                      SELECT id<br />                        FROM emp<br />                       WHERE emp.state = p_state <br />                    )<br />                    <br />                SELECT *          <br />                  FROM active_emp                 <br />              ) LOOP<br />         NULL;<br />  END LOOP;<br />  <br />END;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_VAR_CROSS_01$emp<br />    `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT<br />       id, name, surname, lastname, <br />       state, dept_id<br />  FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />  WHERE DEPT_ID > 10);<br /><br /><br />CREATE PROCEDURE <br />   test_ora_pg.P_WITH_SELECT_VAR_CROSS_02(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 10;<br />    DECLARE var$ID DOUBLE;<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT *<br />                             FROM (SELECT<br />                                      ID<br />                                     FROM <br />                             TEST_ORA_PG.<br />                              `P_WITH_SELECT_VAR_CROSS_01$emp` AS emp<br />                                   WHERE emp.STATE = par_p_state) <br />                                    AS active_emp;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$ID;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 

# Migrazione da Oracle Database ad Amazon RDS for Oracle con AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Alcuni aspetti da considerare durante la migrazione dello schema e del codice Oracle ad Amazon RDS per Oracle: 
+ AWS SCT può aggiungere oggetti di directory all'albero degli oggetti. *Gli oggetti directory* sono strutture logiche che rappresentano ciascuna una directory fisica sul file system del server. È possibile utilizzare gli oggetti di directory con pacchetti come DBMS\$1LOB, UTL\$1FILE, DBMS\$1FILE\$1TRANSFER, la utility DATAPUMP e così via.
+ AWS SCT supporta la conversione di tablespace Oracle in un'istanza database Amazon RDS for Oracle. Oracle memorizza i dati logicamente in spazi tabelle e fisicamente in file di dati associati allo spazio tabella corrispondente. In Oracle è possibile creare spazi tabella con i nomi dei file di dati. Amazon RDS supporta Oracle Managed Files (OMF) solo per file di dati, file di log e file di controllo. AWS SCT crea i file di dati necessari durante la conversione.
+ AWS SCT può convertire ruoli e privilegi a livello di server. Il motore di database Oracle utilizza la protezione basata sui ruoli. Un ruolo è una raccolta di privilegi che è possibile concedere o revocare a un utente. Un ruolo predefinito in Amazon RDS, denominato DBA, normalmente consente tutti i privilegi di amministrazione a un motore di database Oracle. I seguenti privilegi non sono disponibili per il ruolo DBA su un'istanza database di Amazon RDS utilizzando il motore Oracle:
  + Alter di database
  + Alter system
  + Creazione di una directory
  + Concessione di qualsiasi privilegio
  + Concessione di qualsiasi ruolo
  + Creazione di un processo esterno

  È possibile concedere tutti gli altri privilegi a un ruolo utente Amazon RDS per Oracle, tra cui il filtro avanzato e i privilegi di colonna.
+ AWS SCT supporta la conversione dei job Oracle in job eseguibili su Amazon RDS for Oracle. La conversione presenta alcuni limiti, inclusi i seguenti:
  + I processi eseguibili non sono supportati.
  + I processi di pianificazione che utilizzano il tipo di dati ANYDATA come un argomento non sono supportati.
+ One Node RAC (Real Application Cluster) Oracle è un'opzione disponibile per Oracle Database Enterprise Edition che è stata introdotta con Oracle Database 11g Release 2. Amazon RDS per Oracle non supporta la caratteristica RAC. Per alta disponibilità, utilizzare Amazon RDS Implementazioni Multi-AZ. 

  In un'implementazione Multi-AZ, Amazon RDS effettua automaticamente il provisioning e mantiene una replica standby sincrona in un'altra zona di disponibilità. L'istanza database principale viene replicata in modo sincrono tra le zone di disponibilità in una replica di standby. Questa funzionalità fornisce ridondanza dei dati, elimina i I/O blocchi e riduce al minimo i picchi di latenza durante i backup di sistema.
+ Oracle Spatial offre uno schema SQL e funzioni che semplificano le operazioni di storage, recupero, aggiornamento ed esecuzione di query per le raccolte di dati spaziali in un database Oracle. Oracle Locator offre funzionalità che sono solitamente richieste per il supporto di applicazioni Internet e wireless basate su servizi e di soluzioni GIS basate su partner. Oracle Locator è un sottoinsieme limitato di Oracle Spatial.

  Per utilizzare le funzionalità di Oracle Spatial e Oracle Locator aggiungi l'opzione SPATIAL o l'opzione LOCATOR (che si escludono reciprocamente) al gruppo di opzioni dell'istanza database.

  Esistono alcuni requisiti preliminari per l'utilizzo di Oracle Spatial e Oracle Locator su un'istanza database di Amazon RDS per Oracle:
  + L'istanza deve utilizzare la versione Oracle Enterprise Edition 12.1.0.2.v6 o successiva oppure 11.2.0.4.v10 o successiva.
  + L'istanza deve essere all'interno di un cloud privato virtuale (VPC).
  + L'istanza deve avere la classe dell'istanza database che può supportare la funzionalità Oracle. Ad esempio, Oracle Spatial non è supportato per le classi di istanza database db.m1.small, db.t1.micro, db.t2.micro o db.t2.small. [Per ulteriori informazioni, consulta Supporto delle classi di istanze DB per Oracle.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses)
  + L'istanza deve avere l'opzione Auto Minor Version Upgrade abilitata. Amazon RDS aggiorna l'istanza database al PSU Oracle più recente se esistono vulnerabilità di sicurezza con un punteggio CVSS score di 9\$1 o altre vulnerabilità di sicurezza annunciate. Per ulteriori informazioni, consultare la pagina 

    [Impostazioni per le istanze di Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings).
  + Se l'istanza DB è la versione 11.2.0.4.v10 o successiva, è necessario installare l'opzione XMLDB. Per ulteriori informazioni, consultare la pagina

    [Oracle XML DB.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html)
  + È necessaria una licenza per Oracle Spatial rilasciata da Oracle. Per ulteriori informazioni, consulta [Oracle Spatial and Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph) nella documentazione Oracle.
+ Data Guard è incluso con Oracle Database Enterprise Edition. Per alta disponibilità, utilizzare la caratteristica Amazon RDS Implementazioni Multi-AZ. 

  In un'implementazione Multi-AZ, Amazon RDS effettua automaticamente il provisioning e mantiene una replica standby sincrona in un'altra zona di disponibilità. L'istanza database principale viene replicata in modo sincrono tra le zone di disponibilità in una replica di standby. Questa funzionalità fornisce ridondanza dei dati, elimina i I/O blocchi e riduce al minimo i picchi di latenza durante i backup di sistema.
+ AWS SCT supporta la conversione di oggetti Oracle DBMS\$1SCHEDULER durante la migrazione ad Amazon RDS for Oracle. Il rapporto di AWS SCT valutazione indica se un oggetto di pianificazione può essere convertito. Per ulteriori informazioni sull'uso di oggetti di pianificazione con Amazon RDS, consulta la [ documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler).
+ Per le conversioni da Oracle ad Amazon RDS per Oracle, è supportato DB Links. Un collegamento di database è un oggetto dello schema in un database che consente di accedere agli oggetti in un altro database. Non è necessario che gli altri database siano Oracle. Tuttavia, per accedere ai database diversi da Oracle, devi utilizzare gli Oracle Heterogeneous Services.

  Dopo aver creato un link al database, è possibile utilizzarlo nelle istruzioni SQL per fare riferimento a tabelle, viste e PL/SQL oggetti nell'altro database. Per utilizzare un database link, aggiungilo `@dblink` alla tabella, alla vista o al nome PL/SQL dell'oggetto. Puoi eseguire query su una tabella o vista nell'altro database con l'istruzione SELECT. Per ulteriori informazioni sull'utilizzo dei collegamenti di database Oracle, consulta la [ documentazione di Oracle ](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083).

  Per ulteriori informazioni sull'uso dei collegamenti di database con Amazon RDS, consulta la [ documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks).
+ Il rapporto di AWS SCT valutazione fornisce le metriche del server per la conversione. Questi parametri sull'istanza Oracle includono quanto segue:
  + Capacità di calcolo e di memoria dell'istanza database di destinazione.
  + Funzionalità Oracle non supportate come Real Application Clusters che Amazon RDS non supporta.
  + Caricamento di lettura e scrittura su disco
  + Throughput del disco totale medio
  + Informazioni sul server quali il nome del server, il sistema operativo, il nome host e il set di caratteri.

## Privilegi per RDS for Oracle come destinazione
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

Per migrare ad Amazon RDS for Oracle, crea un utente privilegiato del database. È possibile utilizzare il seguente esempio di codice.

```
CREATE USER user_name IDENTIFIED BY your_password;

-- System privileges
GRANT DROP ANY CUBE BUILD PROCESS TO user_name;
GRANT ALTER ANY CUBE TO user_name;
GRANT CREATE ANY CUBE DIMENSION TO user_name;
GRANT CREATE ANY ASSEMBLY TO user_name;
GRANT ALTER ANY RULE TO user_name;
GRANT SELECT ANY DICTIONARY TO user_name;
GRANT ALTER ANY DIMENSION TO user_name;
GRANT CREATE ANY DIMENSION TO user_name;
GRANT ALTER ANY TYPE TO user_name;
GRANT DROP ANY TRIGGER TO user_name;
GRANT CREATE ANY VIEW TO user_name;
GRANT ALTER ANY CUBE BUILD PROCESS TO user_name;
GRANT CREATE ANY CREDENTIAL TO user_name;
GRANT DROP ANY CUBE DIMENSION TO user_name;
GRANT DROP ANY ASSEMBLY TO user_name;
GRANT DROP ANY PROCEDURE TO user_name;
GRANT ALTER ANY PROCEDURE TO user_name;
GRANT ALTER ANY SQL TRANSLATION PROFILE TO user_name;
GRANT DROP ANY MEASURE FOLDER TO user_name;
GRANT CREATE ANY MEASURE FOLDER TO user_name;
GRANT DROP ANY CUBE TO user_name;
GRANT DROP ANY MINING MODEL TO user_name;
GRANT CREATE ANY MINING MODEL TO user_name;
GRANT DROP ANY EDITION TO user_name;
GRANT CREATE ANY EVALUATION CONTEXT TO user_name;
GRANT DROP ANY DIMENSION TO user_name;
GRANT ALTER ANY INDEXTYPE TO user_name;
GRANT DROP ANY TYPE TO user_name;
GRANT CREATE ANY PROCEDURE TO user_name;
GRANT CREATE ANY SQL TRANSLATION PROFILE TO user_name;
GRANT CREATE ANY CUBE TO user_name;
GRANT COMMENT ANY MINING MODEL TO user_name;
GRANT ALTER ANY MINING MODEL TO user_name;
GRANT DROP ANY SQL PROFILE TO user_name;
GRANT CREATE ANY JOB TO user_name;
GRANT DROP ANY EVALUATION CONTEXT TO user_name;
GRANT ALTER ANY EVALUATION CONTEXT TO user_name;
GRANT CREATE ANY INDEXTYPE TO user_name;
GRANT CREATE ANY OPERATOR TO user_name;
GRANT CREATE ANY TRIGGER TO user_name;
GRANT DROP ANY ROLE TO user_name;
GRANT DROP ANY SEQUENCE TO user_name;
GRANT DROP ANY CLUSTER TO user_name;
GRANT DROP ANY SQL TRANSLATION PROFILE TO user_name;
GRANT ALTER ANY ASSEMBLY TO user_name;
GRANT CREATE ANY RULE SET TO user_name;
GRANT ALTER ANY OUTLINE TO user_name;
GRANT UNDER ANY TYPE TO user_name;
GRANT CREATE ANY TYPE TO user_name;
GRANT DROP ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY ROLE TO user_name;
GRANT DROP ANY VIEW TO user_name;
GRANT ALTER ANY INDEX TO user_name;
GRANT COMMENT ANY TABLE TO user_name;
GRANT CREATE ANY TABLE TO user_name;
GRANT CREATE USER TO user_name;
GRANT DROP ANY RULE SET TO user_name;
GRANT CREATE ANY CONTEXT TO user_name;
GRANT DROP ANY INDEXTYPE TO user_name;
GRANT ALTER ANY OPERATOR TO user_name;
GRANT CREATE ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY SEQUENCE TO user_name;
GRANT DROP ANY SYNONYM TO user_name;
GRANT CREATE ANY SYNONYM TO user_name;
GRANT DROP USER TO user_name;
GRANT ALTER ANY MEASURE FOLDER TO user_name;
GRANT ALTER ANY EDITION TO user_name;
GRANT DROP ANY RULE TO user_name;
GRANT CREATE ANY RULE TO user_name;
GRANT ALTER ANY RULE SET TO user_name;
GRANT CREATE ANY OUTLINE TO user_name;
GRANT UNDER ANY TABLE TO user_name;
GRANT UNDER ANY VIEW TO user_name;
GRANT DROP ANY DIRECTORY TO user_name;
GRANT ALTER ANY CLUSTER TO user_name;
GRANT CREATE ANY CLUSTER TO user_name;
GRANT ALTER ANY TABLE TO user_name;
GRANT CREATE ANY CUBE BUILD PROCESS TO user_name;
GRANT ALTER ANY CUBE DIMENSION TO user_name;
GRANT CREATE ANY EDITION TO user_name;
GRANT CREATE ANY SQL PROFILE TO user_name;
GRANT ALTER ANY SQL PROFILE TO user_name;
GRANT DROP ANY OUTLINE TO user_name;
GRANT DROP ANY CONTEXT TO user_name;
GRANT DROP ANY OPERATOR TO user_name;
GRANT DROP ANY LIBRARY TO user_name;
GRANT ALTER ANY LIBRARY TO user_name;
GRANT CREATE ANY LIBRARY TO user_name;
GRANT ALTER ANY MATERIALIZED VIEW TO user_name;
GRANT ALTER ANY TRIGGER TO user_name;
GRANT CREATE ANY SEQUENCE TO user_name;
GRANT DROP ANY INDEX TO user_name;
GRANT CREATE ANY INDEX TO user_name;
GRANT DROP ANY TABLE TO user_name;
GRANT SELECT_CATALOG_ROLE TO user_name;
GRANT SELECT ANY SEQUENCE TO user_name;

-- Database Links
GRANT CREATE DATABASE LINK TO user_name;
GRANT CREATE PUBLIC DATABASE LINK TO user_name;
GRANT DROP PUBLIC DATABASE LINK TO user_name;


-- Server Level Objects (directory)
GRANT CREATE ANY DIRECTORY TO user_name;
GRANT DROP ANY DIRECTORY TO user_name;
-- (for RDS only)
GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO user_name;

-- Server Level Objects (tablespace)
GRANT CREATE TABLESPACE TO user_name;
GRANT DROP TABLESPACE TO user_name;

-- Server Level Objects (user roles)
/* (grant source privileges with admin option or convert roles/privs as DBA) */

-- Queues
grant execute on DBMS_AQADM to user_name;
grant aq_administrator_role to user_name;

-- for Materialized View Logs creation
GRANT SELECT ANY TABLE TO user_name;

-- Roles
GRANT RESOURCE TO user_name;
GRANT CONNECT TO user_name;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

## Limitazioni durante la conversione da Oracle ad Amazon RDS for Oracle
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Alcuni limiti da considerare durante la migrazione dello schema e del codice Oracle ad Amazon RDS per Oracle: 
+  Un ruolo predefinito in Amazon RDS, denominato DBA, normalmente consente tutti i privilegi di amministrazione a un motore di database Oracle. I seguenti privilegi non sono disponibili per il ruolo DBA su un'istanza database di Amazon RDS utilizzando il motore Oracle:
  + Alter di database
  + Alter system
  + Creazione di una directory
  + Concessione di qualsiasi privilegio
  + Concessione di qualsiasi ruolo
  + Creazione di un processo esterno

  È possibile concedere tutti gli altri privilegi a un ruolo utente Oracle RDS.
+ Amazon RDS for Oracle supporta il controllo tradizionale, il controllo granulare tramite il pacchetto DBMS\$1FGA e Oracle Unified Auditing.
+ Amazon RDS per Oracle non supporta la funzionalità CDC (Change Data Capture). Per eseguire CDC durante e dopo una migrazione di database, usa. AWS Database Migration Service

# Connessione ai database PostgreSQL con AWS Schema Conversion Tool
<a name="CHAP_Source.PostgreSQL"></a>

È possibile utilizzare AWS SCT per convertire schemi, oggetti di codice del database e codice dell'applicazione da PostgreSQL ai seguenti obiettivi: 
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition

Per ulteriori informazioni, consulta le sezioni seguenti:

**Topics**
+ [Privilegi per PostgreSQL come database sorgente](#CHAP_Source.PostgreSQL.Permissions)
+ [Connessione a PostgreSQL come sorgente](#CHAP_Source.PostgreSQL.Connecting)
+ [Privilegi per MySQL come database di destinazione](#CHAP_Source.PostgreSQL.ConfigureMySQL)

## Privilegi per PostgreSQL come database sorgente
<a name="CHAP_Source.PostgreSQL.Permissions"></a>

I privilegi richiesti per PostgreSQL come sorgente sono i seguenti: 
+ CONNETTITI AL DATABASE *<database\$1name>* 
+ UTILIZZO SU SCHEMA *<database\$1name>* 
+ SELEZIONA SU TUTTE LE TABELLE DELLO SCHEMA *<database\$1name>* 
+ SELEZIONA SU TUTTE LE SEQUENZE DELLO SCHEMA *<database\$1name>* 

## Connessione a PostgreSQL come sorgente
<a name="CHAP_Source.PostgreSQL.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine PostgreSQL con AWS Schema Conversion Tool. 

**Per connetterti a un database di origine PostgreSQL**

1. **Nella AWS Schema Conversion Tool, scegli Aggiungi fonte.** 

1. **Scegli **PostgreSQL**, quindi scegli Avanti.**

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Secret**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni di connessione al database di origine PostgreSQL, usa le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.PostgreSQL.html)

1. Scegli **Test Connection** per verificare che sia in AWS SCT grado di connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Privilegi per MySQL come database di destinazione
<a name="CHAP_Source.PostgreSQL.ConfigureMySQL"></a>

I privilegi richiesti per MySQL come destinazione durante la migrazione da PostgreSQL sono i seguenti:
+ CREA SU\$1 . \$1
+ PIÙ TARDI \$1 . \$1
+ SCENDI SU \$1 . \$1
+ INDICE SU\$1 . \$1
+ RIFERIMENTI SU\$1 . \$1
+ SELECT ON \$1.\$1
+ CREA UNA VISTA SU\$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ GRILLETTO SU \$1 . \$1
+ CREA ROUTINE SU\$1 . \$1
+ MODIFICA LA ROUTINE SU \$1 . \$1
+ ESEGUI SU\$1 . \$1
+ INSERISCI, AGGIORNA SU AWS\$1POSTGRESQL \$1EXT. \$1
+ INSERISCI, AGGIORNA, ELIMINA SU AWS\$1POSTGRESQL \$1EXT\$1DATA. \$1
+ CREA TABELLE TEMPORANEE SU AWS\$1POSTGRESQL \$1EXT\$1DATA. \$1

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_POSTGRESQL_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_POSTGRESQL_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_POSTGRESQL_EXT_DATA.* TO 'user_name';
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome del tuo utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

Per utilizzare Amazon RDS per MySQL o Aurora MySQL come destinazione, imposta il parametro `lower_case_table_names` su `1`. Questo valore indica che il server MySQL gestisce gli identificatori di nomi di oggetti come tabelle, indici, trigger e database senza distinzione tra maiuscole e minuscole. Se hai attivato la registrazione binaria nell'istanza di destinazione, imposta il parametro `log_bin_trust_function_creators` su `1`. In questo caso, non è necessario utilizzare le caratteristiche `DETERMINISTIC`, `READS SQL DATA` o `NO SQL` per creare funzioni archiviate. Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

# Connessione ai database SAP con AWS Schema Conversion Tool
<a name="CHAP_Source.SAP"></a>

È possibile utilizzare AWS SCT per convertire schemi, oggetti di codice di database e codice applicativo da SAP (Sybase) Adaptive Server Enterprise (ASE) ai seguenti obiettivi: 
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per MariaDB
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition

Per ulteriori informazioni, consulta le sezioni seguenti:

**Topics**
+ [Privilegi per SAP ASE come database di origine](#CHAP_Source.SAP.Permissions)
+ [Connessione a SAP ASE (Sybase) come fonte](#CHAP_Source.SAP.Connecting)
+ [Privilegi per MySQL come database di destinazione](#CHAP_Source.SAP.ConfigureMySQL)
+ [Impostazioni di conversione da SAP ASE a MySQL](#CHAP_Source.SAP.MySQLConversionSettings)
+ [Privilegi per PostgreSQL come database di destinazione](#CHAP_Source.SAP.ConfigurePostgreSQL)
+ [Impostazioni di conversione da SAP ASE a PostgreSQL](#CHAP_Source.SAP.PostgreSQLConversionSettings)

## Privilegi per SAP ASE come database di origine
<a name="CHAP_Source.SAP.Permissions"></a>

Per utilizzare un database SAP ASE come origine, è necessario creare un utente del database e concedere le autorizzazioni. Per fare ciò, procedi nel seguente modo.

**Crea e configura un utente del database**

1. Connettiti al database di origine.

1. Crea un utente del database con i seguenti comandi. Fornisci una password per il nuovo utente.

   ```
   USE master
   CREATE LOGIN min_privs WITH PASSWORD <password>
   sp_adduser min_privs
   grant select on dbo.spt_values to min_privs
   grant select on asehostname to min_privs
   ```

1. Per ogni database da migrare, concedi i seguenti privilegi.

   ```
   USE <database_name>
   sp_adduser min_privs
   grant select on dbo.sysusers to min_privs
   grant select on dbo.sysobjects to min_privs
   grant select on dbo.sysindexes to min_privs
   grant select on dbo.syscolumns to min_privs
   grant select on dbo.sysreferences to min_privs
   grant select on dbo.syscomments to min_privs
   grant select on dbo.syspartitions to min_privs
   grant select on dbo.syspartitionkeys to min_privs
   grant select on dbo.sysconstraints to min_privs
   grant select on dbo.systypes to min_privs
   grant select on dbo.sysqueryplans to min_privs
   ```

## Connessione a SAP ASE (Sybase) come fonte
<a name="CHAP_Source.SAP.Connecting"></a>

Utilizzare la procedura seguente per connettersi al database di origine SAP ASE con. AWS Schema Conversion Tool

**Per connettersi a un database di origine SAP ASE**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi fonte**. 

1. Scegli **SAP ASE**, quindi scegli **Avanti**.

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Secret**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database di origine SAP ASE, utilizzare le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.SAP.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Privilegi per MySQL come database di destinazione
<a name="CHAP_Source.SAP.ConfigureMySQL"></a>

I privilegi richiesti per MySQL come destinazione sono i seguenti:
+ CREA SU\$1 . \$1
+ PIÙ TARDI \$1 . \$1
+ SCENDI SU \$1 . \$1
+ INDICE SU\$1 . \$1
+ RIFERIMENTI SU\$1 . \$1
+ SELECT ON \$1.\$1
+ CREA UNA VISTA SU\$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ GRILLETTO SU \$1 . \$1
+ CREA ROUTINE SU\$1 . \$1
+ MODIFICA LA ROUTINE SU \$1 . \$1
+ ESEGUI SU\$1 . \$1
+ INSERISCI, AGGIORNA SU AWS\$1SAPASE \$1EXT. \$1
+ CREA TABELLE TEMPORANEE SU AWS\$1SAPASE \$1EXT. \$1

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_SAPASE_EXT.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_SAPASE_EXT.* TO 'user_name';
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome del tuo utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

Per utilizzare Amazon RDS per MySQL o Aurora MySQL come destinazione, imposta il parametro `lower_case_table_names` su `1`. Questo valore indica che il server MySQL gestisce gli identificatori di nomi di oggetti come tabelle, indici, trigger e database senza distinzione tra maiuscole e minuscole. Se hai attivato la registrazione binaria nell'istanza di destinazione, imposta il parametro `log_bin_trust_function_creators` su `1`. In questo caso, non è necessario utilizzare le caratteristiche `DETERMINISTIC`, `READS SQL DATA` o `NO SQL` per creare funzioni archiviate. Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

## Impostazioni di conversione da SAP ASE a MySQL
<a name="CHAP_Source.SAP.MySQLConversionSettings"></a>

**Per modificare le impostazioni di conversione da SAP ASE a MySQL, scegli Impostazioni, quindi **scegli** Impostazioni di conversione.** Dall'elenco in alto, scegli **SAP ASE**, quindi scegli **SAP ASE — MySQL o SAP ASE — **Amazon Aurora** (compatibile con MySQL**). AWS SCT visualizza tutte le impostazioni disponibili per la conversione da SAP ASE a PostgreSQL.

Le impostazioni di conversione da SAP ASE a MySQL includono opzioni per quanto AWS SCT segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per utilizzare i nomi esatti degli oggetti del database di origine nel codice convertito.

  Per impostazione predefinita, AWS SCT converte i nomi degli oggetti, delle variabili e dei parametri del database in lettere minuscole. Per mantenere la distinzione tra maiuscole e minuscole originali per questi nomi, seleziona Fai distinzione tra maiuscole e **minuscole nei nomi degli oggetti del database di origine**. Scegli questa opzione se utilizzi nomi di oggetti con distinzione tra maiuscole e minuscole nel server di database SAP ASE di origine.

## Privilegi per PostgreSQL come database di destinazione
<a name="CHAP_Source.SAP.ConfigurePostgreSQL"></a>

Per utilizzare PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `CREATE ON DATABASE` Assicurati di concedere questo privilegio per ogni database PostgreSQL di destinazione.

Per utilizzare i sinonimi pubblici convertiti, modifica il percorso di ricerca predefinito del database in. `"$user", public_synonyms, public`

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *db\$1name* sostituiscilo con il nome del database di destinazione. Infine, *your\$1password* sostituiscilo con una password sicura.

In PostgreSQL, solo il proprietario di uno schema o un `superuser` può rilasciare uno schema. Il proprietario può eliminare uno schema e tutti gli oggetti inclusi in questo schema anche se il proprietario dello schema non possiede alcuni dei suoi oggetti.

Quando utilizzi utenti diversi per convertire e applicare schemi diversi al database di destinazione, puoi ricevere un messaggio di errore quando non AWS SCT puoi eliminare uno schema. Per evitare questo messaggio di errore, utilizza il ruolo `superuser`. 

## Impostazioni di conversione da SAP ASE a PostgreSQL
<a name="CHAP_Source.SAP.PostgreSQLConversionSettings"></a>

**Per modificare le impostazioni di conversione da SAP ASE a PostgreSQL, scegli Impostazioni, quindi **scegli** Impostazioni di conversione.** Dall'elenco in alto, scegli **SAP ASE**, quindi scegli SAP ASE — **PostgreSQL o SAP ASE **— Amazon** Aurora (compatibile con PostgreSQL**). AWS SCT visualizza tutte le impostazioni disponibili per la conversione da SAP ASE a PostgreSQL.

Le impostazioni AWS SCT di conversione da SAP ASE a PostgreSQL includono opzioni per quanto segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per definire il modello da utilizzare per i nomi degli schemi nel codice convertito. Per il **modello di generazione del nome dello schema**, scegliete una delle seguenti opzioni:
  + ****<source\$1db>— Utilizza il nome del database SAP ASE come nome dello schema in PostgreSQL.
  + ****<source\$1schema>— Utilizza il nome dello schema SAP ASE come nome dello schema in PostgreSQL.
  + **\$1** <source\$1db><schema>— Utilizza una combinazione del database SAP ASE e dei nomi dello schema come nome dello schema in PostgreSQL.
+ Per utilizzare i nomi esatti degli oggetti del database di origine nel codice convertito.

  Per impostazione predefinita, AWS SCT converte i nomi degli oggetti, delle variabili e dei parametri del database in lettere minuscole. Per mantenere la distinzione tra maiuscole e minuscole originali per questi nomi, seleziona Fai distinzione tra maiuscole e **minuscole nei nomi degli oggetti del database di origine**. Scegli questa opzione se utilizzi nomi di oggetti con distinzione tra maiuscole e minuscole nel server di database SAP ASE di origine.

  Per le operazioni con distinzione tra maiuscole e minuscole, AWS SCT può evitare la conversione dei nomi degli oggetti del database in lettere minuscole. A tale scopo, selezionate **Evita di utilizzare lettere minuscole per le operazioni con distinzione tra maiuscole e minuscole**.
+ Per consentire l'uso di indici con lo stesso nome in tabelle diverse in SAP ASE.

  In PostgreSQL, tutti i nomi di indice utilizzati nello schema devono essere univoci. Per assicurarti che ciò AWS SCT generi nomi univoci per tutti i tuoi indici, seleziona **Genera** nomi univoci per gli indici.

# Connetti i server Microsoft SQL con AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer"></a>

È possibile AWS SCT utilizzarlo per convertire schemi, oggetti di codice di database e codice applicativo da SQL Server ai seguenti obiettivi: 
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition
+ Amazon RDS per SQL Server
+ Amazon RDS per MariaDB

**Nota**  
AWS SCT non supporta l'utilizzo di Amazon RDS for SQL Server come sorgente.

È possibile utilizzare per AWS SCT creare un rapporto di valutazione per la migrazione di schemi, oggetti di codice del database e codice applicativo da SQL Server a Babelfish per Aurora PostgreSQL, come descritto di seguito.

**Topics**
+ [Privilegi per Microsoft SQL Server come origine](#CHAP_Source.SQLServer.Permissions)
+ [Utilizzo dell'autenticazione di Windows quando si utilizza Microsoft SQL Server come origine](#CHAP_Source.SQLServer.Permissions.WinAuth)
+ [Connessione a SQL Server come origine](#CHAP_Source.SQLServer.Connecting)
+ [Conversione da SQL Server a MySQL](CHAP_Source.SQLServer.ToMySQL.md)
+ [Migrazione da SQL Server a PostgreSQL con AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToPostgreSQL.md)
+ [Migrazione da SQL Server ad Amazon RDS per SQL Server con AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToRDSSQLServer.md)

## Privilegi per Microsoft SQL Server come origine
<a name="CHAP_Source.SQLServer.Permissions"></a>

I privilegi richiesti per Microsoft SQL Server come origine sono i seguenti: 
+ VIEW DEFINITION
+ VIEW DATABASE STATE

Il `VIEW DEFINITION` privilegio consente agli utenti con accesso pubblico di visualizzare le definizioni degli oggetti. AWS SCT utilizza il `VIEW DATABASE STATE` privilegio per verificare le funzionalità dell'edizione SQL Server Enterprise.

Ripeti l'assegnazione per ogni database di cui desideri convertire lo schema.

Inoltre, assegna i seguenti privilegi sul database `master`:
+ VIEW SERVER STATE
+ VIEW ANY DEFINITION

AWS SCT utilizza il `VIEW SERVER STATE` privilegio per raccogliere le impostazioni e la configurazione del server. Assicurati di concedere il `VIEW ANY DEFINITION` privilegio di visualizzare gli endpoint.

Per leggere le informazioni su Microsoft Analysis Services, esegui il seguente comando sul database `master`.

```
EXEC master..sp_addsrvrolemember @loginame = N'<user_name>', @rolename = N'sysadmin'
```

Nell'esempio precedente, sostituisci il `<user_name>` segnaposto con il nome dell'utente a cui hai concesso in precedenza i privilegi.

Per leggere informazioni su SQL Server Agent, aggiungi il tuo utente al ruolo. `SQLAgentUser` Esegui il comando seguente sul database `msdb`.

```
EXEC sp_addrolemember <SQLAgentRole>, <user_name>;
```

Nell'esempio precedente, sostituisci il segnaposto `<SQLAgentRole>` con il nome del ruolo SQL Server Agent. Sostituisci quindi il `<user_name>` segnaposto con il nome dell'utente a cui hai concesso in precedenza i privilegi. Per ulteriori informazioni, consulta [Aggiungere un utente al ruolo SQLAgent Utente](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Agent.html#SQLServerAgent.AddUser) nella *Guida per l'utente di Amazon RDS*.

Per rilevare l'invio dei log, fornisci il privilegio `SELECT on dbo.log_shipping_primary_databases` sul database `msdb`.

Per utilizzare l'approccio di notifica della replica DDL, concedi il `RECEIVE ON <schema_name>.<queue_name>` privilegio sui tuoi database di origine. In questo esempio, sostituisci il segnaposto `<schema_name>` con il nome dello schema di database. Quindi, sostituisci il segnaposto `<queue_name>` con il nome di una tabella di coda.

## Utilizzo dell'autenticazione di Windows quando si utilizza Microsoft SQL Server come origine
<a name="CHAP_Source.SQLServer.Permissions.WinAuth"></a>

Se la tua applicazione viene eseguita su un'intranet basata su Windows, puoi utilizzare l'autenticazione di Windows per l'accesso al database. Per accedere al database SQL Server, l'autenticazione di Windows utilizza l'identità Windows corrente stabilita sul thread del sistema operativo. Puoi quindi mappare l'identità Windows a un database SQL Server e alle autorizzazioni. Per connettersi a SQL Server utilizzando l'autenticazione di Windows, devi specificare l'identità Windows utilizzata dall'applicazione sta utilizzando. Inoltre, devi concedere l'accesso all'identità Windows al database SQL Server.

SQL Server prevede due modalità di accesso: modalità autenticazione di Windows e modalità mista. La modalità autenticazione di Windows abilita l'autenticazione di Windows e disabilita l'autenticazione di SQL Server. La modalità mista abilita sia l'autenticazione di Windows che l'autenticazione di SQL Server. L'autenticazione di Windows è sempre disponibile e non può essere disattivata. Per ulteriori informazioni sull'autenticazione di Windows, consulta la documentazione di Microsoft Windows. 

Di seguito è riportato un possibile esempio di creazione di un utente in TEST\$1DB

```
USE [TEST_DB]
CREATE USER [TestUser] FOR LOGIN [TestDomain\TestUser]
GRANT VIEW DEFINITION TO [TestUser]
GRANT VIEW DATABASE STATE TO [TestUser]
```

### Utilizzo dell'autenticazione di Windows con una connessione JDBC
<a name="CHAP_Source.SQLServer.Permissions.WinAuth.JDBC"></a>

Il driver JDBC non supporta l'autenticazione di Windows se viene utilizzato su sistemi operativi diversi da Windows. Le credenziali di autenticazione di Windows, ad esempio nome utente e password, non vengono specificate automaticamente durante la connessione a SQL Server da sistemi operativi non Windows. In questi casi, le applicazioni devono invece utilizzare l'autenticazione di SQL Server.

Nella stringa di connessione a JDBC, per connettersi utilizzando l'autenticazione di Windows deve essere specificato il parametro `integratedSecurity`. Il driver JDBC supporta l'autenticazione integrata di Windows su sistemi operativi Windows tramite il parametro della stringa di connessione `integratedSecurity`.

Per utilizzare l'autenticazione integrata

1. Installa il driver JDBC.

1. Copia il file `sqljdbc_auth.dll` in una directory nel percorso di sistema di Windows sul computer in cui è installato il driver JDBC.

   I `sqljdbc_auth.dll` file vengono installati nella seguente posizione:

   <*directory di installazione*>\$1sqljdbc\$1<*versione*>\$1<*lingua*>\$1auth\$1

Quando tenti di stabilire una connessione al database SQL Server utilizzando l'autenticazione di Windows, potresti ricevere l'errore "Il driver non è configurato per l'autenticazione integrata". Questo problema può essere risolto tramite le operazioni seguenti:
+ dichiarare due variabili che puntano al percorso di installazione del JDBC:

   `variable name: SQLJDBC_HOME; variable value: D:\lib\JDBC4.1\enu`(dove esiste il file sqljdbc4.jar);

  `variable name: SQLJDBC_AUTH_HOME; variable value: D\lib\JDBC4.1\enu\auth\x86`(se utilizzi un sistema operativo a 32 bit) o `D\lib\JDBC4.1\enu\auth\x64` (se utilizzi un sistema operativo a 64 bit). Qui è dove si `sqljdbc_auth.dll` trova il tuo. 
+ Copia `sqljdbc_auth.dll` nella cartella in cui JDK/JRE è in esecuzione. è possibile eseguire la copia nella cartella lib, bin, ecc. Ad esempio, è possibile copiare nella cartella seguente.

  ```
  [JDK_INSTALLED_PATH]\bin;
  [JDK_INSTALLED_PATH]\jre\bin;
  [JDK_INSTALLED_PATH]\jre\lib;
  [JDK_INSTALLED_PATH]\lib;
  ```
+ Assicurati che nella cartella della libreria JDBC sia presente solo il SQLJDBC4 file.jar. Rimuovi tutti gli altri file sqljdbc\$1.jar da quella cartella (o copiali in un'altra cartella). Se stai aggiungendo il driver come parte del tuo programma, assicurati di aggiungere solo SQLJDBC4 .jar come driver da utilizzare.
+ copiare il file sqljdbc\$1auth.dll nella cartella dell'applicazione.

**Nota**  
Se è in esecuzione una Java Virtual Machine (JVM) a 32 bit, utilizza il file sqljdbc\$1auth.dll nella cartella x86 anche se la versione del sistema operativo è x64. Se è in esecuzione una JVM a 64 bit su un processore x64, utilizza il file sqljdbc\$1auth.dll nella cartella x64.

Quando effettui la connessione a un database SQL Server, puoi scegliere **Autenticazione Windows** o **Autenticazione SQL Server** per l'opzione **Autenticazione**.

## Connessione a SQL Server come origine
<a name="CHAP_Source.SQLServer.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine Microsoft SQL Server con AWS Schema Conversion Tool. 

**Per connettersi a un database di origine Microsoft SQL Server**

1. In AWS Schema Conversion Tool, scegli **Aggiungi fonte**.

1. Scegli **Microsoft SQL Server**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Secret**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database di origine di Microsoft SQL Server, utilizzare le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al database di origine.

# Conversione da SQL Server a MySQL
<a name="CHAP_Source.SQLServer.ToMySQL"></a>

Per emulare le funzioni del database di Microsoft SQL Server nel codice MySQL convertito, usa il pacchetto di estensione da SQL Server a MySQL. AWS SCT Per ulteriori informazioni sui pacchetti di estensione, consulta [Utilizzo dei pacchetti di estensione con AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Privilegi per MySQL come database di destinazione](#CHAP_Source.SQLServer.ToMySQL.ConfigureTarget)
+ [Impostazioni di conversione da SQL Server a MySQL](#CHAP_Source.SQLServer.ToMySQL.ConversionSettings)
+ [Considerazioni sulla migrazione](#CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations)

## Privilegi per MySQL come database di destinazione
<a name="CHAP_Source.SQLServer.ToMySQL.ConfigureTarget"></a>

I privilegi richiesti per MySQL come destinazione sono i seguenti:
+ CREA SU\$1 . \$1
+ PIÙ TARDI \$1 . \$1
+ SCENDI SU \$1 . \$1
+ INDICE SU\$1 . \$1
+ RIFERIMENTI SU\$1 . \$1
+ SELECT ON \$1.\$1
+ CREA UNA VISTA SU\$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ GRILLETTO SU \$1 . \$1
+ CREA ROUTINE SU\$1 . \$1
+ MODIFICA LA ROUTINE SU \$1 . \$1
+ ESEGUI SU\$1 . \$1
+ INSERISCI, AGGIORNA SU AWS\$1SQLSERVER \$1EXT. \$1
+ INSERISCI, AGGIORNA, ELIMINA SU AWS\$1SQLSERVER \$1EXT\$1DATA. \$1
+ CREA TABELLE TEMPORANEE SU AWS\$1SQLSERVER \$1EXT\$1DATA. \$1

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_SQLSERVER_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome del tuo utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

Se utilizzi un database MySQL versione 5.7 o precedente come destinazione, esegui il comando seguente. Per i database MySQL versione 8.0 e successive, questo comando è obsoleto.

```
GRANT SELECT ON mysql.proc TO 'user_name';
```

Per utilizzare Amazon RDS per MySQL o Aurora MySQL come destinazione, imposta il parametro `lower_case_table_names` su `1`. Questo valore indica che il server MySQL gestisce gli identificatori di nomi di oggetti come tabelle, indici, trigger e database senza distinzione tra maiuscole e minuscole. Se hai attivato la registrazione binaria nell'istanza di destinazione, imposta il parametro `log_bin_trust_function_creators` su `1`. In questo caso, non è necessario utilizzare le caratteristiche `DETERMINISTIC`, `READS SQL DATA` o `NO SQL` per creare funzioni archiviate. Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

## Impostazioni di conversione da SQL Server a MySQL
<a name="CHAP_Source.SQLServer.ToMySQL.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da SQL Server a MySQL, scegli Impostazioni, AWS SCT quindi **scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **SQL Server**, quindi scegli **SQL Server — MySQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da SQL Server a MySQL.

Le impostazioni AWS SCT di conversione da SQL Server a MySQL includono le seguenti opzioni:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per consentire al database SQL Server di origine di archiviare l'output di `EXEC` in una tabella. AWS SCT crea tabelle temporanee e una procedura aggiuntiva per emulare questa funzionalità. Per utilizzare questa emulazione, seleziona **Crea routine aggiuntive per la gestione** di set di dati aperti.

## Considerazioni sulla migrazione
<a name="CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations"></a>

Considerate questi aspetti durante la migrazione di uno schema di SQL Server su MySQL:
+ MySQL non supporta l'istruzione. `MERGE` Tuttavia, AWS SCT può emulare l'`MERGE`istruzione durante la conversione utilizzando la `INSERT ON DUPLICATE KEY` clausola e le istruzioni. `UPDATE FROM and DELETE FROM`

  Per un corretto utilizzo dell'emulazione`INSERT ON DUPLICATE KEY`, assicurati che esista un vincolo univoco o una chiave primaria sul database MySQL di destinazione.
+ È possibile utilizzare un'`GOTO`istruzione e un'etichetta per modificare l'ordine in cui vengono eseguite le istruzioni. Tutte le istruzioni Transact-SQL che seguono un'`GOTO`istruzione vengono ignorate e l'elaborazione continua dall'etichetta. È possibile utilizzare `GOTO` istruzioni ed etichette ovunque all'interno di una procedura, di un batch o di un blocco di istruzioni. È inoltre possibile annidare `GOTO` le istruzioni.

  MySQL non utilizza istruzioni. `GOTO` Quando AWS SCT converte il codice che contiene un'`GOTO`istruzione, converte l'istruzione in modo che utilizzi un'istruzione or. `BEGIN…END` `LOOP…END LOOP` È possibile trovare esempi di come AWS SCT converte `GOTO` le istruzioni nella tabella seguente.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.ToMySQL.html)
+ MySQL non supporta funzioni con valori di tabella a più istruzioni. AWS SCT simula funzioni con valori di tabella durante una conversione creando tabelle temporanee e riscrivendo le istruzioni per utilizzare queste tabelle temporanee.

# Migrazione da SQL Server a PostgreSQL con AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer.ToPostgreSQL"></a>

È possibile utilizzare il pacchetto di estensione da SQL Server a PostgreSQL in. AWS SCT Questo pacchetto di estensione emula le funzioni del database di SQL Server nel codice PostgreSQL convertito. Usa il pacchetto di estensione SQL Server to PostgreSQL per emulare SQL Server Agent e SQL Server Database Mail. Per ulteriori informazioni sui pacchetti di estensione, consulta [Utilizzo dei pacchetti di estensione con AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Privilegi per PostgreSQL come database di destinazione](#CHAP_Source.SQLServer.ToPostgreSQL.ConfigurePostgreSQL)
+ [Impostazioni di conversione da SQL Server a PostgreSQL](#CHAP_Source.SQLServer.ToPostgreSQL.ConversionSettings)
+ [Conversione di partizioni SQL Server in partizioni PostgreSQL versione 10](#CHAP_Source.SQLServer.ToPostgreSQL.PG10Partitions)
+ [Considerazioni sulla migrazione](#CHAP_Source.SQLServer.ToPostgreSQL.MigrationConsiderations)
+ [Utilizzo di un pacchetto di AWS SCT estensione per emulare SQL Server Agent in PostgreSQL](CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.md)
+ [Utilizzo di un pacchetto di AWS SCT estensione per emulare SQL Server Database Mail in PostgreSQL](CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.md)

## Privilegi per PostgreSQL come database di destinazione
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ConfigurePostgreSQL"></a>

Per utilizzare PostgreSQL come destinazione, è necessario il privilegio. AWS SCT `CREATE ON DATABASE` Assicurati di concedere questo privilegio per ogni database PostgreSQL di destinazione.

Per utilizzare i sinonimi pubblici convertiti, modifica il percorso di ricerca predefinito del database in. `"$user", public_synonyms, public`

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *db\$1name* sostituiscilo con il nome del database di destinazione. Infine, *your\$1password* sostituiscilo con una password sicura.

In PostgreSQL, solo il proprietario di uno schema o un `superuser` può rilasciare uno schema. Il proprietario può eliminare uno schema e tutti gli oggetti inclusi in questo schema anche se il proprietario dello schema non possiede alcuni dei suoi oggetti.

Quando utilizzi utenti diversi per convertire e applicare schemi diversi al database di destinazione, puoi ricevere un messaggio di errore quando non AWS SCT puoi eliminare uno schema. Per evitare questo messaggio di errore, utilizza il ruolo `superuser`. 

## Impostazioni di conversione da SQL Server a PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da SQL Server a PostgreSQL, scegli Impostazioni, quindi **scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **SQL Server**, quindi scegli **SQL Server — PostgreSQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da SQL Server a PostgreSQL.

Le impostazioni di conversione da SQL Server a PostgreSQL includono le seguenti opzioni AWS SCT :
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per consentire l'utilizzo di indici con lo stesso nome in tabelle diverse in SQL Server.

  In PostgreSQL, tutti i nomi di indice utilizzati nello schema devono essere univoci. Per assicurarti che ciò AWS SCT generi nomi univoci per tutti i tuoi indici, seleziona **Genera** nomi univoci per gli indici.
+ Per convertire le procedure di SQL Server in funzioni PostgreSQL.

  PostgreSQL versione 10 e precedenti non supportano le procedure. Per i clienti che non hanno familiarità con l'uso delle procedure in PostgreSQL AWS SCT , possono convertire le procedure in funzioni. A tale scopo, seleziona **Converti procedure in funzioni**.
+ Per emulare l'output di `EXEC` una tabella.

  Il database SQL Server di origine può memorizzare l'output di `EXEC` in una tabella. AWS SCT crea tabelle temporanee e una procedura aggiuntiva per emulare questa funzionalità. Per utilizzare questa emulazione, seleziona **Crea routine aggiuntive per la gestione** di set di dati aperti.
+ Per definire il modello da utilizzare per i nomi degli schemi nel codice convertito. Per il **modello di generazione del nome dello schema**, scegliete una delle seguenti opzioni:
  + ****<source\$1db>— Utilizza il nome del database SQL Server come nome dello schema in PostgreSQL.
  + ****<source\$1schema>— Utilizza il nome dello schema di SQL Server come nome dello schema in PostgreSQL.
  + **\$1** <source\$1db><schema>— Utilizza una combinazione del database di SQL Server e dei nomi dello schema come nome dello schema in PostgreSQL.
+ Per mantenere le lettere maiuscole e minuscole dei nomi degli oggetti di origine.

  Per evitare la conversione dei nomi degli oggetti in lettere minuscole, selezionate **Evita la conversione in lettere minuscole per le operazioni con distinzione tra maiuscole** e minuscole. Questa opzione si applica solo quando si attiva l'opzione di distinzione tra maiuscole e minuscole nel database di destinazione.
+ Per mantenere i nomi dei parametri lontani dal database di origine.

  Per aggiungere virgolette doppie ai nomi dei parametri nel codice convertito, selezionate **Mantieni i nomi dei parametri originali**.

## Conversione di partizioni SQL Server in partizioni PostgreSQL versione 10
<a name="CHAP_Source.SQLServer.ToPostgreSQL.PG10Partitions"></a>

Quando converti un database Microsoft SQL Server in Amazon Aurora PostgreSQL Compatible Edition (Aurora PostgreSQL) o Amazon Relational Database Service for PostgreSQL (Amazon RDS per PostgreSQL), tieni presente quanto segue.

In SQL Server, è necessario creare partizioni con le funzioni di partizione. Quando esegui la conversione da una tabella porzionata SQL Server a una tabella partizionata PostgreSQL versione 10, devi essere consapevole di alcuni problemi potenziali:
+ SQL Server consente di partizionare una tabella utilizzando una colonna senza un vincolo NOT NULL. In questo caso, tutti i valori NULL vanno alla partizione più a sinistra. PostgreSQL non supporta valori NULL per il partizionamento RANGE.
+ SQL Server consente di creare chiavi primarie e univoche per le tabelle partizionate. Per PostgreSQL, è necessario creare chiavi primarie o univoche per ogni partizione direttamente. Pertanto, il vincolo PRIMARY o UNIQUE KEY deve essere rimosso dalla tabella padre durante la migrazione a PostgreSQL. I nomi chiave risultanti assumono il formato. `<original_key_name>_<partition_number>`
+ SQL Server consente di creare un vincolo di chiave esterna da e verso tabelle partizionate. PostgreSQL non supporta le chiavi esterne che fanno riferimento a tabelle partizionate. Inoltre, PostgreSQL non supporta i riferimenti delle chiavi esterne da una tabella partizionata a un'altra tabella.
+ SQL Server consente di creare indici per le tabelle partizionate. Per PostgreSQL, è necessario creare un indice per ogni partizione direttamente. In questo modo, gli indici devono essere rimossi dalle loro tabelle padre durante la migrazione a PostgreSQL. I nomi degli indici risultanti avranno il formato `<original_index_name>_<partition_number>`.
+  PostgreSQL non supporta indici partizionati.

## Considerazioni sulla migrazione
<a name="CHAP_Source.SQLServer.ToPostgreSQL.MigrationConsiderations"></a>

Alcuni aspetti da considerare durante la migrazione di uno schema di SQL Server a PostgreSQL: 
+ In PostgreSQL, tutti i nomi di oggetti in uno schema devono essere univoci, inclusi gli indici. I nomi degli indici devono essere univoci nello schema della tabella di base. In SQL Server, un nome indice può essere lo stesso per tabelle diverse.

  Per garantire l'unicità dei nomi degli indici, AWS SCT offre la possibilità di generare nomi di indice univoci se i nomi degli indici non sono univoci. A questo scopo scegli l'opzione **Genera nomi indici univoci** nelle proprietà del progetto. Per impostazione predefinita, questa opzione è abilitata. Se questa opzione è attiva, i nomi indice univoci vengono creati utilizzando il formato IX\$1table\$1name\$1index\$1name. Se questa opzione è disattivata, i nomi indice non vengono modificati.
+ Un'istruzione GOTO e un'etichetta possono essere utilizzati per modificare l'ordine in cui vengono eseguite le istruzioni. Qualsiasi istruzione Transact-SQL che segue un'istruzione GOTO viene ignorata e l'elaborazione continua a livello di etichetta. Le istruzioni e le etichette GOTO possono essere utilizzate ovunque all'interno di una procedura, di un batch o di un blocco dell'istruzione. Le istruzioni GOTO possono anche essere nidificate.

  PostgreSQL non utilizza le istruzioni GOTO. Quando AWS SCT converte il codice che contiene un'istruzione GOTO, converte l'istruzione in modo che utilizzi un'istruzione BEGIN... END o LOOP... END LOOP. Puoi trovare esempi di come AWS SCT convertire le istruzioni GOTO nella tabella seguente.  
**Istruzioni GOTO SQL Server e istruzioni PostgreSQL convertite**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.ToPostgreSQL.html)
+ PostgreSQL non supporta un'istruzione MERGE. AWS SCT emula il comportamento di un'istruzione MERGE nei seguenti modi:
  + Tramite la costruzione INSERT ON CONFLICT.
  + Utilizzando l'istruzione UPDATE FROM DML, ad esempio MERGE senza una clausola WHEN NOT MATCHED.
  + Utilizzando CURSOR, ad esempio con una clausola MERGE with DELETE o utilizzando un'istruzione di condizione MERGE ON complessa.
+ AWS SCT può aggiungere trigger di database all'albero degli oggetti quando Amazon RDS è la destinazione.
+ AWS SCT può aggiungere trigger a livello di server all'albero degli oggetti quando Amazon RDS è la destinazione.
+ SQL Server crea e gestisce automaticamente le tabelle. `deleted` `inserted` È possibile utilizzare queste tabelle temporanee residenti in memoria per testare gli effetti di determinate modifiche ai dati e impostare le condizioni per le azioni di attivazione DML. AWS SCT può convertire l'utilizzo di queste tabelle all'interno delle istruzioni trigger DML.
+ AWS SCT può aggiungere server collegati all'albero degli oggetti quando Amazon RDS è la destinazione.
+ Durante la migrazione da Microsoft SQL Server a PostgreSQL, la funzione SUSER\$1SNAME integrata viene convertita come segue:
  + SUSER\$1SNAME - Restituisce il nome di accesso associato a un numero di identificazione di sicurezza (SID).
  + SUSER\$1SNAME(<server\$1user\$1sid>) – Non supportata.
  + SUSER\$1SNAME() CURRENT\$1USER – Restituisce il nome utente del contesto di esecuzione corrente.
  + SUSER\$1SNAME(NULL) – Restituisce NULL.
+ La conversione di funzioni valutate a livello di tabella è supportata. Le funzioni valutate a livello di tabella restituiscono una tabella e possono prendere il posto di una tabella in una query.
+ PATINDEX restituisce la posizione iniziale della prima occorrenza di un modello in una determinata espressione su tutti i tipi di dati di carattere e testo validi. Restituisce zeri se il modello non viene trovato. <pattern character><expression character varying>Durante la conversione da SQL Server ad Amazon RDS AWS SCT for PostgreSQL, sostituisce il codice dell'applicazione che utilizza PATINDEX con aws\$1sqlserver\$1ext.patindex (,).
+ In SQL Server, un tipo di tabella definita dall'utente è un tipo che rappresenta la definizione di una struttura di tabella. Utilizza un tipo di tabella definito dall'utente per dichiarare i parametri del valore di tabella per le stored procedure o le funzioni. È inoltre possibile utilizzare un tipo di tabella definito dall'utente per dichiarare le variabili di tabella che si desidera utilizzare in un batch o nel corpo di una procedura o funzione memorizzata. AWS SCT ha emulato questo tipo in PostgreSQL creando una tabella temporanea.

Durante la conversione da SQL Server a PostgreSQL AWS SCT , converte gli oggetti di sistema SQL Server in oggetti riconoscibili in PostgreSQL. La tabella seguente mostra il modo in cui vengono convertiti gli oggetti di sistema. 

 


| Casi d'uso di MS SQL Server | Sostituzione PostgreSQL | 
| --- | --- | 
| SYS.SCHEMAS | AWS\$1SQLSERVER\$1EXT.SYS\$1SCHEMI | 
| SYS.TABLES | AWS\$1SQLSERVER\$1EXT.SYS\$1TABELLE | 
| SYS.VIEWS | AWS\$1SQLSERVER\$1EXT.SYS\$1VIEWS | 
| SYS.ALL\$1VIEWS | AWS\$1SQLSERVER\$1EXT.SYS\$1ALL\$1VIEWS | 
| SYS.TYPES | AWS\$1SQLSERVER\$1EXT.SYS\$1TIPI | 
| SYS.COLUMNS | AWS\$1SQLSERVER\$1EXT.SYS\$1COLUMNS | 
| SYS.ALL\$1COLUMNS | AWS\$1SQLSERVER\$1EXT.SYS\$1ALL\$1COLONNE | 
| SYS.FOREIGN\$1KEYS | AWS\$1SQLSERVER\$1EXT.SYS\$1FOREIGN\$1KEYS | 
| SYS.SYSFOREIGNKEYS | AWS\$1SQLSERVER\$1EXT.SYS\$1SYS FOREIGNKEYS | 
| SYS.FOREIGN\$1KEY\$1COLUMNS | AWS\$1SQLSERVER\$1EXT.SYS\$1FOREIGN\$1KEY\$1COLUMNS | 
| SYS.KEY\$1CONSTRAINTS | AWS\$1SQLSERVER\$1EXT.SYS\$1KEY\$1CONSTRAINTS | 
| SYS.IDENTITY\$1COLUMNS | AWS\$1SQLSERVER\$1EXT.SYS\$1IDENTITY\$1COLUMNS | 
| SYS.PROCEDURES | AWS\$1SQLSERVER\$1EXT.SYS\$1PROCEDURE | 
| SYS.INDEXES | AWS\$1SQLSERVER\$1EXT.SYS\$1INDEXES | 
| SYS.SYSINDEXES | AWS\$1SQLSERVER\$1EXT.SYS\$1SYSINDEXES | 
| SYS.OBJECTS | AWS\$1SQLSERVER\$1EXT.SYS\$1OBJECTS | 
| SYS.ALL\$1OBJECTS | AWS\$1SQLSERVER\$1EXT.SYS\$1ALL\$1OBJECTS | 
| SYS.SYSOBJECTS | AWS\$1SQLSERVER\$1EXT.SYS\$1SYSOBJECTS | 
| SYS.SQL\$1MODULES | AWS\$1SQLSERVER\$1EXT.SYS\$1SQL\$1MODULES | 
| SYS.DATABASES | AWS\$1SQLSERVER\$1EXT.SYS\$1DATABASE | 
| INFORMATION\$1SCHEMA.SCHEMATA  | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1SCHEMATA | 
| INFORMATION\$1SCHEMA.VIEWS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1VIEWS | 
| INFORMATION\$1SCHEMA.TABLES | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1TABELLE | 
| INFORMATION\$1SCHEMA.COLUMNS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1COLUMNS | 
| INFORMATION\$1SCHEMA.CHECK\$1CONSTRAINTS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1CHECK\$1CONSTRAINTS | 
| INFORMATION\$1SCHEMA.REFERENTIAL\$1CONSTRAINTS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1REFERENTIAL\$1CONSTRAINTS | 
| INFORMATION\$1SCHEMA.TABLE\$1CONSTRAINTS | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1TABLE\$1CONSTRAINTS | 
| INFORMATION\$1SCHEMA.KEY\$1COLUMN\$1USAGE | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1KEY\$1COLUMN\$1USAGE | 
| INFORMATION\$1SCHEMA.CONSTRAINT\$1TABLE\$1USAGE | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1CONSTRAINT\$1TABLE\$1USAGE  | 
| INFORMATION\$1SCHEMA.CONSTRAINT\$1COLUMN\$1USAGE | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1CONSTRAINT\$1COLUMN\$1USAGE  | 
| INFORMATION\$1SCHEMA.ROUTINES | AWS\$1SQLSERVER\$1EXT.INFORMATION\$1SCHEMA\$1ROUTINES | 
| SYS.SYSPROCESSES | AWS\$1SQLSERVER\$1EXT.SYS\$1SYS PROCESSI | 
| sys.system\$1objects | AWS\$1SQLSERVER\$1EXT.SYS\$1SISTEMA\$1OBJECTS | 

# Utilizzo di un pacchetto di AWS SCT estensione per emulare SQL Server Agent in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent"></a>

SQL Server Agent è un servizio di Microsoft Windows che esegue i job di SQL Server. SQL Server Agent esegue i processi in base a una pianificazione, in risposta a un evento specifico o su richiesta. Per ulteriori informazioni su SQL Server Agent, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/ssms/agent/sql-server-agent?view=sql-server-ver15).

PostgreSQL non ha un equivalente per SQL Server Agent. Per emulare le funzionalità di SQL Server Agent, AWS SCT crea un pacchetto di estensione. Questo pacchetto di estensione utilizza AWS Lambda Amazon CloudWatch. AWS Lambda implementa l'interfaccia utilizzata per gestire le pianificazioni ed eseguire i lavori. Amazon CloudWatch mantiene le regole di pianificazione.

AWS Lambda e Amazon CloudWatch utilizzano un parametro JSON per interagire. Questo parametro JSON ha la seguente struttura.

```
{
    "mode": mode,
    "parameters": {
        list of parameters
    },
    "callback": procedure name
}
```

Nell'esempio precedente, *`mode`* è il tipo di attività ed `list of parameters` è un insieme di parametri che dipendono dal tipo di attività. Inoltre, `procedure name` è il nome della procedura che viene eseguita dopo il completamento dell'attività.

AWS SCT utilizza una funzione Lambda per controllare ed eseguire i job. La CloudWatch regola avvia l'esecuzione del processo e fornisce le informazioni necessarie per avviarlo. Quando la CloudWatch regola viene attivata, avvia la funzione Lambda utilizzando i parametri della regola.

Per creare un processo semplice che richiama una procedura, utilizzate il seguente formato.

```
{
    "mode": "run_job",
    "parameters": {
        "vendor": "mysql",
        "cmd": "lambda_db.nightly_job"
    }
}
```

Per creare un lavoro con diversi passaggi, utilizzate il formato seguente.

```
{
    "mode": "run_job",
    "parameters": {
        "job_name": "Job1",
        "enabled": "true",
        "start_step_id": 1,
        "notify_level_email": [0|1|2|3],
        "notify_email": email,
        "delete_level": [0|1|2|3],
        "job_callback": "ProcCallBackJob(job_name, code, message)",
        "step_callback": "ProcCallBackStep(job_name, step_id, code, message)"
    },
    "steps": [
        {
            "id":1,
            "cmd": "ProcStep1",
            "cmdexec_success_code": 0,
            "on_success_action": [|2|3|4],
            "on_success_step_id": 1,
            "on_fail_action": 0,
            "on_fail_step_id": 0,
            "retry_attempts": number,
            "retry_interval": number
        },
        {
            "id":2,
            "cmd": "ProcStep2",
            "cmdexec_success_code": 0,
            "on_success_action": [1|2|3|4],
            "on_success_step_id": 0,
            "on_fail_action": 0,
            "on_fail_step_id": 0,
            "retry_attempts": number,
            "retry_interval": number
        },
        ...
]
}
```

Per emulare il comportamento di SQL Server Agent in PostgreSQL, il pacchetto di estensione crea anche AWS SCT le seguenti tabelle e procedure.

## Tabelle che emulano SQL Server Agent in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.Tables"></a>

Per emulare SQL Server Agent, il pacchetto di estensione utilizza le seguenti tabelle:

**sysjobs**  
Memorizza le informazioni sui lavori.

**sysjobsteps**  
Memorizza le informazioni sulle fasi di un lavoro.

**pianificazioni di sistema**  
Memorizza le informazioni sulle pianificazioni dei lavori.

**sysjobschedules**  
Memorizza le informazioni sulla pianificazione per i singoli lavori. 

**sysjobhistory**  
Memorizza le informazioni sulle esecuzioni dei lavori pianificati.

## Procedure che emulano SQL Server Agent in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.Procedures"></a>

Per emulare SQL Server Agent, il pacchetto di estensione utilizza le seguenti procedure:

**sp\$1add\$1job**  
Aggiunge un nuovo lavoro.

**sp\$1add\$1jobstep**  
Aggiunge un passaggio a un lavoro.

**sp\$1add\$1schedule**  
Crea una nuova regola di pianificazione in Amazon CloudWatch. Puoi utilizzare questa pianificazione con un numero qualsiasi di lavori.

**sp\$1attach\$1schedule**  
Imposta una pianificazione per il lavoro selezionato.

**sp\$1add\$1jobschedule**  
Crea una regola di pianificazione per un lavoro in Amazon CloudWatch e imposta l'obiettivo per questa regola.

**sp\$1update\$1job**  
Aggiorna gli attributi del lavoro creato in precedenza.

**sp\$1update\$1jobstep**  
Aggiorna gli attributi della fase di un lavoro.

**sp\$1update\$1schedule**  
Aggiorna gli attributi di una regola di pianificazione in Amazon CloudWatch.

**sp\$1update\$1jobschedule**  
Aggiorna gli attributi della pianificazione per il lavoro specificato.

**sp\$1delete\$1job**  
Elimina un lavoro.

**sp\$1delete\$1jobstep**  
Elimina una fase di lavoro da un lavoro.

**sp\$1delete\$1schedule**  
Elimina una pianificazione.

**sp\$1delete\$1jobschedule**  
Elimina la regola di pianificazione per il lavoro specificato da Amazon CloudWatch.

**sp\$1detach\$1schedule**  
Rimuove un'associazione tra una pianificazione e un lavoro.

**get\$1jobs, update\$1job**  
Procedure interne che interagiscono con. AWS Elastic Beanstalk

**sp\$1verify\$1job\$1date, sp\$1verify\$1job\$1time, sp\$1verify\$1job, sp\$1verify\$1jobstep, sp\$1verify\$1schedule, sp\$1verify\$1job\$1identifiers, sp\$1verify\$1schedule\$1identifiers, sp\$1verify\$1schedule\$1identifiers**  
Procedure interne che controllano le impostazioni.

## Sintassi per le procedure che emulano SQL Server Agent in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.Syntax"></a>

La `aws_sqlserver_ext.sp_add_job` procedura nel pacchetto di estensione emula la procedura. `msdb.dbo.sp_add_job` Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-add-job-transact-sql?view=sql-server-ver15). 

```
par_job_name varchar,
par_enabled smallint = 1,
par_description varchar = NULL::character varying,
par_start_step_id integer = 1,
par_category_name varchar = NULL::character varying,
par_category_id integer = NULL::integer,
par_owner_login_name varchar = NULL::character varying,
par_notify_level_eventlog integer = 2,
par_notify_level_email integer = 0,
par_notify_level_netsend integer = 0,
par_notify_level_page integer = 0,
par_notify_email_operator_name varchar = NULL::character varying,
par_notify_netsend_operator_name varchar = NULL::character varying,
par_notify_page_operator_name varchar = NULL::character varying,
par_delete_level integer = 0,
inout par_job_id integer = NULL::integer,
par_originating_server varchar = NULL::character varying,
out returncode integer
```

La `aws_sqlserver_ext.sp_add_jobstep` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_add_jobstep` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-add-jobstep-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_step_id integer = NULL::integer,
par_step_name varchar = NULL::character varying,
par_subsystem varchar = 'TSQL'::bpchar,
par_command text = NULL::text,
par_additional_parameters text = NULL::text,
par_cmdexec_success_code integer = 0,
par_on_success_action smallint = 1,
par_on_success_step_id integer = 0,
par_on_fail_action smallint = 2,
par_on_fail_step_id integer = 0,
par_server varchar = NULL::character varying,
par_database_name varchar = NULL::character varying,
par_database_user_name varchar = NULL::character varying,
par_retry_attempts integer = 0,
par_retry_interval integer = 0,
par_os_run_priority integer = 0,
par_output_file_name varchar = NULL::character varying,
par_flags integer = 0,
par_proxy_id integer = NULL::integer,
par_proxy_name varchar = NULL::character varying,
inout par_step_uid char = NULL::bpchar,
out returncode integer
```

La `aws_sqlserver_ext.sp_add_schedule` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_add_schedule` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-add-schedule-transact-sql?view=sql-server-ver15). 

```
par_schedule_name varchar,
par_enabled smallint = 1,
par_freq_type integer = 0,
par_freq_interval integer = 0,
par_freq_subday_type integer = 0,
par_freq_subday_interval integer = 0,
par_freq_relative_interval integer = 0,
par_freq_recurrence_factor integer = 0,
par_active_start_date integer = NULL::integer,
par_active_end_date integer = 99991231,
par_active_start_time integer = 0,
par_active_end_time integer = 235959,
par_owner_login_name varchar = NULL::character varying,
*inout par_schedule_uid char = NULL::bpchar,*
inout par_schedule_id integer = NULL::integer,
par_originating_server varchar = NULL::character varying,
out returncode integer
```

La `aws_sqlserver_ext.sp_attach_schedule` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_attach_schedule` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-attach-schedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_schedule_id integer = NULL::integer,
par_schedule_name varchar = NULL::character varying,
par_automatic_post smallint = 1,
out returncode integer
```

La `aws_sqlserver_ext.sp_add_jobschedule` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_add_jobschedule` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-add-jobschedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_name varchar = NULL::character varying,
par_enabled smallint = 1,
par_freq_type integer = 1,
par_freq_interval integer = 0,
par_freq_subday_type integer = 0,
par_freq_subday_interval integer = 0,
par_freq_relative_interval integer = 0,
par_freq_recurrence_factor integer = 0,
par_active_start_date integer = NULL::integer,
par_active_end_date integer = 99991231,
par_active_start_time integer = 0,
par_active_end_time integer = 235959,
inout par_schedule_id integer = NULL::integer,
par_automatic_post smallint = 1,
inout par_schedule_uid char = NULL::bpchar,
out returncode integer
```

La `aws_sqlserver_ext.sp_delete_job` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_delete_job` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-job-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_originating_server varchar = NULL::character varying,
par_delete_history smallint = 1,
par_delete_unused_schedule smallint = 1,
out returncode integer
```

La `aws_sqlserver_ext.sp_delete_jobstep` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_delete_jobstep` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-jobsteplog-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_step_id integer = NULL::integer,
out returncode integer
```

La `aws_sqlserver_ext.sp_delete_jobschedule` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_delete_jobschedule` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-jobschedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_name varchar = NULL::character varying,
par_keep_schedule integer = 0,
par_automatic_post smallint = 1,
out returncode integer
```

La `aws_sqlserver_ext.sp_delete_schedule` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_delete_schedule` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-delete-schedule-transact-sql?view=sql-server-ver15). 

```
par_schedule_id integer = NULL::integer,
par_schedule_name varchar = NULL::character varying,
par_force_delete smallint = 0,
par_automatic_post smallint = 1,
out returncode integer
```

La `aws_sqlserver_ext.sp_detach_schedule` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_detach_schedule` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-detach-schedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer,
par_job_name varchar = NULL::character varying,
par_schedule_id integer = NULL::integer,
par_schedule_name varchar = NULL::character varying,
par_delete_unused_schedule smallint = 0,
par_automatic_post smallint = 1,
out returncode integer
```

La `aws_sqlserver_ext.sp_update_job` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_update_job` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-job-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer
par_job_name varchar = NULL::character varying
par_new_name varchar = NULL::character varying
par_enabled smallint = NULL::smallint
par_description varchar = NULL::character varying
par_start_step_id integer = NULL::integer
par_category_name varchar = NULL::character varying
par_owner_login_name varchar = NULL::character varying
par_notify_level_eventlog integer = NULL::integer
par_notify_level_email integer = NULL::integer
par_notify_level_netsend integer = NULL::integer
par_notify_level_page integer = NULL::integer
par_notify_email_operator_name varchar = NULL::character varying
par_notify_netsend_operator_name varchar = NULL::character varying
par_notify_page_operator_name varchar = NULL::character varying
par_delete_level integer = NULL::integer
par_automatic_post smallint = 1
out returncode integer
```

La `aws_sqlserver_ext.sp_update_jobschedule` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_update_jobschedule` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-jobschedule-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer
par_job_name varchar = NULL::character varying
par_name varchar = NULL::character varying
par_new_name varchar = NULL::character varying
par_enabled smallint = NULL::smallint
par_freq_type integer = NULL::integer
par_freq_interval integer = NULL::integer
par_freq_subday_type integer = NULL::integer
par_freq_subday_interval integer = NULL::integer
par_freq_relative_interval integer = NULL::integer
par_freq_recurrence_factor integer = NULL::integer
par_active_start_date integer = NULL::integer
par_active_end_date integer = NULL::integer
par_active_start_time integer = NULL::integer
                par_active_end_time integer = NULL::integer
par_automatic_post smallint = 1
out returncode integer
```

La `aws_sqlserver_ext.sp_update_jobstep` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_update_jobstep` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-jobstep-transact-sql?view=sql-server-ver15). 

```
par_job_id integer = NULL::integer
par_job_name varchar = NULL::character varying
par_step_id integer = NULL::integer
par_step_name varchar = NULL::character varying
par_subsystem varchar = NULL::character varying
par_command text = NULL::text
par_additional_parameters text = NULL::text
par_cmdexec_success_code integer = NULL::integer
par_on_success_action smallint = NULL::smallint
par_on_success_step_id integer = NULL::integer
par_on_fail_action smallint = NULL::smallint
par_on_fail_step_id integer = NULL::integer
par_server varchar = NULL::character varying
par_database_name varchar = NULL::character varying
par_database_user_name varchar = NULL::character varying
par_retry_attempts integer = NULL::integer
par_retry_interval integer = NULL::integer
par_os_run_priority integer = NULL::integer
par_output_file_name varchar = NULL::character varying
par_flags integer = NULL::integer
par_proxy_id integer = NULL::integer
par_proxy_name varchar = NULL::character varying
out returncode integer
```

La `aws_sqlserver_ext.sp_update_schedule` procedura nel pacchetto di estensione emula la `msdb.dbo.sp_update_schedule` procedura. Per ulteriori informazioni sulla procedura SQL Server Agent di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-schedule-transact-sql?view=sql-server-ver15). 

```
par_schedule_id integer = NULL::integer
par_name varchar = NULL::character varying
par_new_name varchar = NULL::character varying
par_enabled smallint = NULL::smallint
par_freq_type integer = NULL::integer
par_freq_interval integer = NULL::integer
par_freq_subday_type integer = NULL::integer
par_freq_subday_interval integer = NULL::integer
par_freq_relative_interval integer = NULL::integer
par_freq_recurrence_factor integer = NULL::integer
par_active_start_date integer = NULL::integer
par_active_end_date integer = NULL::integer
par_active_start_time integer = NULL::integer
par_active_end_time integer = NULL::integer
par_owner_login_name varchar = NULL::character varying
par_automatic_post smallint = 1
out returncode integer
```

## Esempi di utilizzo di procedure che emulano SQL Server Agent in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.Examples"></a>

Per aggiungere un nuovo lavoro, utilizzare la `aws_sqlserver_ext.sp_add_job` procedura illustrata di seguito.

```
SELECT * FROM aws_sqlserver_ext.sp_add_job (
    par_job_name := 'test_job',
    par_enabled := 1::smallint,
    par_start_step_id := 1::integer,
    par_category_name := '[Uncategorized (Local)]',
    par_owner_login_name := 'sa');
```

Per aggiungere una nuova fase del processo, utilizzare la `aws_sqlserver_ext.sp_add_jobstep` procedura illustrata di seguito.

```
SELECT * FROM aws_sqlserver_ext.sp_add_jobstep (
    par_job_name := 'test_job',
    par_step_id := 1::smallint,
    par_step_name := 'test_job_step1',
    par_subsystem := 'TSQL',
    par_command := 'EXECUTE [dbo].[PROC_TEST_JOB_STEP1];',
    par_server := NULL,
    par_database_name := 'GOLD_TEST_SS');
```

Per aggiungere una pianificazione semplice, utilizzare la `aws_sqlserver_ext.sp_add_schedule` procedura illustrata di seguito.

```
SELECT * FROM aws_sqlserver_ext.sp_add_schedule(
    par_schedule_name := 'RunOnce',
    par_freq_type := 1,
    par_active_start_time := 233000);
```

Per impostare una pianificazione per un lavoro, utilizzare la `aws_sqlserver_ext.sp_attach_schedule` procedura illustrata di seguito.

```
SELECT * FROM aws_sqlserver_ext.sp_attach_schedule (
    par_job_name := 'test_job',
    par_schedule_name := 'NightlyJobs');
```

Per creare una pianificazione per un lavoro, utilizzare la `aws_sqlserver_ext.sp_add_jobschedule` procedura illustrata di seguito.

```
SELECT * FROM aws_sqlserver_ext.sp_add_jobschedule (
    par_job_name := 'test_job2',
    par_name := 'test_schedule2',
    par_enabled := 1::smallint,
    par_freq_type := 4,
    par_freq_interval := 1,
    par_freq_subday_type := 4,
    par_freq_subday_interval := 1,
    par_freq_relative_interval := 0,
    par_freq_recurrence_factor := 0,
    par_active_start_date := 20100801,
    par_active_end_date := 99991231,
    par_active_start_time := 0,
    par_active_end_time := 0);
```

## Esempi di casi d'uso per l'emulazione di SQL Server Agent in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.UseCases"></a>

Se il codice del database sorgente utilizza SQL Server Agent per eseguire i lavori, puoi utilizzare il pacchetto di estensione SQL Server to PostgreSQL AWS SCT per convertire questo codice in PostgreSQL. Il pacchetto di estensione utilizza AWS Lambda funzioni per emulare il comportamento di SQL Server Agent.

È possibile creare una nuova AWS Lambda funzione o registrare una funzione esistente.

**Per creare una nuova AWS Lambda funzione**

1. Nella struttura del database di destinazione AWS SCT, apri il menu contestuale (fai clic con il pulsante destro del mouse), scegli **Applica pacchetto di estensione per**, quindi scegli **PostgreSQL**. 

   Viene visualizzata la procedura guidata del pacchetto di estensione. 

1. Nella scheda del **servizio di emulazione di SQL Server Agent**, procedi come segue: 
   + Scegli **Crea una AWS Lambda funzione.**
   + Per l'**accesso al database**, inserisci il nome dell'utente del database di destinazione.
   + Per **Password del database**, inserisci la password per il nome utente che hai inserito nel passaggio precedente.
   + Per la **cartella della libreria Python**, inserisci il percorso della cartella della libreria Python.
   + **Scegliete **Crea AWS Lambda funzione**, quindi scegliete Avanti.**

**Per registrare una AWS Lambda funzione distribuita in precedenza**
+ Esegui lo script seguente sul database di destinazione.

  ```
  SELECT
      FROM aws_sqlserver_ext.set_service_setting(
          p_service := 'JOB', 
          p_setting := 'LAMBDA_ARN', 
          p_value := ARN)
  ```

  Nell'esempio precedente, *`ARN`* è l'Amazon Resource Name (ARN) della funzione distribuita AWS Lambda .

L'esempio seguente crea un'attività semplice che consiste in un solo passaggio. Ogni cinque minuti, questa attività esegue la `job_example` funzione creata in precedenza. Questa funzione inserisce i record nella `job_example_table` tabella.

**Per creare questa semplice operazione**

1. Crea un lavoro utilizzando la `aws_sqlserver_ext.sp_add_job` funzione come illustrato di seguito.

   ```
   SELECT
       FROM aws_sqlserver_ext.sp_add_job (
           par_job_name := 'test_simple_job');
   ```

1. Create una fase di lavoro utilizzando la `aws_sqlserver_ext.sp_add_jobstep` funzione come illustrato di seguito.

   ```
   SELECT
       FROM aws_sqlserver_ext.sp_add_jobstep (
           par_job_name := 'test_simple_job', 
           par_step_name := 'test_simple_job_step1', 
           par_command := 'PERFORM job_simple_example;');
   ```

   La fase di lavoro specifica cosa fa la funzione.

1. Crea uno scheduler per il lavoro utilizzando la `aws_sqlserver_ext.sp_add_jobschedule` funzione come illustrato di seguito.

   ```
   SELECT
       FROM aws_sqlserver_ext.sp_add_jobschedule (
           par_job_name := 'test_simple_job', 
           par_name := 'test_schedule', 
           par_freq_type := 4, /* Daily */
           par_freq_interval := 1, /* frequency_interval is unused */
           par_freq_subday_type := 4, /* Minutes */
           par_freq_subday_interval := 5 /* 5 minutes */);
   ```

   La fase del processo specifica cosa fa la funzione.

Per eliminare questo lavoro, utilizzare la `aws_sqlserver_ext.sp_delete_job` funzione come illustrato di seguito.

```
PERFORM aws_sqlserver_ext.sp_delete_job(
    par_job_name := 'PeriodicJob1'::character varying,
    par_delete_history := 1::smallint,
    par_delete_unused_schedule := 1::smallint);
```

# Utilizzo di un pacchetto di AWS SCT estensione per emulare SQL Server Database Mail in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail"></a>

È possibile utilizzare SQL Server Database Mail per inviare messaggi di posta elettronica agli utenti dal motore di database di SQL Server o dall'istanza gestita SQL di Azure. Questi messaggi di posta elettronica possono contenere risultati di query o includere file provenienti da qualsiasi risorsa della rete. Per ulteriori informazioni su SQL Server Database Mail, vedere [la documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/database-mail/database-mail?view=sql-server-ver15).

PostgreSQL non ha un equivalente per SQL Server Database Mail. Per emulare le funzionalità di SQL Server Database Mail, AWS SCT crea un pacchetto di estensione. Questo pacchetto di estensione utilizza AWS Lambda Amazon Simple Email Service (Amazon SES). AWS Lambda fornisce agli utenti un'interfaccia per interagire con il servizio di invio e-mail di Amazon SES. Per configurare questa interazione, aggiungi l'Amazon Resource Name (ARN) della tua funzione Lambda. 

Per un nuovo account e-mail, usa il seguente comando.

```
do
$$
begin
PERFORM sysmail_add_account_sp (
    par_account_name :='your_account_name',
    par_email_address := 'your_account_email',
    par_display_name := 'your_account_display_name',
    par_mailserver_type := 'AWSLAMBDA'
    par_mailserver_name := 'ARN'
);
end;
$$ language plpgsql;
```

Per aggiungere l'ARN della funzione Lambda all'account e-mail esistente, utilizzare il comando seguente.

```
do
$$
begin
PERFORM sysmail_update_account_sp (
    par_account_name :='existind_account_name',
    par_mailserver_type := 'AWSLAMBDA'
    par_mailserver_name := 'ARN'
);
end;
$$ language plpgsql;
```

Negli esempi precedenti, *`ARN`* è l'ARN della funzione Lambda.

Per emulare il comportamento di SQL Server Database Mail in PostgreSQL, il pacchetto di estensione utilizza AWS SCT le seguenti tabelle, viste e procedure.

## Tabelle che emulano la posta del database SQL Server in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Tables"></a>

Per emulare SQL Server Database Mail, il pacchetto di estensione utilizza le seguenti tabelle:

**sysmail\$1account**  
Memorizza le informazioni sugli account di posta elettronica.

**sysmail\$1profile**  
Memorizza le informazioni sui profili utente.

**sysmail\$1server**  
Memorizza le informazioni sui server di posta elettronica.

**sysmail\$1mailitems**  
Memorizza l'elenco dei messaggi e-mail.

**sysmail\$1attachments**  
Contiene una riga per ogni allegato di posta elettronica.

**sysmail\$1log**  
Memorizza le informazioni di servizio relative all'invio di messaggi di posta elettronica.

**sysmail\$1profileaccount**  
Memorizza le informazioni sui profili utente e gli account di posta elettronica.

## Visualizzazioni che emulano la posta del database SQL Server in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Views"></a>

Per emulare SQL Server Database Mail, AWS SCT crea le seguenti viste nel database PostgreSQL per garantire la compatibilità. Il pacchetto di estensione non le utilizza, ma il codice convertito può interrogare queste visualizzazioni.

**sysmail\$1allitems**  
Include un elenco di tutte le email.

**sysmail\$1faileditems**  
Include un elenco di e-mail che non è stato possibile inviare.

**sysmail\$1sentitems**  
Include un elenco di e-mail inviate.

**sysmail\$1unsentitems**  
Include un elenco di e-mail che non sono ancora state inviate.

**sysmail\$1mailattachments**  
Include un elenco di file allegati.

## Procedure che emulano la posta del database SQL Server in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Procedures"></a>

Per emulare SQL Server Database Mail, il pacchetto di estensione utilizza le seguenti procedure:

**sp\$1send\$1dbmail**  
Invia un messaggio di posta elettronica ai destinatari specificati.

**sysmail\$1add\$1profile\$1sp**  
Crea un nuovo profilo utente.

**sysmail\$1add\$1account\$1sp**  
Crea un nuovo account e-mail che memorizza informazioni come le credenziali SMTP (Simple Mail Transfer Protocol) e così via.

**sysmail\$1add\$1profileaccount\$1sp**  
Aggiunge un account e-mail al profilo utente specificato.

**sysmail\$1update\$1profile\$1sp**  
Modifica gli attributi del profilo utente come descrizione, nome e così via.

**sysmail\$1update\$1account\$1sp**  
Modifica le informazioni nell'account di posta elettronica esistente.

**sysmail\$1update\$1profileaccount\$1sp**  
Aggiorna le informazioni dell'account e-mail nel profilo utente specificato.

**sysmail\$1delete\$1profileaccount\$1sp**  
Rimuove un account e-mail dal profilo utente specificato.

**sysmail\$1delete\$1account\$1sp**  
Elimina l'account e-mail.

**sysmail\$1delete\$1profile\$1sp**  
Elimina il profilo utente.

**sysmail\$1delete\$1mailitems\$1sp**  
Elimina i messaggi di posta elettronica dalle tabelle interne.

**sysmail\$1help\$1profile\$1sp**  
Visualizza informazioni sul profilo utente.

**sysmail\$1help\$1account\$1sp**  
Visualizza informazioni sull'account e-mail.

**sysmail\$1help\$1profileaccount\$1sp**  
Visualizza informazioni sugli account e-mail associati al profilo utente.

**sysmail\$1dbmail\$1json**  
Una procedura interna che genera richieste JSON per le funzioni. AWS Lambda 

**sysmail\$1verify\$1profile\$1sp, sysmail\$1verify\$1account\$1sp, sysmail\$1verify\$1addressparams\$1sp**  
Procedure interne che controllano le impostazioni.

**sp\$1get\$1dbmail, sp\$1set\$1dbmail, sysmail\$1dbmail\$1xml**  
Procedure interne obsolete.

## Sintassi per le procedure che emulano SQL Server Database Mail in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Syntax"></a>

La `aws_sqlserver_ext.sp_send_dbmail` procedura nel pacchetto di estensione emula la procedura. `msdb.dbo.sp_send_dbmail` Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql?view=sql-server-ver15).

```
par_profile_name varchar = NULL::character varying,
par_recipients text = NULL::text,
par_copy_recipients text = NULL::text,
par_blind_copy_recipients text = NULL::text,
par_subject varchar = NULL::character varying,
par_body text = NULL::text,
par_body_format varchar = NULL::character varying,
par_importance varchar = 'NORMAL'::character varying,
par_sensitivity varchar = 'NORMAL'::character varying,
par_file_attachments text = NULL::text,
par_query text = NULL::text,
par_execute_query_database varchar = NULL::character varying,
par_attach_query_result_as_file smallint = 0,
par_query_attachment_filename varchar = NULL::character varying,
par_query_result_header smallint = 1,
par_query_result_width integer = 256,
par_query_result_separator VARCHAR = ' '::character varying,
par_exclude_query_output smallint = 0,
par_append_query_error smallint = 0,
par_query_no_truncate smallint = 0,
par_query_result_no_padding smallint = 0,
out par_mailitem_id integer,
par_from_address text = NULL::text,
par_reply_to text = NULL::text,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_delete_mailitems_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_delete_mailitems_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-delete-mailitems-sp-transact-sql?view=sql-server-ver15).

```
par_sent_before timestamp = NULL::timestamp without time zone,
par_sent_status varchar = NULL::character varying,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_add_profile_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_add_profile_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql?view=sql-server-ver15).

```
par_profile_name varchar,
par_description varchar = NULL::character varying,
out par_profile_id integer,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_add_account_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_add_account_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql?view=sql-server-ver15).

```
par_account_name varchar
par_email_address varchar
par_display_name varchar = NULL::character varying
par_replyto_address varchar = NULL::character varying
par_description varchar = NULL::character varying
par_mailserver_name varchar = NULL::character varying
par_mailserver_type varchar = 'SMTP'::bpchar
par_port integer = 25
par_username varchar = NULL::character varying
par_password varchar = NULL::character varying
par_use_default_credentials smallint = 0
par_enable_ssl smallint = 0
out par_account_id integer
out returncode integer
```

La `aws_sqlserver_ext.sysmail_add_profileaccount_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_add_profileaccount_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
par_sequence_number integer = NULL::integer,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_help_profile_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_help_profile_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-profile-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_update_profile_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_update_profile_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-update-profile-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_description varchar = NULL::character varying,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_delete_profile_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_delete_profile_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-delete-profile-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_force_delete smallint = 1,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_help_account_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_help_account_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-account-sp-transact-sql?view=sql-server-ver15).

```
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_update_account_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_update_account_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-update-account-sp-transact-sql?view=sql-server-ver15).

```
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
par_email_address varchar = NULL::character varying,
par_display_name varchar = NULL::character varying,
par_replyto_address varchar = NULL::character varying,
par_description varchar = NULL::character varying,
par_mailserver_name varchar = NULL::character varying,
par_mailserver_type varchar = NULL::character varying,
par_port integer = NULL::integer,
par_username varchar = NULL::character varying,
par_password varchar = NULL::character varying,
par_use_default_credentials smallint = NULL::smallint,
par_enable_ssl smallint = NULL::smallint,
par_timeout integer = NULL::integer,
par_no_credential_change smallint = NULL::smallint,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_delete_account_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_delete_account_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-delete-account-sp-transact-sql?view=sql-server-ver15).

```
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_help_profileaccount_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_help_profileaccount_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-profileaccount-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_update_profileaccount_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_update_profileaccount_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-update-profileaccount-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
par_sequence_number integer = NULL::integer,
out returncode integer
```

La `aws_sqlserver_ext.sysmail_delete_profileaccount_sp` procedura nel pacchetto di estensione emula la `msdb.dbo.sysmail_delete_profileaccount_sp` procedura. Per ulteriori informazioni sulla procedura SQL Server Database Mail di origine, vedere la [documentazione tecnica Microsoft](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-delete-profileaccount-sp-transact-sql?view=sql-server-ver15).

```
par_profile_id integer = NULL::integer,
par_profile_name varchar = NULL::character varying,
par_account_id integer = NULL::integer,
par_account_name varchar = NULL::character varying,
out returncode integer
```

## Esempi di utilizzo di procedure che emulano SQL Server Database Mail in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.Examples"></a>

Per inviare un'e-mail, utilizzare la `aws_sqlserver_ext.sp_send_dbmail` procedura illustrata di seguito.

```
PERFORM sp_send_dbmail (
    par_profile_name := 'Administrator',
    par_recipients := 'hello@rusgl.info',
    par_subject := 'Automated Success Message',
    par_body := 'The stored procedure finished'
);
```

L'esempio seguente mostra come inviare un'e-mail con i risultati delle query.

```
PERFORM sp_send_dbmail (
    par_profile_name := 'Administrator',
    par_recipients := 'hello@rusgl.info',
    par_subject := 'Account with id = 1',
    par_query := 'SELECT COUNT(*)FROM Account WHERE id = 1'
);
```

L'esempio seguente mostra come inviare un'e-mail con codice HTML.

```
DECLARE var_tableHTML TEXT;
SET var_tableHTML := CONCAT(
    '<H1>Work Order Report</H1>',
    '<table border="1">',
    '<tr><th>Work Order ID</th><th>Product ID</th>',
    '<th>Name</th><th>Order Qty</th><th>Due Date</th>',
    '<th>Expected Revenue</th></tr>',
    '</table>'
);
PERFORM sp_send_dbmail (
    par_recipients := 'hello@rusgl.info',
    par_subject := 'Work Order List',
    par_body := var_tableHTML,
    par_body_format := 'HTML'
);
```

Per eliminare i messaggi di posta elettronica, utilizzare la `aws_sqlserver_ext.sysmail_delete_mailitems_sp` procedura illustrata di seguito.

```
DECLARE var_GETDATE datetime;
SET var_GETDATE = NOW();
PERFORM sysmail_delete_mailitems_sp (
    par_sent_before := var_GETDATE
);
```

L'esempio seguente mostra come eliminare i messaggi di posta elettronica più vecchi.

```
PERFORM sysmail_delete_mailitems_sp (
    par_sent_before := '31.12.2015'
);
```

L'esempio seguente mostra come eliminare tutte le email che non possono essere inviate.

```
PERFORM sysmail_delete_mailitems_sp (
    par_sent_status := 'failed'
);
```

Per creare un nuovo profilo utente, utilizzare la `aws_sqlserver_ext.sysmail_add_profile_sp` procedura illustrata di seguito.

```
PERFORM sysmail_add_profile_sp (
    profile_name := 'Administrator',
    par_description := 'administrative mail'
);
```

L'esempio seguente mostra come creare un nuovo profilo e salvare l'identificatore univoco del profilo in una variabile.

```
DECLARE var_profileId INT;
SELECT par_profile_id
    FROM sysmail_add_profile_sp (
        profile_name := 'Administrator',
        par_description := ' Profile used for administrative mail.')
    INTO var_profileId;
    
SELECT var_profileId;
```

Per creare un nuovo account e-mail, utilizzare la `aws_sqlserver_ext.sysmail_add_account_sp` procedura illustrata di seguito.

```
PERFORM sysmail_add_account_sp (
    par_account_name :='Audit Account',
    par_email_address := 'dba@rusgl.info',
    par_display_name := 'Test Automated Mailer',
    par_description := 'Account for administrative e-mail.',
    par_mailserver_type := 'AWSLAMBDA'
    par_mailserver_name := 'arn:aws:lambda:us-west-2:555555555555:function:pg_v3'
);
```

Per aggiungere un account e-mail al profilo utente, utilizzare la `aws_sqlserver_ext.sysmail_add_profileaccount_sp` procedura illustrata di seguito.

```
PERFORM sysmail_add_profileaccount_sp (
    par_account_name := 'Administrator',
    par_account_name := 'Audit Account',
    par_sequence_number := 1
);
```

## Esempi di casi d'uso per emulare SQL Server Database Mail in PostgreSQL
<a name="CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.UseCases"></a>

Se il codice del database sorgente utilizza SQL Server Database Mail per inviare e-mail, puoi utilizzare il pacchetto di AWS SCT estensione per convertire questo codice in PostgreSQL.

**Per inviare un'e-mail dal database PostgreSQL**

1. Crea e configura la tua funzione. AWS Lambda 

1. Applica il pacchetto di AWS SCT estensione.

1. Crea un profilo utente utilizzando la `sysmail_add_profile_sp` funzione illustrata di seguito.

1. Crea un account e-mail utilizzando la `sysmail_add_account_sp` funzione illustrata di seguito.

1. Aggiungi questo account e-mail al tuo profilo utente utilizzando la `sysmail_add_profileaccount_sp` funzione illustrata di seguito.

   ```
   CREATE OR REPLACE FUNCTION aws_sqlserver_ext.
   proc_dbmail_settings_msdb()
   RETURNS void
   AS
   $BODY$
   BEGIN
   PERFORM aws_sqlserver_ext.sysmail_add_profile_sp(
       par_profile_name := 'Administrator',
       par_description := 'administrative mail'
   );
   PERFORM aws_sqlserver_ext.sysmail_add_account_sp(
       par_account_name := 'Audit Account',
       par_description := 'Account for administrative e-mail.',
       par_email_address := 'dba@rusgl.info',
       par_display_name := 'Test Automated Mailer',
       par_mailserver_type := 'AWSLAMBDA'
       par_mailserver_name := 'your_ARN'
   );
   PERFORM aws_sqlserver_ext.sysmail_add_profileaccount_sp(
       par_profile_name := 'Administrator',
       par_account_name := 'Audit Account',
       par_sequence_number := 1
   );
   END;
   $BODY$
   LANGUAGE plpgsql;
   ```

1. Inviate un'e-mail utilizzando la `sp_send_dbmail` funzione illustrata di seguito.

   ```
   CREATE OR REPLACE FUNCTION aws_sqlserver_ext.
   proc_dbmail_send_msdb()
   RETURNS void
   AS
   $BODY$
   BEGIN
   PERFORM aws_sqlserver_ext.sp_send_dbmail(
       par_profile_name := 'Administrator',
       par_recipients := 'hello@rusgl.info',
       par_body := 'The stored procedure finished',
       par_subject := 'Automated Success Message'
   );
   END;
   $BODY$
   LANGUAGE plpgsql;
   ```

Per visualizzare le informazioni su tutti i profili utente, utilizzare la `sysmail_help_profile_sp` procedura illustrata di seguito.

```
SELECT FROM aws_sqlserver_ext.sysmail_help_profile_sp();
```

L'esempio seguente visualizza le informazioni sul profilo utente specifico.

```
select from aws_sqlserver_ext.sysmail_help_profile_sp(par_profile_id := 1);
select from aws_sqlserver_ext.sysmail_help_profile_sp(par_profile_name := 'Administrator');
```

Per visualizzare le informazioni su tutti gli account di posta elettronica, utilizzare la `sysmail_help_account_sp` procedura illustrata di seguito.

```
select from aws_sqlserver_ext.sysmail_help_account_sp();
```

L'esempio seguente visualizza le informazioni sull'account di posta elettronica specifico.

```
select from aws_sqlserver_ext.sysmail_help_account_sp(par_account_id := 1);
select from aws_sqlserver_ext.sysmail_help_account_sp(par_account_name := 'Audit Account');
```

Per visualizzare le informazioni su tutti gli account di posta elettronica associati ai profili utente, utilizzare la `sysmail_help_profileaccount_sp` procedura illustrata di seguito.

```
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp();
```

L'esempio seguente filtra i record in base all'identificatore, al nome del profilo o al nome dell'account.

```
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp(par_profile_id := 1);
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp(par_profile_id := 1, par_account_id := 1);
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp(par_profile_name := 'Administrator');
select from aws_sqlserver_ext.sysmail_help_profileaccount_sp(par_account_name := 'Audit Account');
```

Per modificare il nome o la descrizione del profilo utente, utilizzare la `sysmail_update_profile_sp` procedura illustrata di seguito.

```
select aws_sqlserver_ext.sysmail_update_profile_sp(
    par_profile_id := 2,
    par_profile_name := 'New profile name'
);
```

Per modificare le impostazioni dell'account e-mail, utilizzare la `ysmail_update_account_sp` procedura illustrata di seguito.

```
select from aws_sqlserver_ext.sysmail_update_account_sp (
    par_account_name := 'Audit Account',
    par_mailserver_name := 'arn:aws:lambda:region:XXXXXXXXXXXX:function:func_test',
    par_mailserver_type := 'AWSLAMBDA'
);
```

# Migrazione da SQL Server ad Amazon RDS per SQL Server con AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer.ToRDSSQLServer"></a>

Alcuni aspetti da considerare durante la migrazione dello schema e del codice SQL Server ad Amazon RDS per SQL Server: 
+ AWS SCT può convertire SQL Server Agent per fornire pianificazioni, avvisi e processi su un'istanza DB di Amazon RDS for SQL Server. Dopo la conversione, è possibile usare un'istanza database Amazon RDS for SQL Server con SQL Server Reporting Service (SSRS), SQL Server Analysis Services (SSAS) e SQL Server Integration Services (SSIS).
+ Amazon RDS non supporta attualmente SQL Server Service Broker o endpoint T-SQL aggiuntivi che richiedono l'esecuzione del comando CREATE ENDPOINT.
+ Amazon RDS dispone di supporto limitato per i server collegati. Quando converte il codice dell'applicazione SQL Server che utilizza server collegati, AWS SCT converte il codice dell'applicazione. Tuttavia, assicurarsi di esaminare il comportamento degli oggetti che utilizzano server collegati prima di eseguire il codice convertito.
+ Si utilizza Sempre acceso.
+ Il rapporto di AWS SCT valutazione fornisce le metriche del server per la conversione. Questi parametri sull'istanza SQL Server includono quanto segue:
  + Viene utilizzato il mirroring dei dati.
  + SQL Server Log Shipping è configurato.
  + Il cluster di failover viene utilizzato.
  + Database Mail è configurato. 
  + Full Text Search Service viene utilizzato. Amazon RDS per SQL Server ha una ricerca full-text limitata e non supporta la ricerca semantica.
  + Data Quality Service (DQS) è installato. Amazon RDS non supporta DQS quindi consigliamo di installare SQL Server su un'istanza Amazon EC2.

## Privilegi per RDS for SQL Server come destinazione
<a name="CHAP_Source.SQLServer.ToRDSSQLServer.ConfigureTarget"></a>

Per eseguire la migrazione a RDS per SQL Server, crea un utente del database e quindi concedi i privilegi richiesti per ogni database. È possibile utilizzare il seguente esempio di codice.

```
CREATE LOGIN user_name WITH PASSWORD 'your_password';
                
USE db_name
CREATE USER user_name FOR LOGIN user_name
GRANT VIEW DEFINITION TO user_name
GRANT VIEW DATABASE STATE TO user_name
GRANT CREATE SCHEMA TO user_name;
GRANT CREATE TABLE TO user_name;
GRANT CREATE VIEW TO user_name;
GRANT CREATE TYPE TO user_name;
GRANT CREATE DEFAULT TO user_name;
GRANT CREATE FUNCTION TO user_name;
GRANT CREATE PROCEDURE TO user_name;
GRANT CREATE ASSEMBLY TO user_name;
GRANT CREATE AGGREGATE TO user_name;
GRANT CREATE FULLTEXT CATALOG TO user_name;
GRANT CREATE SYNONYM TO user_name;
GRANT CREATE XML SCHEMA COLLECTION TO user_name;
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome dell'utente. Quindi, *db\$1name* sostituiscilo con il nome del database di destinazione. Infine, *your\$1password* sostituiscilo con una password sicura.

# Fonti di data warehouse per AWS Schema Conversion Tool
<a name="CHAP_Source-Data-Warehouses"></a>

AWS SCT può convertire gli schemi per i seguenti data warehouse di origine in una destinazione supportata. Per informazioni sulle autorizzazioni, sulle connessioni e su cosa è AWS SCT possibile convertire per l'uso con il database o il data warehouse di destinazione, consulta i dettagli di seguito.

**Topics**
+ [Connessione di Amazon Redshift con AWS Schema Conversion Tool](CHAP_Source.Redshift.md)
+ [Connessione di Azure Synapse Analytics con AWS Schema Conversion Tool](CHAP_Source.AzureSynapse.md)
+ [Connessione a Google BigQuery con AWS Schema Conversion Tool](CHAP_Source.BigQuery.md)
+ [Connessione del database Greenplum con AWS Schema Conversion Tool](CHAP_Source.Greenplum.md)
+ [Connessione a Netezza con AWS Schema Conversion Tool](CHAP_Source.Netezza.md)
+ [Connettere Oracle Data Warehouse con AWS SCT](CHAP_Source.OracleDW.md)
+ [Connessione a un data warehouse Snowflake con AWS Schema Conversion Tool](CHAP_Source.Snowflake.md)
+ [Connessione a un data warehouse di SQL Server con AWS Schema Conversion Tool](CHAP_Source.SQLServerDW.md)
+ [Connessione a un Data Warehouse Teradata con AWS Schema Conversion Tool](CHAP_Source.Teradata.md)
+ [Connessione dei AWS Schema Conversion Tool database a Vertica](CHAP_Source.Vertica.md)

# Connessione di Amazon Redshift con AWS Schema Conversion Tool
<a name="CHAP_Source.Redshift"></a>

Puoi utilizzarlo AWS SCT per ottimizzare il tuo cluster Amazon Redshift. AWS SCT ti fornisce consigli sulla selezione delle chiavi di distribuzione e ordinamento per il tuo cluster Amazon Redshift. Puoi considerare il progetto di ottimizzazione di Amazon Redshift come un AWS SCT progetto con origine e destinazione che puntano ai diversi cluster Amazon Redshift.

## Privilegi per Amazon Redshift come database di origine
<a name="CHAP_Source.Redshift.Permissions"></a>

Per utilizzare Amazon Redshift come fonte sono necessari i seguenti privilegi:
+ UTILIZZO SU SCHEMA *<schema\$1name>* 
+ SELEZIONA SU TUTTE LE TABELLE DELLO SCHEMA *<schema\$1name>* 
+ SELECT ON PG\$1CATALOG.PG\$1STATISTIC 
+ SELECT ON SVV\$1TABLE\$1INFO 
+ SELECT ON TABLE STV\$1BLOCKLIST 
+ SELECT ON TABLE STV\$1TBL\$1PERM 
+ SELEZIONA SU SYS\$1SERVERLESS\$1USAGE 
+ SELEZIONA PG\$1DATABASE\$1INFO 
+ SELEZIONA SU PG\$1STATISTIC 

Negli esempi precedenti, sostituisci il *<schema\$1name>* segnaposto con il nome dello schema di origine.

Per i privilegi richiesti per Amazon Redshift come destinazione, consulta. [Autorizzazioni per Amazon Redshift come destinazione](CHAP_Converting.DW.md#CHAP_Converting.DW.ConfigureTarget)

## Connessione ad Amazon Redshift come fonte
<a name="CHAP_Source.Redshift.Connecting"></a>

Utilizza la seguente procedura per connetterti al tuo database di origine Amazon Redshift con. AWS Schema Conversion Tool

**Per connettersi a un database di origine Amazon Redshift**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi fonte**. 

1. **Scegli **Amazon Redshift**, quindi scegli Avanti.** 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire le informazioni di connessione per il database di origine di Amazon Redshift, utilizza le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Redshift.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Impostazioni di ottimizzazione di Amazon Redshift
<a name="CHAP_Source.Redshift.ConversionSettings"></a>

Per modificare le impostazioni di ottimizzazione di Amazon Redshift, seleziona **Impostazioni** in AWS SCT, quindi scegli Impostazioni di **conversione**. Dall'elenco in alto, scegli **Amazon Redshift**, quindi scegli Amazon **Redshift — Amazon Redshift**. AWS SCT mostra tutte le impostazioni disponibili per l'ottimizzazione di Amazon Redshift.

Le impostazioni di ottimizzazione di Amazon Redshift AWS SCT includono opzioni per quanto segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se il numero di tabelle è superiore a quello che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per scegliere la strategia di migrazione.

  AWS consiglia di utilizzare cluster diversi come origine e destinazione per il progetto di ottimizzazione. Prima di iniziare il processo di ottimizzazione di Amazon Redshift, crei una copia del cluster Amazon Redshift di origine. Puoi includere i dati di origine in questa copia o creare un cluster vuoto.

  Per la **strategia** di **migrazione, scegli Migrazione a una copia** per includere i dati del cluster di origine nel cluster di destinazione.

  Per la **strategia di migrazione**, scegli **Migrazione verso una tabula** rasa per esaminare i suggerimenti di ottimizzazione. Dopo aver accettato questi suggerimenti, migra i dati di origine nel cluster di destinazione.
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando è stata selezionata l'opzione **Usa codifica di compressione**.
+ Per utilizzare l'ottimizzazione automatica delle tabelle.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per utilizzarlo solo sull'ottimizzazione automatica delle tabelle, scegli **Strategie di ottimizzazione** nel riquadro a sinistra. Quindi seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift e scegli **Nessuno** per la** strategia **iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**.
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico, scegli l'utente** del database di cui desideri analizzare le statistiche delle query.

# Connessione di Azure Synapse Analytics con AWS Schema Conversion Tool
<a name="CHAP_Source.AzureSynapse"></a>

Puoi usarlo AWS SCT per convertire schemi, oggetti di codice e codice dell'applicazione da Azure Synapse Analytics ad Amazon Redshift. 

## Privilegi per Azure Synapse Analytics come database di origine
<a name="CHAP_Source.AzureSynapse.Permissions"></a>

I seguenti privilegi sono necessari per usare un data warehouse di Azure Synapse Analytics come fonte:
+ VIEW DEFINITION 
+ VIEW DATABASE STATE 

Applica i privilegi per ogni database di cui stai convertendo lo schema.

## Connessione ad Azure Synapse Analytics come fonte
<a name="CHAP_Source.AzureSynapse.Connecting"></a>

Usa la seguente procedura per connetterti al tuo data warehouse di Azure Synapse Analytics con. AWS Schema Conversion Tool

**Per connettersi a un data warehouse di Azure Synapse Analytics come fonte**

1. **Nella AWS Schema Conversion Tool, scegli Aggiungi fonte.** 

1. **Scegli **Azure Synapse Analytics**, quindi scegli Avanti.** 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni di connessione per il data warehouse di Azure Synapse Analytics, usa le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.AzureSynapse.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine.

1. Scegli **Connect** per connetterti al tuo database di origine.

## Impostazioni di conversione da Azure Synapse Analytics ad Amazon Redshift
<a name="CHAP_Source.AzureSynapse.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da Azure Synapse Analytics ad Amazon Redshift, scegli Impostazioni in AWS SCT, quindi scegli **Impostazioni** di conversione.** Dall'elenco superiore, scegli **Azure Synapse**, quindi scegli **Azure Synapse** — Amazon Redshift. AWS SCT mostra tutte le impostazioni disponibili per la conversione da Azure Synapse Analytics ad Amazon Redshift.

Le impostazioni di conversione da Azure Synapse Analytics ad Amazon Redshift AWS SCT includono opzioni per quanto segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per migrare le partizioni della tabella di origine in tabelle separate in Amazon Redshift. A tale scopo, seleziona **Usa la vista UNION ALL** e inserisci il numero massimo di tabelle di destinazione che AWS SCT puoi creare per una singola tabella di origine.

  Amazon Redshift non supporta il partizionamento della tabella. Per emulare questo comportamento e velocizzare l'esecuzione delle query, AWS SCT puoi migrare ogni partizione della tabella di origine in una tabella separata in Amazon Redshift. Quindi, AWS SCT crea una vista che include i dati di tutte queste tabelle.

  AWS SCT determina automaticamente il numero di partizioni nella tabella di origine. A seconda del tipo di partizionamento della tabella di origine, questo numero può superare la quota delle tabelle che puoi applicare al cluster Amazon Redshift. Per evitare di raggiungere questa quota, inserite il numero massimo di tabelle di destinazione che è AWS SCT possibile creare per le partizioni di una singola tabella di origine. L'opzione predefinita è 368 tabelle, che rappresenta una partizione per 366 giorni all'anno e due tabelle per e partizioni. `NO RANGE` `UNKNOWN`
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.

## Impostazioni di ottimizzazione della conversione da Azure Synapse Analytics ad Amazon Redshift
<a name="CHAP_Source.AzureSynapse.ConversionOptimizationSettings"></a>

**Per modificare le impostazioni di ottimizzazione delle conversioni da Azure Synapse Analytics ad Amazon Redshift, scegli Impostazioni in AWS SCT, **quindi scegli Impostazioni** di conversione.** Dall'elenco superiore, scegli **Azure Synapse**, quindi scegli **Azure Synapse** — Amazon Redshift. **Nel riquadro a sinistra, scegli Strategie di ottimizzazione.** AWS SCT visualizza le impostazioni di ottimizzazione della conversione per la conversione da Azure Synapse Analytics ad Amazon Redshift.

Le impostazioni di ottimizzazione della conversione da Azure Synapse Analytics ad Amazon Redshift AWS SCT includono opzioni per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.

# Connessione a Google BigQuery con AWS Schema Conversion Tool
<a name="CHAP_Source.BigQuery"></a>

Puoi utilizzarlo AWS SCT per convertire schemi, oggetti di codice e codice applicativo BigQuery da Amazon Redshift. 

## Privilegi come fonte BigQuery
<a name="CHAP_Source.BigQuery.Permissions"></a>

Per utilizzare un BigQuery data warehouse come fonte in AWS SCT, crea un account di servizio. In Google Cloud, le applicazioni utilizzano gli account di servizio per effettuare chiamate API autorizzate. Gli account di servizio sono diversi dagli account utente. Per ulteriori informazioni, consulta [Account di servizio](https://cloud.google.com/iam/docs/service-accounts) nella documentazione di Google Cloud Identity and Access Management.

Assicurati di assegnare i seguenti ruoli al tuo account di servizio:
+ `BigQuery Admin`
+ `Storage Admin`

Il `BigQuery Admin` ruolo fornisce le autorizzazioni per gestire tutte le risorse all'interno del progetto. AWS SCT utilizza questo ruolo per caricare i BigQuery metadati nel progetto di migrazione.

Il `Storage Admin` ruolo garantisce il pieno controllo degli oggetti di dati e dei bucket. Puoi trovare questo ruolo in. `Cloud Storage` AWS SCT utilizza questo ruolo per estrarre i dati BigQuery e caricarli in Amazon Redshift.

**Per creare un file chiave dell'account di servizio**

1. Accedi alla console di gestione di Google Cloud all'indirizzo [https://console.cloud.google.com/](https://console.cloud.google.com/).

1. Nella pagina [BigQuery API](https://console.cloud.google.com/apis/library/bigquery.googleapis.com), scegli **Abilita**. Salta questo passaggio se vedi **API abilitata**.

1. Nella pagina [Account di servizio](https://console.cloud.google.com/iam-admin/serviceaccounts), scegli il tuo progetto, quindi scegli **Crea account di servizio**.

1. Nella pagina dei **dettagli dell'account di servizio**, inserisci un valore descrittivo per il **nome dell'account di servizio**. Scegli **Crea e continua**. Viene visualizzata la **pagina Concedi all'account di servizio l'accesso al progetto**. 

1. Per **Seleziona un ruolo**, scegli **BigQuery**, quindi scegli **BigQuery Amministratore**. 

1. Scegli **Aggiungi un altro ruolo**. Per **Seleziona un ruolo**, scegli **Cloud Storage**, quindi scegli **Storage Admin**. 

1. Scegli **Continua**, quindi scegli **Fine**. 

1. Nella pagina [Account di servizio](https://console.cloud.google.com/iam-admin/serviceaccounts), scegli l'account di servizio che hai creato.

1. Scegli **Chiavi**, quindi scegli **Crea nuova chiave** per **Aggiungi chiave**.

1. Scegli **JSON**, quindi scegli **Crea**. Scegli la cartella in cui salvare la chiave privata o seleziona la cartella predefinita per i download nel tuo browser.

Per estrarre dati da un BigQuery data warehouse, AWS SCT utilizza la cartella bucket di Google Cloud Storage. Crea questo bucket prima di iniziare la migrazione dei dati. Inserisci il percorso della cartella bucket di Google Cloud Storage nella finestra di dialogo **Crea attività locale**. Per ulteriori informazioni, consulta [Creazione, esecuzione e monitoraggio di qualsiasi AWS SCT attività](agents.md#agents.Tasks).

## Connessione a BigQuery come fonte
<a name="CHAP_Source.BigQuery.Connecting"></a>

Usa la seguente procedura per connetterti al tuo BigQuery progetto sorgente con AWS Schema Conversion Tool.

**Per connettersi a un data warehouse di BigQuery origine**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi fonte**.

1. Scegli **BigQuery**, quindi scegli **Avanti**.

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. In **Nome della connessione**, inserisci un nome per il tuo BigQuery progetto. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra.

1. In **Percorso chiave**, inserisci il percorso del file chiave dell'account di servizio. Per ulteriori informazioni sulla creazione di questo file, vedere[Privilegi come fonte BigQuery](#CHAP_Source.BigQuery.Permissions). 

1. Scegliete **Test Connection** per verificare che sia AWS SCT possibile connettersi al BigQuery progetto sorgente. 

1. Scegli **Connect** per connetterti al tuo BigQuery progetto sorgente.

## Limitazioni all'utilizzo BigQuery come fonte per AWS SCT
<a name="CHAP_Source.BigQuery.Limitations"></a>

Le seguenti limitazioni si applicano quando si utilizza BigQuery come fonte per AWS SCT:
+ AWS SCT non supporta la conversione di sottoquery nelle funzioni analitiche.
+ Non è possibile utilizzare le istruzioni AWS SCT to convert BigQuery `SELECT AS STRUCT`. `SELECT AS VALUE`
+ AWS SCT non supporta la conversione dei seguenti tipi di funzioni:
  + Aggregato approssimativo
  + Bit
  + Debug
  + Interrogazione federata
  + Geografia
  + Hash
  + Matematiche
  + Rete
  + Aggregato statistico
  + UUID
+ AWS SCT fornisce un supporto limitato per la conversione delle funzioni di stringa. 
+ AWS SCT non supporta la conversione degli `UNNEST` operatori.
+ Non è possibile convertire le operazioni di join correlate in AWS SCT.
+ AWS SCT non supporta la conversione delle `OFFSET` clausole `QUALIFY``WINDOW`,`LIMIT`, e.
+ Non è possibile utilizzare AWS SCT per convertire espressioni di tabella comuni ricorsive.
+ AWS SCT non supporta la conversione di `INSERT` istruzioni con sottoquery all'interno di clausole. `VALUES`
+ AWS SCT non supporta la conversione di `UPDATE` istruzioni per campi annidati e record ripetuti.
+ Non è possibile utilizzare AWS SCT per convertire tipi `STRUCT` di `ARRAY` dati.

## BigQuery alle impostazioni di conversione in Amazon Redshift
<a name="CHAP_Source.BigQuery.ConversionSettings"></a>

 BigQuery Per modificare le impostazioni di conversione in Amazon Redshift, seleziona **Impostazioni** in AWS SCT, quindi scegli Impostazioni di **conversione**. Dall'elenco superiore, scegli **Google BigQuery**, quindi scegli **Google BigQuery — Amazon Redshift**. AWS SCT mostra tutte le impostazioni disponibili BigQuery per la conversione in Amazon Redshift.

BigQuery le impostazioni di conversione in Amazon Redshift AWS SCT includono le seguenti opzioni:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.

## BigQuery alle impostazioni di ottimizzazione delle conversioni di Amazon Redshift
<a name="CHAP_Source.BigQuery.ConversionOptimizationSettings"></a>

 BigQuery Per modificare le impostazioni di ottimizzazione delle conversioni in Amazon Redshift, seleziona **Impostazioni** in AWS SCT, quindi seleziona Impostazioni di **conversione**. Dall'elenco superiore, scegli **Google BigQuery**, quindi scegli **Google BigQuery — Amazon Redshift**. Nel riquadro a sinistra, scegli **Strategie di ottimizzazione**. AWS SCT visualizza le impostazioni di ottimizzazione della conversione BigQuery per la conversione in Amazon Redshift.

BigQuery alle impostazioni di ottimizzazione delle conversioni di Amazon Redshift nelle opzioni di AWS SCT inclusione per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.

# Connessione del database Greenplum con AWS Schema Conversion Tool
<a name="CHAP_Source.Greenplum"></a>

Puoi utilizzarlo AWS SCT per convertire schemi, oggetti di codice e codice applicativo da Greenplum Database ad Amazon Redshift. 

## Privilegi per il database Greenplum come fonte
<a name="CHAP_Source.Greenplum.Permissions"></a>

I seguenti privilegi sono necessari per utilizzare Greenplum Database come fonte:
+ CONNETTITI AL DATABASE *<database\$1name>* 
+ UTILIZZO SU SCHEMA *<schema\$1name>* 
+ SELEZIONA ON *<schema\$1name>.<table\$1name>* 
+ SELEZIONA IN SEQUENZA *<schema\$1name>.<sequence\$1name>* 

Nell'esempio precedente, sostituite i segnaposto come segue:
+ Sostituire *database\$1name* con il nome del database di origine.
+ Sostituire *schema\$1name* con il nome dello schema di origine.
+ Sostituire *table\$1name* con il nome della tabella di origine.
+ Sostituire *sequence\$1name* con il nome del nome della sequenza.

## Connessione al database Greenplum come fonte
<a name="CHAP_Source.Greenplum.Connecting"></a>

Utilizza la seguente procedura per connetterti al tuo database di origine Greenplum con. AWS SCT

**Per connetterti al database di origine Greenplum**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi** fonte. 

1. Scegli **SAP ASE**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le credenziali del database di origine Greenplum, utilizzate le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Greenplum.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Impostazioni di conversione da Greenplum ad Amazon Redshift
<a name="CHAP_Source.Greenplum.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da Greenplum ad Amazon Redshift, **scegli Impostazioni AWS SCT in, quindi scegli** Impostazioni di conversione.** Dall'elenco in alto, scegli **Greenplum**, quindi scegli **Greenplum — Amazon** Redshift. AWS SCT mostra tutte le impostazioni disponibili per la conversione da Greenplum ad Amazon Redshift.

Le impostazioni di conversione da Greenplum ad Amazon Redshift includono AWS SCT le seguenti opzioni:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per migrare le partizioni della tabella di origine in tabelle separate in Amazon Redshift. A tale scopo, seleziona **Usa la vista UNION ALL** e inserisci il numero massimo di tabelle di destinazione che AWS SCT puoi creare per una singola tabella di origine.

  Amazon Redshift non supporta il partizionamento della tabella. Per emulare questo comportamento e velocizzare l'esecuzione delle query, AWS SCT puoi migrare ogni partizione della tabella di origine in una tabella separata in Amazon Redshift. Quindi, AWS SCT crea una vista che include i dati di tutte queste tabelle.

  AWS SCT determina automaticamente il numero di partizioni nella tabella di origine. A seconda del tipo di partizionamento della tabella di origine, questo numero può superare la quota delle tabelle che puoi applicare al cluster Amazon Redshift. Per evitare di raggiungere questa quota, inserite il numero massimo di tabelle di destinazione che è AWS SCT possibile creare per le partizioni di una singola tabella di origine. L'opzione predefinita è 368 tabelle, che rappresenta una partizione per 366 giorni all'anno e due tabelle per e partizioni. `NO RANGE` `UNKNOWN`
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.

## Impostazioni di ottimizzazione della conversione da Greenplum ad Amazon Redshift
<a name="CHAP_Source.Greenplum.ConversionOptimizationSettings"></a>

**Per modificare le impostazioni di ottimizzazione delle conversioni da Greenplum ad Amazon Redshift, **scegli** Impostazioni AWS SCT in, quindi scegli Impostazioni di conversione.** Dall'elenco in alto, scegli **Greenplum**, quindi scegli **Greenplum — Amazon** Redshift. **Nel riquadro di sinistra, scegli Strategie di ottimizzazione.** AWS SCT visualizza le impostazioni di ottimizzazione della conversione per la conversione da Greenplum ad Amazon Redshift.

Le impostazioni AWS SCT di ottimizzazione della conversione da Greenplum ad Amazon Redshift includono opzioni per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.

# Connessione a Netezza con AWS Schema Conversion Tool
<a name="CHAP_Source.Netezza"></a>

Puoi utilizzarlo AWS SCT per convertire schemi, oggetti di codice e codice applicativo da Netezza ad Amazon Redshift. 

## Privilegi per Netezza come fonte
<a name="CHAP_Source.Netezza.Permissions"></a>

I seguenti privilegi sono necessari per utilizzare Netezza come fonte:
+ seleziona nella vista system.definition\$1schema.system
+ seleziona nella tabella system.definition\$1schema.system
+ seleziona nella tabella system.definition\$1schema.management
+ elenco su *<database\$1name>*
+ elenco su *<schema\$1name>*
+ elenco su *<database\$1name>* .all.table
+ elenco nella tabella .all.external *<database\$1name>*
+ elenco su .all.view *<database\$1name>*
+ elenco su .all.materialized view *<database\$1name>*
+ elenco su *<database\$1name>* .all.procedure
+ elenco su .all.sequence *<database\$1name>*
+ elenco su .all.function *<database\$1name>*
+ elenco su .all.aggregate *<database\$1name>*

Nell'esempio precedente, sostituite i segnaposto come segue:
+ Sostituire *database\$1name* con il nome del database di origine.
+ Sostituire *schema\$1name* con il nome dello schema di origine.

AWS SCT richiede l'accesso alle seguenti tabelle e viste di sistema. È possibile concedere l'accesso a questi oggetti anziché concedere l'accesso a `system.definition_schema.system view` e `system.definition_schema.system tables` nell'elenco precedente.
+ selezionate su system.definition\$1schema. \$1t\$1aggregate
+ seleziona su system.definition\$1schema. \$1t\$1class
+ seleziona su system.definition\$1schema. \$1t\$1constraint
+ seleziona su system.definition\$1schema. \$1t\$1const\$1relattr
+ seleziona su system.definition\$1schema. \$1t\$1database
+ seleziona su system.definition\$1schema. \$1t\$1grobj\$1priv
+ seleziona su system.definition\$1schema. \$1t\$1groupsr
+ seleziona su system.definition\$1schema. \$1t\$1hist\$1config
+ seleziona su system.definition\$1schema. \$1t\$1object
+ seleziona su system.definition\$1schema. \$1t\$1object\$1classes
+ seleziona su system.definition\$1schema. \$1t\$1proc
+ seleziona su system.definition\$1schema. \$1t\$1type
+ seleziona su system.definition\$1schema. \$1t\$1user
+ seleziona su system.definition\$1schema. \$1t\$1usrobj\$1priv
+ seleziona system.definition\$1schema. \$1vt\$1sequence
+ seleziona su system.definition\$1schema. \$1v\$1aggregate
+ seleziona su system.definition\$1schema. \$1v\$1constraint\$1depends
+ seleziona su system.definition\$1schema. \$1v\$1database
+ seleziona su system.definition\$1schema. \$1v\$1datatype
+ seleziona su system.definition\$1schema. \$1v\$1dslice
+ seleziona su system.definition\$1schema. \$1v\$1function
+ seleziona su system.definition\$1schema. \$1v\$1group
+ seleziona su system.definition\$1schema. \$1v\$1obj\$1relation
+ seleziona su system.definition\$1schema. \$1v\$1obj\$1relation\$1xdb
+ seleziona su system.definition\$1schema. \$1v\$1procedura
+ seleziona su system.definition\$1schema. \$1v\$1relation\$1column
+ seleziona su system.definition\$1schema. \$1v\$1relation\$1keydata
+ seleziona system.definition\$1schema. \$1v\$1relobjclasses
+ seleziona su system.definition\$1schema. \$1v\$1schema\$1xdb
+ seleziona su system.definition\$1schema. \$1v\$1sequenza
+ seleziona su system.definition\$1schema. \$1v\$1synonym
+ seleziona su system.definition\$1schema. \$1v\$1system\$1info
+ seleziona system.definition\$1schema. \$1v\$1sys\$1constraint
+ seleziona system.definition\$1schema. \$1v\$1sys\$1object\$1dslice\$1info
+ seleziona su system.definition\$1schema. \$1v\$1sys\$1user
+ seleziona su system.definition\$1schema. \$1v\$1table
+ seleziona su system.definition\$1schema. \$1v\$1table\$1constraint
+ seleziona system.definition\$1schema. \$1v\$1table\$1dist\$1map
+ seleziona su system.definition\$1schema. \$1v\$1table\$1organize\$1column
+ seleziona system.definition\$1schema. \$1v\$1table\$1storage\$1stat
+ seleziona system.definition\$1schema. \$1v\$1user
+ seleziona su system.definition\$1schema. \$1v\$1view
+ seleziona su system.information\$1schema. \$1v\$1relation\$1column
+ seleziona su system.information\$1schema. \$1v\$1table
+ seleziona su \$1hist\$1column\$1access\$1\$1

## Connessione a Netezza come sorgente
<a name="CHAP_Source.Netezza.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine Netezza con AWS Schema Conversion Tool. 

**Per connetterti a un database di origine Netezza**

1. Nel AWS Schema Conversion Tool, scegli **Aggiungi fonte**. 

1. Scegli **Netezza**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni di connessione al database di origine Netezza, utilizzate le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Netezza.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Configurazione della replica continua dei dati
<a name="CHAP_Source.Netezza.CDC"></a>

Dopo aver convertito gli schemi del database Netezza e averli applicati al database Amazon Redshift, puoi migrare i dati con agenti di estrazione dei dati AWS SCT . L'agente estrae i tuoi dati e li carica nel tuo bucket Amazon S3. Puoi quindi utilizzarli AWS SCT per copiare i dati da Amazon S3 ad Amazon Redshift.

Se i dati nel database di origine cambiano durante il processo di migrazione, puoi acquisire le modifiche in corso con AWS SCT i tuoi agenti di estrazione dei dati. È quindi possibile replicare queste modifiche in corso nel database di destinazione dopo aver completato la migrazione iniziale dei dati. Questo processo è chiamato replica continua dei dati o *acquisizione dei dati di modifica* (CDC).

**Per configurare la replica continua dei dati per le migrazioni da Netezza ad Amazon Redshift**

1. Nel tuo database di origine, crea un database di cronologia. È possibile utilizzare il seguente esempio di codice nell'interfaccia a riga di comando (CLI) di Netezza.

   ```
   nzhistcreatedb -d history_database_name -t query -v 1 -u load_user -o histdb_owner -p your_password
   ```

   Nell'esempio precedente, sostituiscilo *history\$1database\$1name* con il nome del tuo database di cronologia. Quindi, sostituiscilo *load\$1user* con il nome dell'utente che hai definito per caricare i dati della cronologia nel database. Quindi, sostituiscili *histdb\$1owner* con il nome dell'utente che hai definito come proprietario del database di cronologia. Assicurati di aver già creato questo utente e di aver concesso l'`CREATE DATABASE`autorizzazione. Infine, *your\$1password* sostituiscilo con una password sicura.

1. Configura la registrazione della cronologia. A tale scopo, utilizzate il seguente esempio di codice.

   ```
   CREATE HISTORY CONFIGURATION history_configuration_name HISTTYPE QUERY
       DATABASE history_database_name USER load_user PASSWORD your_password COLLECT PLAN, COLUMN
       LOADINTERVAL 1 LOADMINTHRESHOLD 0 LOADMAXTHRESHOLD 0 STORAGELIMIT 25
       LOADRETRY 2 VERSION 1;
   ```

   Nell'esempio precedente, sostituite *history\$1configuration\$1name* e *history\$1database\$1name* con i nomi della configurazione della cronologia e del database della cronologia. Quindi, sostituiscilo *load\$1user* con il nome dell'utente che hai definito per caricare i dati della cronologia nel database. Quindi, *your\$1password* sostituiscili con una password sicura.

1. Concedi le autorizzazioni di lettura per tutte le tabelle nel database di cronologia. È possibile utilizzare il seguente esempio di codice per concedere l'`SELECT`autorizzazione.

   ```
   GRANT SELECT ON history_database_name.ALL.TABLE TO your_user;
   ```

   Nell'esempio precedente, sostituiscilo *history\$1database\$1name* con il nome del tuo database di cronologia. Successivamente, *your\$1user* sostituiscilo con il nome dell'utente con le autorizzazioni minime per lavorare con il tuo database Netezza. Le credenziali di questo utente del database vengono utilizzate in. AWS SCT

1. Raccogli statistiche per ogni tabella del tuo schema di origine per ottenere informazioni sulla cardinalità delle colonne. È possibile utilizzare il seguente comando per generare statistiche nel database della cronologia.

   ```
   GENERATE STATISTICS on "schema_name"."table_name";
   ```

   Nell'esempio precedente, sostituite *schema\$1name* e *table\$1name* con il nome dello schema e della tabella del database.

1. Assicurati di aver completato i prerequisiti eseguendo la seguente query:

   ```
   SELECT COUNT(*) FROM history_database_name.history_schema_name."$hist_column_access_N";
   ```

   Nell'esempio precedente, sostituite *history\$1database\$1name* e *history\$1schema\$1name* con il nome del database e dello schema di cronologia. Quindi, *N* sostituiscilo con il numero di versione del tuo database di cronologia. Per ulteriori informazioni sulle versioni del database di cronologia, consulta la documentazione [IBM Netezza](https://www.ibm.com/docs/en/netezza?topic=history-database-versions). 

1. Installa i tuoi agenti di estrazione dei dati. Per ulteriori informazioni, consulta [Installazione degli agenti di estrazione](agents.md#agents.Installing).

   Assicurati che il `{working.folder}` parametro nel `settings.properties` file per tutte le istanze dell'estrattore punti alla stessa cartella. In questo caso, i vostri estrattori possono coordinare la sessione CDC e utilizzare un unico punto di transazione per tutte le sottoattività.

1. Registra il tuo agente di estrazione dei dati. Per ulteriori informazioni, consulta [Registrazione degli agenti di estrazione con AWS Schema Conversion Tool](agents.md#agents.Using).

1. Crea la tua attività CDC. Per ulteriori informazioni, consulta [Creazione, esecuzione e monitoraggio di qualsiasi AWS SCT attività](agents.md#agents.Tasks).

   1. Apri il tuo progetto in AWS SCT. Nel riquadro a sinistra, scegli la tabella di origine. Apri il menu contestuale (fai clic con il pulsante destro del mouse) e scegli **Crea attività locale**.

   1. In **Nome attività**, inserisci un nome descrittivo per l'attività di migrazione dei dati.

   1. Per la **modalità di migrazione**, scegli **Estrai, carica e copia**.

   1. Seleziona **Abilita CDC.**

   1. Scegli la scheda **delle impostazioni CDC** e definisci l'ambito e la pianificazione delle sessioni CDC.

   1. Scegli **Test task** per verificare che sia possibile connettersi alla cartella di lavoro, al bucket Amazon S3 e al data warehouse Amazon Redshift.

   1. Scegli **Crea per creare** la tua attività.

   1. Scegli la scheda **Attività**, scegli l'attività dall'elenco e scegli **Avvia**.

1. L' AWS SCT attività mantiene la coerenza transazionale nel database di destinazione. L'agente di estrazione dei dati replica le transazioni dall'origine nell'ordine degli ID delle transazioni. 

   Se si interrompe una delle sessioni di migrazione o se questa non riesce, si interrompe anche l'elaborazione CDC.

## Impostazioni di conversione da Netezza ad Amazon Redshift
<a name="CHAP_Source.Netezza.ConversionSettings"></a>

Per modificare le impostazioni di conversione da Netezza ad Amazon Redshift, **scegli** Impostazioni AWS SCT in, quindi **scegli** Impostazioni di conversione. Dall'elenco superiore, scegli **Netezza**, quindi scegli **Netezza — Amazon Redshift**. AWS SCT mostra tutte le impostazioni disponibili per la conversione da Netezza ad Amazon Redshift.

Le impostazioni AWS SCT di conversione da Netezza ad Amazon Redshift includono le seguenti opzioni:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.

## Impostazioni di ottimizzazione delle conversioni da Netezza ad Amazon Redshift
<a name="CHAP_Source.Netezza.ConversionOptimizationSettings"></a>

Per modificare le impostazioni di ottimizzazione delle conversioni da Netezza ad Amazon Redshift, **scegli** Impostazioni AWS SCT in, quindi **scegli** Impostazioni di conversione. Dall'elenco superiore, scegli **Netezza**, quindi scegli **Netezza — Amazon Redshift**. **Nel riquadro di sinistra, scegli Strategie di ottimizzazione.** AWS SCT visualizza le impostazioni di ottimizzazione della conversione per la conversione da Netezza ad Amazon Redshift.

Le impostazioni AWS SCT di ottimizzazione della conversione da Netezza ad Amazon Redshift includono opzioni per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.

# Connettere Oracle Data Warehouse con AWS SCT
<a name="CHAP_Source.OracleDW"></a>

Puoi utilizzarlo AWS SCT per convertire schemi, oggetti di codice e codice applicativo da Oracle Data Warehouse ad Amazon Redshift o Amazon Redshift e utilizzarli in combinazione. AWS Glue 

## Privilegi per Oracle Data Warehouse come fonte
<a name="CHAP_Source.OracleDW.Permissions"></a>

I seguenti privilegi sono necessari per utilizzare Oracle Data Warehouse come fonte:
+ connect 
+ select\$1catalog\$1role 
+ select any dictionary 

## Connessione a Oracle Data Warehouse come origine
<a name="CHAP_Source.OracleDW.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine del data warehouse Oracle con AWS Schema Conversion Tool. 

**Per connettersi a un database di origine di Oracle Data Warehouse**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi fonte**. 

1. Scegli **Oracle**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni di connessione al data warehouse di Oracle Source, utilizzare le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.OracleDW.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Impostazioni di conversione da Oracle Data Warehouse ad Amazon Redshift
<a name="CHAP_Source.OracleDW.ConversionSettings"></a>

Per modificare le impostazioni di conversione da Oracle Data Warehouse ad Amazon Redshift, scegli **Impostazioni** in AWS SCT, quindi scegli Impostazioni di **conversione**. Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — Amazon Redshift**. AWS SCT mostra tutte le impostazioni disponibili per la conversione da Oracle Data Warehouse ad Amazon Redshift.

Le impostazioni di conversione da Oracle Data Warehouse ad Amazon Redshift AWS SCT includono opzioni per quanto segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per migrare le partizioni della tabella di origine in tabelle separate in Amazon Redshift. A tale scopo, seleziona **Usa la vista UNION ALL** e inserisci il numero massimo di tabelle di destinazione che AWS SCT puoi creare per una singola tabella di origine.

  Amazon Redshift non supporta il partizionamento della tabella. Per emulare questo comportamento e velocizzare l'esecuzione delle query, AWS SCT puoi migrare ogni partizione della tabella di origine in una tabella separata in Amazon Redshift. Quindi, AWS SCT crea una vista che include i dati di tutte queste tabelle.

  AWS SCT determina automaticamente il numero di partizioni nella tabella di origine. A seconda del tipo di partizionamento della tabella di origine, questo numero può superare la quota delle tabelle che puoi applicare al cluster Amazon Redshift. Per evitare di raggiungere questa quota, inserite il numero massimo di tabelle di destinazione che è AWS SCT possibile creare per le partizioni di una singola tabella di origine. L'opzione predefinita è 368 tabelle, che rappresenta una partizione per 366 giorni all'anno e due tabelle per e partizioni. `NO RANGE` `UNKNOWN`
+ Per convertire le funzioni di formattazione dei tipi di dati come `TO_CHAR` e `TO_NUMBER` con elementi di formato datetime che Amazon Redshift non supporta. `TO_DATE` Per impostazione predefinita, AWS SCT utilizza le funzioni del pacchetto di estensione per emulare l'uso di questi elementi di formato non supportati nel codice convertito.

  Il modello di formato datetime di Oracle include più elementi rispetto alle stringhe di formato datetime di Amazon Redshift. Se il codice sorgente include solo elementi in formato datetime supportati da Amazon Redshift, non sono necessarie le funzioni del pacchetto di estensione nel codice convertito. Per evitare di utilizzare le funzioni del pacchetto di estensione nel codice convertito, seleziona **gli elementi di formato Datetype che usi nel codice Oracle sono simili alle stringhe di formato datetime in Amazon** Redshift. In questo caso, il codice convertito funziona più velocemente.

  Il modello di formato numerico di Oracle include più elementi rispetto alle stringhe in formato numerico di Amazon Redshift. Se il codice sorgente include solo elementi in formato numerico supportati da Amazon Redshift, non sono necessarie le funzioni del pacchetto di estensione nel codice convertito. Per evitare di utilizzare le funzioni del pacchetto di estensione nel codice convertito, seleziona **Gli elementi di formato numerico utilizzati nel codice Oracle sono simili alle stringhe di formato numerico in Amazon Redshift**. In questo caso, il codice convertito funziona più velocemente.
+ Per convertire funzioni Oracle `LEAD` e analitiche. `LAG` Per impostazione predefinita, AWS SCT genera un'azione per ogni funzione`LEAD`. `LAG`

  Quando il codice sorgente non utilizza i valori predefiniti per l'offset in queste funzioni, AWS SCT può emulare l'utilizzo di queste funzioni con la funzione. `NVL` A tale scopo, seleziona **Usa la funzione NVL per emulare il comportamento delle funzioni Oracle LEAD** e LAG.
+ Per emulare il comportamento delle chiavi primarie e univoche nel tuo cluster Amazon Redshift, **seleziona Emula il comportamento delle chiavi primarie** e uniche.

  Amazon Redshift non impone chiavi uniche e primarie e le utilizza solo a scopo informativo. Se utilizzi questi vincoli nel codice, assicurati che il loro comportamento venga AWS SCT emulato nel codice convertito.
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.

## Impostazioni di ottimizzazione delle conversioni da Oracle Data Warehouse ad Amazon Redshift
<a name="CHAP_Source.OracleDW.ConversionOptimizationSettings"></a>

Per modificare le impostazioni di ottimizzazione delle conversioni da Oracle Data Warehouse ad Amazon Redshift, scegli **Impostazioni** in AWS SCT, quindi scegli Impostazioni di **conversione**. Dall'elenco superiore, scegli **Oracle**, quindi scegli **Oracle — Amazon Redshift**. Nel riquadro a sinistra, scegli **Strategie di ottimizzazione**. AWS SCT visualizza le impostazioni di ottimizzazione della conversione per la conversione da Oracle Data Warehouse ad Amazon Redshift.

Le impostazioni di ottimizzazione della conversione da Oracle Data Warehouse ad Amazon Redshift AWS SCT includono opzioni per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.

# Connessione a un data warehouse Snowflake con AWS Schema Conversion Tool
<a name="CHAP_Source.Snowflake"></a>

Puoi utilizzarlo AWS SCT per convertire schemi, oggetti di codice e codice applicativo da Snowflake ad Amazon Redshift.

## Privilegi per Snowflake come database di origine
<a name="CHAP_Source.Snowflake.Permissions"></a>

È possibile creare un ruolo con privilegi e assegnare a questo ruolo il nome di un utente utilizzando il `SECURITYADMIN` ruolo e il contesto della sessione. `SECURITYADMIN`

L'esempio seguente crea privilegi minimi e li concede all'utente. `min_privs` 

```
create role role_name;
grant role role_name to role sysadmin;
grant usage on database db_name to role role_name;
grant usage on schema db_name.schema_name to role role_name;             
grant usage on warehouse datawarehouse_name to role role_name;
grant monitor on database db_name to role role_name;
grant monitor on warehouse datawarehouse_name to role role_name;
grant select on all tables in schema db_name.schema_name to role role_name;
grant select on future tables in schema db_name.schema_name to role role_name;
grant select on all views in schema db_name.schema_name to role role_name;
grant select on future views in schema db_name.schema_name to role role_name;
grant select on all external tables in schema db_name.schema_name to role role_name;
grant select on future external tables in schema db_name.schema_name to role role_name;
grant usage on all sequences in schema db_name.schema_name to role role_name;
grant usage on future sequences in schema db_name.schema_name to role role_name;
grant usage on all functions in schema db_name.schema_name to role role_name;
grant usage on future functions in schema db_name.schema_name to role role_name;
grant usage on all procedures in schema db_name.schema_name to role role_name;
grant usage on future procedures in schema db_name.schema_name to role role_name;
create user min_privs password='real_user_password'  
DEFAULT_ROLE = role_name DEFAULT_WAREHOUSE = 'datawarehouse_name';
grant role role_name to user min_privs;
```

Nell'esempio precedente, sostituite i segnaposto come segue:
+ Sostituire *`role_name`* con il nome di un ruolo con privilegi di sola lettura.
+ Sostituire `db_name` con il nome del database di origine.
+ Sostituire `schema_name` con il nome dello schema di origine.
+ Sostituisci *`datawarehousename`* con il nome di un data warehouse richiesto.
+ Sostituisci `min_privs` con il nome di un utente con privilegi minimi.

I `DEFAULT_WAREHOUSE` parametri `DEFAULT_ROLE` and sono sensibili ai tasti.

## Configurazione dell'accesso sicuro ad Amazon S3
<a name="CHAP_Source.Snowflake.IAM"></a>

Le politiche di sicurezza e gestione degli accessi per un bucket Amazon S3 consentono a Snowflake di accedere, leggere e scrivere dati nel bucket S3. Puoi configurare l'accesso sicuro a un bucket Amazon S3 privato utilizzando il tipo di oggetto `STORAGE INTEGRATION` Snowflake. Un oggetto di integrazione dello storage Snowflake delega la responsabilità di autenticazione a un'entità di gestione delle identità e degli accessi Snowflake.

Per ulteriori informazioni, consulta [Configurazione di un'integrazione di storage Snowflake per accedere ad Amazon S3 nella documentazione di Snowflake](https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html).

## Connessione a Snowflake come sorgente
<a name="CHAP_Source.Snowflake.Connecting"></a>

Utilizzare la procedura seguente per connettersi al database di origine con. AWS Schema Conversion Tool

**Per connettersi a un database di origine Snowflake**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi** fonte. 

1. **Scegli **Snowflake**, quindi scegli Avanti.** 

   Viene visualizzata la finestra **di dialogo Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni di connessione al data warehouse di origine Snowflake, utilizzate le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Snowflake.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Limitazioni per Snowflake come fonte
<a name="CHAP_Source.Snowflake.Limitations"></a>

Di seguito sono riportate le limitazioni relative all'utilizzo di Snowflake come fonte per: AWS SCT
+ Gli identificatori di oggetto devono essere univoci nel contesto del tipo di oggetto e dell'oggetto principale:  
**Database**  
Gli identificatori dello schema devono essere univoci all'interno di un database.  
**Schemi**  
Gli identificatori di oggetti, ad esempio per tabelle e viste, devono essere univoci all'interno di uno schema.  
**Tabelle/viste**  
Gli identificatori di colonna devono essere univoci all'interno di una tabella.
+ Il numero massimo di tabelle per i tipi di nodi cluster large e xlarge è 9.900. Per i tipi di nodi di cluster di dimensioni 8xlarge, il numero massimo di tabelle è 100.000. Il limite include tabelle temporanee, definite dall'utente e create da Amazon Redshift durante l'elaborazione delle query o la manutenzione del sistema. Per informazioni, consultare [Quote di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione dei cluster Amazon Redshift*.
+ Per le stored procedure, il numero massimo di argomenti di input e output è 32.

## Tipi di dati di origine per Snowflake
<a name="CHAP_Source.Snowflake.DataTypes"></a>

Di seguito, puoi trovare i tipi di dati di origine Snowflake supportati durante l'utilizzo AWS SCT e la mappatura predefinita su un target Amazon Redshift.


| Tipi di dati Snowflake | Tipi di dati Amazon Redshift | 
| --- | --- | 
|  NUMBER  |  NUMERICO (38)  | 
|  NUMBER(p)  |  Se p è =< 4, allora SMALLINT Se p è => 5 e =< 9, allora INTEGER Se p è => 10 e =< 18, allora BIGINT Se p è => 19 allora NUMERIC (p)   | 
|  NUMERO (p, 0)  |  Se p è =< 4, allora SMALLINT Se p è => 5 e =< 9, allora INTEGER Se p è => 10 e =< 18, allora BIGINT Se p è => 19 allora: NUMERIC (p,0)  | 
|  NUMERO (p, s)  |  Se p è => 1 e =< 38 e se s è => 1 e =< 37, allora NUMERIC(p,s)   | 
|  FLOAT  | FLOAT | 
|  TEXT Caratteri Unicode fino a 16.777.216 byte; fino a 4 byte per carattere.  |  VARCHAR(MAX)  | 
|  TESTO (p) Caratteri Unicode fino a 65.535 byte; fino a 4 byte per carattere.  |  Se p è =< 65.535 allora, VARCHAR (p)  | 
|  TESTO (p) Caratteri Unicode fino a 16.777.216 byte; fino a 4 byte per carattere.  |  Se p è => 65.535 e =< 16.777.216 allora, VARCHAR (MAX)  | 
|  BINARY Caratteri a byte singolo fino a 8.388.608 byte; 1 byte per carattere.  | VARCHAR(MAX) | 
|  BINARIO (p) Caratteri a byte singolo fino a 65.535 byte; 1 byte per carattere.  | VARCHAR (p) | 
|  BINARIO (p) Caratteri a byte singolo fino a 8.388.608 byte; 1 byte per carattere.  | VARCHAR(MAX) | 
|  BOOLEAN  | BOOLEAN | 
|  DATE  | DATE | 
|  TIME Valori temporali compresi tra 00:00:00 e 23:59:59.999 999999.  | VARCHAR(18) | 
|  ORA (f) Valori temporali compresi tra 00:00:00 e 23:59:59.9 (f).   | VARCHAR (n) — 9\$1 dt-attr-1 | 
|  TIMESTAMP\$1NTZ  | TIMESTAMP | 
|  TIMESTAMP\$1TZ  | TIMESTAMPTZ | 

## Impostazioni di conversione da Snowflake ad Amazon Redshift
<a name="CHAP_Source.Snowflake.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da Snowflake ad Amazon Redshift, **scegli Impostazioni AWS SCT in, quindi scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **Snowflake**, quindi scegli **Snowflake — Amazon** Redshift. AWS SCT mostra tutte le impostazioni disponibili per la conversione da Snowflake ad Amazon Redshift.

Le impostazioni AWS SCT di conversione da Snowflake ad Amazon Redshift includono opzioni per quanto segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.

## Impostazioni di ottimizzazione delle conversioni da Snowflake ad Amazon Redshift
<a name="CHAP_Source.Snowflake.ConversionOptimizationSettings"></a>

**Per modificare le impostazioni di ottimizzazione delle conversioni da Snowflake ad Amazon Redshift, **scegli** Impostazioni AWS SCT in, quindi scegli Impostazioni di conversione.** Dall'elenco superiore, scegli **Snowflake**, quindi scegli **Snowflake — Amazon** Redshift. **Nel riquadro a sinistra, scegli Strategie di ottimizzazione.** AWS SCT visualizza le impostazioni di ottimizzazione della conversione per la conversione da Snowflake ad Amazon Redshift.

Le impostazioni AWS SCT di ottimizzazione della conversione da Snowflake ad Amazon Redshift includono opzioni per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.

# Connessione a un data warehouse di SQL Server con AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServerDW"></a>

Puoi utilizzarlo AWS SCT per convertire schemi, oggetti di codice e codice applicativo da Microsoft SQL Server DW ad Amazon Redshift o Amazon Redshift e utilizzarli in combinazione. AWS Glue 

## Privilegi per Microsoft SQL Server Data Warehouse come origine
<a name="CHAP_Source.SQLServerDW.Permissions"></a>

I seguenti privilegi sono necessari per utilizzare il data warehouse di Microsoft SQL Server come origine:
+ VIEW DEFINITION 
+ VIEW DATABASE STATE 
+ SELEZIONA UNO SCHEMA: *<schema\$1name>* 

Nell'esempio precedente, sostituisci il *<source\$1schema>* segnaposto con il nome dell'origine source\$1schema.

Ripeti l'assegnazione per ogni database di cui desideri convertire lo schema. 

Inoltre, concedere i seguenti privilegi ed eseguire l'assegnazione per il database master: 
+ VIEW SERVER STATE 

## Limitazioni per SQL Server Data Warehouse come origine
<a name="CHAP_Source.SQLServerDW.Limitations"></a>

L'utilizzo di Microsoft SQL Server Parallel Data Warehouse (PDW) come origine non è attualmente supportato.

## Connessione a SQL Server Data Warehouse come origine
<a name="CHAP_Source.SQLServerDW.Connecting"></a>

Utilizzare la procedura seguente per connettersi al database di origine di SQL Server Data Warehouse con AWS Schema Conversion Tool. 

**Per connettersi a un database di origine di SQL Server Data Warehouse**

1. Nella AWS Schema Conversion Tool, scegli **Aggiungi fonte**.

1. Scegli **Microsoft SQL Server**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione del data warehouse di origine di Microsoft SQL Server, utilizzare le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServerDW.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

## Impostazioni di conversione da SQL Server Data Warehouse ad Amazon Redshift
<a name="CHAP_Source.SQLServerDW.ConversionSettings"></a>

Per modificare le impostazioni di conversione da SQL Server Data Warehouse ad Amazon Redshift, scegli **Impostazioni** in AWS SCT, quindi scegli Impostazioni di **conversione**. Dall'elenco superiore, scegli **Microsoft SQL Server**, quindi scegli **Microsoft SQL Server — Amazon Redshift**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da SQL Server Data Warehouse ad Amazon Redshift.

Le impostazioni di conversione da SQL Server Data Warehouse ad Amazon Redshift AWS SCT includono opzioni per quanto segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per migrare le partizioni della tabella di origine in tabelle separate in Amazon Redshift. A tale scopo, seleziona **Usa la vista UNION ALL** e inserisci il numero massimo di tabelle di destinazione che AWS SCT puoi creare per una singola tabella di origine.

  Amazon Redshift non supporta il partizionamento della tabella. Per emulare questo comportamento e velocizzare l'esecuzione delle query, AWS SCT puoi migrare ogni partizione della tabella di origine in una tabella separata in Amazon Redshift. Quindi, AWS SCT crea una vista che include i dati di tutte queste tabelle.

  AWS SCT determina automaticamente il numero di partizioni nella tabella di origine. A seconda del tipo di partizionamento della tabella di origine, questo numero può superare la quota delle tabelle che puoi applicare al cluster Amazon Redshift. Per evitare di raggiungere questa quota, inserite il numero massimo di tabelle di destinazione che è AWS SCT possibile creare per le partizioni di una singola tabella di origine. L'opzione predefinita è 368 tabelle, che rappresenta una partizione per 366 giorni all'anno e due tabelle per e partizioni. `NO RANGE` `UNKNOWN`
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.

## Impostazioni di ottimizzazione della conversione da SQL Server Data Warehouse ad Amazon Redshift
<a name="CHAP_Source.SQLServerDW.ConversionOptimizationSettings"></a>

Per modificare le impostazioni di ottimizzazione delle conversioni da SQL Server Data Warehouse ad Amazon Redshift, scegli **Impostazioni** in AWS SCT, quindi scegli Impostazioni di **conversione**. Dall'elenco superiore, scegli **Microsoft SQL Server**, quindi scegli **Microsoft SQL Server — Amazon Redshift**. Nel riquadro di sinistra, scegli **Strategie di ottimizzazione**. AWS SCT visualizza le impostazioni di ottimizzazione della conversione per la conversione da SQL Server Data Warehouse ad Amazon Redshift.

Le impostazioni di ottimizzazione della conversione da SQL Server Data Warehouse ad Amazon Redshift AWS SCT includono opzioni per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.

# Connessione a un Data Warehouse Teradata con AWS Schema Conversion Tool
<a name="CHAP_Source.Teradata"></a>

È possibile utilizzarli AWS SCT per convertire schemi, oggetti di codice e codice applicativo da Teradata ad Amazon Redshift o Amazon Redshift e utilizzarli in combinazione. AWS Glue 

## Privilegi per Teradata come fonte
<a name="CHAP_Source.Teradata.Permissions"></a>

I seguenti privilegi sono necessari per utilizzare Teradata come fonte:
+ SELECT ON DBC 
+ SELEZIONA SU SYSUDTLIB 
+ SELEZIONA SU SYSLIB 
+ SELEZIONA ON *<source\$1database>* 
+ CREA PROCEDURA SU *<source\$1database>* 

Nell'esempio precedente, sostituite il *<source\$1database>* segnaposto con il nome del database di origine.

AWS SCT richiede il privilegio CREATE PROCEDURE per eseguire HELP PROCEDURE su tutte le procedure nel database di origine. AWS SCT non utilizza questo privilegio per creare nuovi oggetti nel database Teradata di origine.

## Connessione a Teradata come fonte
<a name="CHAP_Source.Teradata.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine Teradata con AWS Schema Conversion Tool. 

**Per connetterti a un database di origine Teradata**

1. Nel AWS Schema Conversion Tool, scegli **Aggiungi** fonte. 

1. **Scegli **Teradata**, quindi scegli Avanti.** 

   Viene visualizzata la finestra **di dialogo Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni di connessione al database di origine Teradata, utilizzare le seguenti istruzioni:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Teradata.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al tuo database di origine.

### Utilizzo dell'autenticazione LDAP con una fonte Teradata
<a name="CHAP_Source.Teradata.Connecting.LDAP"></a>

Per configurare l'autenticazione del Lightweight Directory Access Protocol (LDAP) per gli utenti Teradata che eseguono Microsoft Active Directory in Windows, utilizza la seguente procedura. 

Nella procedura seguente, il dominio Active Directory è. `test.local.com` Il server Windows è `DC` configurato con le impostazioni predefinite. Lo script seguente crea l'account `test_ldap` Active Directory e questo account utilizza la `test_ldap` password.

**Per configurare l'autenticazione LDAP per gli utenti Teradata che eseguono Microsoft Active Directory in Windows**

1. Nella directory `/opt/teradata/tdat/tdgss/site`, modifica il file `TdgssUserConfigFile.xml` . Modifica la sezione LDAP come indicato di seguito.

   ```
   AuthorizationSupported="no"
   
   LdapServerName="DC.test.local.com"
   LdapServerPort="389"
   LdapServerRealm="test.local.com"
   LdapSystemFQDN="dc= test, dc= local, dc=com"
   LdapBaseFQDN="dc=test, dc=local, dc=com"
   ```

1. Applica le modifiche eseguendo la configurazione come indicato di seguito.

   ```
   #cd /opt/teradata/tdgss/bin
   #./run_tdgssconfig
   ```

1. Testa la configurazione eseguendo il seguente comando.

   ```
   # /opt/teradata/tdat/tdgss/14.10.03.01/bin/tdsbind -u test_ldap -w test_ldap
   ```

   L’output visualizzato dovrebbe essere simile al seguente.

   ```
   LdapGroupBaseFQDN: dc=Test, dc=local, dc=com
   LdapUserBaseFQDN: dc=Test, dc=local, dc=com
   LdapSystemFQDN: dc= test, dc= local, dc=com
   LdapServerName: DC.test.local.com
   LdapServerPort: 389
   LdapServerRealm: test.local.com
   LdapClientUseTls: no
   LdapClientTlsReqCert: never
   LdapClientMechanism: SASL/DIGEST-MD5
   LdapServiceBindRequired: no
   LdapClientTlsCRLCheck: none
   LdapAllowUnsafeServerConnect: yes
   UseLdapConfig: no
   AuthorizationSupported: no
   FQDN: CN=test, CN=Users, DC=Anthem, DC=local, DC=com
   AuthUser: ldap://DC.test.local.com:389/CN=test1,CN=Users,DC=test,DC=local,DC=com
   DatabaseName: test
   Service: tdsbind
   ```

1. Riavvia TPA utilizzando il seguente comando.

   ```
   #tpareset -f "use updated TDGSSCONFIG GDO"
   ```

1. Crea lo stesso utente nel database Teradata e in Active Directory, come illustrato di seguito.

   ```
   CREATE USER test_ldap AS PERM=1000, PASSWORD=test_ldap;
   GRANT LOGON ON ALL TO test WITH NULL PASSWORD;
   ```

Se si modifica la password utente in Active Directory per il proprio utente LDAP, specificare questa nuova password durante la connessione a Teradata in modalità LDAP. In modalità DEFAULT, ci si connette a Teradata utilizzando il nome utente LDAP e qualsiasi password.

## Configurazione della raccolta di statistiche nel data warehouse Teradata di origine
<a name="CHAP_Source.Teradata.ConfigureStatistics"></a>

Per convertire il data warehouse Teradata di origine, AWS SCT utilizza le statistiche per ottimizzare il data warehouse Amazon Redshift convertito. Puoi raccogliere statistiche AWS SCT o caricare il file delle statistiche. Per ulteriori informazioni, consulta [Raccolta o caricamento di statistiche](CHAP_Converting.DW.md#CHAP_Converting.DW.Statistics).

Per assicurarti che sia AWS SCT possibile raccogliere statistiche dal tuo data warehouse, completa le seguenti attività preliminari.

**Per raccogliere statistiche dal tuo data warehouse Teradata**

1. Esegui la seguente query per raccogliere le statistiche per tutte le tabelle del tuo data warehouse.

   ```
   collect summary statistics on table_name;
   ```

   Nell'esempio precedente, sostituiscilo *table\$1name* con il nome della tabella di origine. Ripeti l'interrogazione per ogni tabella che converti.

1. Esegui la seguente query per determinare la stringa dell'account per l'utente, da utilizzare per convertire il data warehouse.

   ```
   select * from dbc.accountinfo where username ='user_name'
   ```

1. Attiva la registrazione delle query per un utente specifico utilizzando la stringa dell'account dell'esempio precedente.

   ```
   BEGIN QUERY LOGGING WITH OBJECTS, SQL ON ALL ACCOUNT=('$M$BUSI$S$D$H');
   ```

   In alternativa, attiva la registrazione delle query per tutti gli utenti del database.

   ```
   BEGIN QUERY LOGGING WITH SQL, OBJECTS LIMIT SQLTEXT=0 ON ALL;
   ```

Dopo aver completato la raccolta delle statistiche del data warehouse, disattiva la registrazione delle query. A tale scopo, è possibile utilizzare il seguente esempio di codice.

```
end query logging with explain, objects, sql on all account=(' $M$BUSI$S$D$H');
```

## Raccolta di statistiche in modalità offline dal data warehouse Teradata di origine
<a name="CHAP_Source.Teradata.CollectStatistics"></a>

Dopo aver configurato la raccolta delle statistiche nel data warehouse Teradata, puoi raccogliere statistiche nel tuo AWS SCT progetto. In alternativa, è possibile utilizzare gli script Basic Teradata Query (BTEQ) per raccogliere statistiche in modalità offline. Quindi, puoi caricare i file con le statistiche raccolte nel tuo progetto. AWS SCT Per ulteriori informazioni, consulta [Raccolta o caricamento di statistiche](CHAP_Converting.DW.md#CHAP_Converting.DW.Statistics).

**Per raccogliere statistiche dal data warehouse Teradata in modalità offline**

1. Crea lo `off-line_stats.bteq` script con il seguente contenuto.

   ```
   .OS IF EXIST column-stats-tera.csv del /F column-stats-tera.csv
   .OS IF EXIST table-stats-tera.csv del /F table-stats-tera.csv
   .OS IF EXIST column-skew-script-tera.csv del /F column-skew-script-tera.csv
   .OS IF EXIST column-skew-stats-tera.csv del /F column-skew-stats-tera.csv
   .OS IF EXIST query-stats-tera.csv  del /F query-stats-tera.csv
   .LOGON your_teradata_server/your_login, your_password
   .EXPORT REPORT FILE = table-stats-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 10000
   
   SELECT
       '"' || OREPLACE(COALESCE(c.DatabaseName, ''), '"', '""') || '";' ||
       '"' || OREPLACE(COALESCE(c.TableName, ''), '"', '""') || '";' ||
       '"' || TRIM(COALESCE(s.reference_count, '0')) || '";' ||
       '"' || TRIM(COALESCE(CAST(p.RowCount AS BIGINT), '0')) || '";' ||
       '"' || CAST(CAST(w.size_in_mb AS DECIMAL (38,1) FORMAT 'Z9.9') AS VARCHAR(38)) || '";' ||
       '"' || TRIM(COALESCE(r.stat_fk_dep_count, '0')) || '";' ||
       '"' || CAST(CAST(current_timestamp(0) as timestamp(0) format 'YYYY-MM-DDBHH:MI:SS') as VARCHAR(19)) || '"'
   (TITLE '"database_name";"table_name";"reference_count";"row_count";"size_in_mb";"stat_fk_dep_count";"current_ts"')
   FROM (select databasename, tablename
           from DBC.tablesv
           where tablekind IN ('T','O')
           and databasename = 'your_database_name'
            ) c
   left join
           (select DatabaseName, TableName, max(RowCount) RowCount
           from dbc.tableStatsv
           group by 1,2)p
   on p.databasename = c.databasename
   and p.tablename = c.tablename
   left join
           (SELECT r.ChildDB as DatabaseName,
           r.ChildTable as TableName,
           COUNT(DISTINCT r.ParentTable) reference_count
           FROM DBC.All_RI_ChildrenV r
           GROUP BY r.ChildDB, r.ChildTable) s
   on s.databasename = c.databasename
   and s.tablename = c.tablename
   left join
           (SELECT r.ParentDB as DatabaseName,
           r.ParentTable as TableName,
           COUNT(DISTINCT r.ChildTable) stat_fk_dep_count
           FROM DBC.All_RI_ParentsV r
           GROUP BY r.ParentDB, r.ParentTable) r
   on r.databasename = c.databasename
   and r.tablename = c.tablename
   left join
           (select databasename, tablename,
           sum(currentperm)/1024/1024 as size_in_mb
           from dbc.TableSizeV
           group by 1,2) w
   on w.databasename = c.databasename
   and w.tablename = c.tablename
   WHERE COALESCE(r.stat_fk_dep_count,0) + COALESCE(CAST(p.RowCount AS BIGINT),0) + COALESCE(s.reference_count,0) > 0;
   
   .EXPORT RESET
   
   .EXPORT REPORT FILE = column-stats-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 10000
       '"' || TRIM(COALESCE(CAST(t2.card AS BIGINT), '0')) || '";' ||
   
   SELECT
   	'"' || OREPLACE(COALESCE(trim(tv.DatabaseName), ''), '"', '""') || '";' ||
       	'"' || OREPLACE(COALESCE(trim(tv.TableName), ''), '"', '""') || '";' ||
   	'"' || OREPLACE(COALESCE(trim(tv.columnname), ''), '"', '""') || '";' ||
                            '"' || TRIM(COALESCE(CAST(t2.card AS BIGINT), '0')) || '";' ||
   
   	'"' || CAST(current_timestamp AS VARCHAR(19)) || '"' (TITLE '"database_name";"table_name";"column_name";"cardinality";"current_ts"')
   FROM dbc.columnsv tv
   LEFT JOIN
   (
   	SELECT
   		c.DatabaseName	AS DATABASE_NAME,
   		c.TABLENAME 	AS TABLE_NAME,
   		c.ColumnName	AS COLUMN_NAME,
   		c.UniqueValueCount	AS CARD
   	FROM dbc.tablestatsv c
   	WHERE c.DatabaseName = 'your_database_name'
   	AND c.RowCount <> 0
   ) t2
   ON tv.DATABASENAME = t2.DATABASE_NAME
   AND tv.TABLENAME = t2.TABLE_NAME
   AND tv.COLUMNNAME = t2.COLUMN_NAME
   WHERE t2.card > 0;
   
   .EXPORT RESET
   
   .EXPORT REPORT FILE = column-skew-script-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 10000
   
   SELECT
   'SELECT CAST(''"' || TRIM(c.DatabaseName) || '";"' || TRIM(c.TABLENAME)  || '";"' || TRIM(c.COLUMNNAME) || '";"'' ||
   TRIM(CAST(COALESCE(MAX(cnt) * 1.0 / SUM(cnt), 0) AS NUMBER FORMAT ''9.9999'')) || ''";"'' ||
   CAST(CURRENT_TIMESTAMP(0) AS VARCHAR(19)) || ''"'' AS VARCHAR(512))
   AS """DATABASE_NAME"";""TABLE_NAME"";""COLUMN_NAME"";""SKEWED"";""CURRENT_TS"""
   FROM(
   SELECT	COUNT(*) AS cnt
   FROM "' || c.DATABASENAME || '"."' || c.TABLENAME ||
   '" GROUP BY "' || c.COLUMNNAME || '") t' ||
   	CASE WHEN ROW_NUMBER() OVER(PARTITION BY c.DATABASENAME
   	ORDER BY c.TABLENAME DESC, c.COLUMNNAME DESC) <> 1
   	THEN ' UNION ALL'
   	ELSE ';' END (TITLE '--SKEWED--')
   FROM	dbc.columnsv c
   INNER JOIN
   (SELECT databasename, TABLENAME
   FROM dbc.tablesv  WHERE tablekind = 'T'
   AND 	databasename = 'your_database_name') t
   ON t.databasename = c.databasename
   AND t.TABLENAME = c.TABLENAME
   INNER JOIN
   (SELECT databasename, TABLENAME, columnname FROM  dbc.indices GROUP BY 1,2,3
   WHERE  TRANSLATE_CHK (databasename USING LATIN_TO_UNICODE) + TRANSLATE_CHK (TABLENAME USING LATIN_TO_UNICODE) + TRANSLATE_CHK (columnname USING LATIN_TO_UNICODE) = 0
   ) i
   ON i.databasename = c.databasename
   AND i.TABLENAME = c.TABLENAME
   AND i.columnname = c.columnname
   WHERE c.ColumnType NOT IN ('CO','JN','N','++','VA','UT','AN','XM','A1','BO')
   ORDER BY c.TABLENAME, c.COLUMNNAME;
   
   .EXPORT RESET
   
   .EXPORT REPORT FILE = column-skew-stats-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 10000
   
   .RUN FILE = column-skew-script-tera.csv
   
   .EXPORT RESET
   
   .EXPORT REPORT FILE = query-stats-tera.csv
   .SET TITLEDASHES OFF
   .SET WIDTH 32000
   
   SELECT
     '"' || RTRIM(CAST(SqlTextInfo AS VARCHAR(31900)), ';') || '";"' ||
     TRIM(QueryCount) || '";"' ||
     TRIM(QueryId) || '";"' ||
     TRIM(SqlRowNo) || '";"' ||
     TRIM(QueryParts) || '";"' ||
     CAST(CURRENT_TIMESTAMP(0) AS VARCHAR(19)) || '"'
   (TITLE '"query_text";"query_count";"query_id";"sql_row_no";"query_parts";"current_ts"')
     FROM
     (
       SELECT  QueryId,  SqlTextInfo, SqlRowNo, QueryParts, QueryCount,
       SUM(QueryFirstRow) OVER (ORDER BY QueryCount DESC, QueryId ASC, SqlRowNo ASC
       ROWS UNBOUNDED PRECEDING) AS topN
       FROM
       (SELECT QueryId,  SqlTextInfo, SqlRowNo, QueryParts, QueryCount,
         CASE WHEN
         ROW_NUMBER() OVER (PARTITION BY QueryCount, SqlTextInfo ORDER BY QueryId, SqlRowNo) = 1 AND SqlRowNo = 1
       THEN 1 ELSE 0 END AS QueryFirstRow
       FROM (
         SELECT q.QueryId,  q.SqlTextInfo, q.SqlRowNo,
         MAX(q.SqlRowNo) OVER (PARTITION BY q.QueryId) QueryParts,
         COUNT(q.SqlTextInfo) OVER (PARTITION BY q.SqlTextInfo) QueryCount
         FROM DBC.dbqlsqltbl q
         INNER JOIN
         (
           SELECT QueryId
           FROM DBC.DBQLogTbl t
           WHERE TRIM(t.StatementType) IN ('SELECT')
           AND TRIM(t.AbortFlag) = '' AND t.ERRORCODE = 0
           AND 	(CASE WHEN 'All users' IN ('All users') THEN 'All users' ELSE TRIM(t.USERNAME) END) IN ('All users') --user_name list
           AND t.StartTime > CURRENT_TIMESTAMP - INTERVAL '30' DAY
           GROUP BY 1
         ) t
         ON q.QueryId = t.QueryId
         INNER JOIN
         (
           SELECT QueryId
           FROM DBC.QryLogObjectsV
           WHERE ObjectDatabaseName = 'your_database_name'
           AND ObjectType = 'Tab'
           AND CollectTimeStamp > CURRENT_TIMESTAMP - INTERVAL '30' DAY
           GROUP BY 1
         ) r
         ON r.QueryId = t.QueryId
         WHERE q.CollectTimeStamp > CURRENT_TIMESTAMP - INTERVAL '30' DAY
       ) t
     ) t
     WHERE SqlTextInfo NOT LIKE '%";"%'
     ) q
     WHERE
     QueryParts >=1
     AND topN <= 50
     ORDER BY QueryCount DESC, QueryId, SqlRowNo
     QUALIFY COUNT(QueryId) OVER (PARTITION BY QueryId) = QueryParts;
   
   .EXPORT RESET
   
   .LOGOFF
   
   .QUIT
   ```

1. Create il `td_run_bteq.bat` file che esegue lo script BTEQ creato nel passaggio precedente. Utilizza il seguente contenuto per questo file.

   ```
   @echo off > off-line_stats1.bteq & setLocal enableDELAYedexpansion
   @echo off > off-line_stats2.bteq & setLocal enableDELAYedexpansion
   
   set old1=your_teradata_server
   set new1=%1
   set old2=your_login
   set new2=%2
   set old3=your_database_name
   set new3=%3
   set old4=your_password
   set /p new4=Input %2 pass?
   
   for /f "tokens=* delims= " %%a in (off-line_stats.bteq) do (
   set str1=%%a
   set str1=!str1:%old1%=%new1%!
   >> off-line_stats1.bteq echo !str1!
   )
   
   for /f "tokens=* delims= " %%a in (off-line_stats1.bteq) do (
   set str2=%%a
   set str2=!str2:%old2%=%new2%!
   >> off-line_stats2.bteq echo !str2!
   )
   
   type nul > off-line_stats1.bteq
   
   for /f "tokens=* delims= " %%a in (off-line_stats2.bteq) do (
   set str3=%%a
   set str3=!str3:%old3%=%new3%!
   >> off-line_stats1.bteq echo !str3!
   )
   
   type nul > off-line_stats2.bteq
   
   for /f "tokens=* delims= " %%a in (off-line_stats1.bteq) do (
   set str4=%%a
   set str4=!str4:%old4%=%new4%!
   >> off-line_stats2.bteq echo !str4!
   )
   
   del .\off-line_stats1.bteq
   
   echo export starting...
   
   bteq -c UTF8 < off-line_stats.bteq > metadata_export.log
   
   pause
   ```

1. Crea il `runme.bat` file che esegue il file batch creato nel passaggio precedente. Utilizza il seguente contenuto per questo file.

   ```
   .\td_run_bteq.bat ServerName UserName DatabaseName
   ```

   Nel `runme.bat` file *ServerName**UserName*, sostituisci e *DatabaseName* con i valori applicabili.

   Quindi, esegui il `runme.bat` file. Ripeti questo passaggio per ogni data warehouse convertito in Amazon Redshift.

Dopo aver eseguito questo script, ricevi tre file con statistiche per ogni database. Puoi caricare questi file nel tuo AWS SCT progetto. Per farlo, scegli il tuo data warehouse dal pannello di sinistra del progetto e apri il menu contestuale (fai clic con il pulsante destro del mouse). Scegli **Statistiche di caricamento**.

## Impostazioni di conversione da Teradata ad Amazon Redshift
<a name="CHAP_Source.Teradata.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da Teradata ad Amazon Redshift, **scegli Impostazioni AWS SCT in, quindi scegli** Impostazioni di conversione.** Dall'elenco in alto, scegli **Teradata**, quindi scegli **Teradata — Amazon** Redshift. AWS SCT mostra tutte le impostazioni disponibili per la conversione da Teradata ad Amazon Redshift.

Le impostazioni AWS SCT di conversione da Teradata ad Amazon Redshift includono opzioni per quanto segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per migrare le partizioni della tabella di origine in tabelle separate in Amazon Redshift. A tale scopo, seleziona **Usa la vista UNION ALL** e inserisci il numero massimo di tabelle di destinazione che AWS SCT puoi creare per una singola tabella di origine.

  Amazon Redshift non supporta il partizionamento della tabella. Per emulare questo comportamento e velocizzare l'esecuzione delle query, AWS SCT puoi migrare ogni partizione della tabella di origine in una tabella separata in Amazon Redshift. Quindi, AWS SCT crea una vista che include i dati di tutte queste tabelle.

  AWS SCT determina automaticamente il numero di partizioni nella tabella di origine. A seconda del tipo di partizionamento della tabella di origine, questo numero può superare la quota delle tabelle che puoi applicare al cluster Amazon Redshift. Per evitare di raggiungere questa quota, inserite il numero massimo di tabelle di destinazione che è AWS SCT possibile creare per le partizioni di una singola tabella di origine. L'opzione predefinita è 368 tabelle, che rappresenta una partizione per 366 giorni all'anno e due tabelle per e partizioni. `NO RANGE` `UNKNOWN`
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.
+ Per utilizzare un elenco esplicito di colonne nel codice convertito per le `SELECT *` istruzioni, seleziona **Usa dichiarazione esplicita** di colonna.
+ Per emulare il comportamento delle chiavi primarie e univoche nel tuo cluster Amazon Redshift, **seleziona Emula il comportamento delle chiavi primarie** e uniche.

  Amazon Redshift non impone chiavi uniche e primarie e le utilizza solo a scopo informativo. Se utilizzi questi vincoli nel codice, assicurati che il loro comportamento venga AWS SCT emulato nel codice convertito.
+ Per garantire l'unicità dei dati nelle tabelle Amazon Redshift di destinazione. Per farlo, seleziona **Emula il comportamento delle tabelle SET**.

  Teradata crea tabelle utilizzando l'elemento di `SET` sintassi come opzione predefinita. Non è possibile aggiungere righe duplicate in una tabella. `SET` Se il codice sorgente non utilizza questo vincolo di unicità, disattiva questa opzione. In questo caso, il codice convertito funziona più velocemente.

  Se il codice sorgente utilizza l'`SET`opzione nelle tabelle come vincolo di unicità, attiva questa opzione. In questo caso, AWS SCT riscrive `INSERT..SELECT` le istruzioni nel codice convertito per emulare il comportamento del database di origine.

## Impostazioni di ottimizzazione della conversione da Teradata ad Amazon Redshift
<a name="CHAP_Source.Teradata.ConversionOptimizationSettings"></a>

**Per modificare le impostazioni di ottimizzazione delle conversioni da Teradata ad Amazon Redshift, **scegli** Impostazioni AWS SCT in, quindi scegli Impostazioni di conversione.** Dall'elenco in alto, scegli **Teradata**, quindi scegli **Teradata — Amazon** Redshift. **Nel riquadro di sinistra, scegli Strategie di ottimizzazione.** AWS SCT visualizza le impostazioni di ottimizzazione della conversione per la conversione da Teradata ad Amazon Redshift.

Le impostazioni AWS SCT di ottimizzazione della conversione da Teradata ad Amazon Redshift includono opzioni per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.

# Connessione dei AWS Schema Conversion Tool database a Vertica
<a name="CHAP_Source.Vertica"></a>

Puoi utilizzarlo AWS SCT per convertire schemi, oggetti di codice e codice applicativo da Vertica ad Amazon Redshift.

## Privilegi per Vertica come fonte
<a name="CHAP_Source.Vertica.Permissions"></a>

I seguenti privilegi sono necessari per utilizzare Vertica come fonte:
+ UTILIZZO SU SCHEMA *<schema\$1name>* 
+ USAGE ON SCHEMA PUBLIC 
+ SELEZIONA SU TUTTE LE TABELLE DELLO SCHEMA *<schema\$1name>* 
+ SELEZIONA SU TUTTE LE SEQUENZE DELLO SCHEMA *<schema\$1name>* 
+ ESEGUI SU TUTTE LE FUNZIONI DELLO SCHEMA *<schema\$1name>* 
+ ESEGUI SULLA PROCEDURA *<schema\$1name.procedure\$1name(procedure\$1signature)>* 

Nell'esempio precedente, sostituite i segnaposto come segue:
+ Sostituire *schema\$1name* con il nome dello schema di origine.
+ Sostituire *procedure\$1name* con il nome di una procedura di origine. Ripeti la concessione per ogni procedura che stai convertendo. 
+ Sostituisci *procedure\$1signature* con l'elenco delimitato da virgole dei tipi di argomenti della procedura.

## Connessione a Vertica come sorgente
<a name="CHAP_Source.Vertica.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine Vertica con AWS Schema Conversion Tool.

**Per connetterti a un database di origine Vertica**

1. Nel AWS Schema Conversion Tool, scegli **Aggiungi fonte**.

1. Scegli **Vertica**, quindi scegli **Avanti**.

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome della connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Segreto**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database di origine Vertica, utilizzare le seguenti istruzioni:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.Vertica.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine.

1. Scegli **Connect** per connetterti al tuo database di origine.

## Impostazioni di conversione da Vertica ad Amazon Redshift
<a name="CHAP_Source.Vertica.ConversionSettings"></a>

Per modificare le impostazioni di conversione da Vertica ad Amazon Redshift, **scegli** Impostazioni AWS SCT in, quindi **scegli** Impostazioni di conversione. Dall'elenco superiore, scegli **Vertica**, quindi scegli **Vertica — Amazon Redshift**. AWS SCT mostra tutte le impostazioni disponibili per la conversione da Vertica ad Amazon Redshift.

Le impostazioni AWS SCT di conversione da Vertica ad Amazon Redshift includono opzioni per quanto segue:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per impostare il numero massimo di tabelle che AWS SCT possono essere applicate al cluster Amazon Redshift di destinazione.

  Per **Il numero massimo di tabelle per il cluster Amazon Redshift di destinazione**, scegli il numero di tabelle da AWS SCT applicare al tuo cluster Amazon Redshift.

  Amazon Redshift dispone di quote che limitano l'utilizzo delle tabelle per diversi tipi di nodo cluster. Se scegli **Auto**, AWS SCT determina il numero di tabelle da applicare al cluster Amazon Redshift di destinazione in base al tipo di nodo. Facoltativamente, scegli il valore manualmente. Per ulteriori informazioni, consulta [Quote e limiti in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) nella *Guida alla gestione di Amazon Redshift*.

  AWS SCT converte tutte le tabelle di origine, anche se è superiore a quella che il cluster Amazon Redshift può archiviare. AWS SCT memorizza il codice convertito nel progetto e non lo applica al database di destinazione. Se raggiungi la quota del cluster Amazon Redshift per le tabelle quando applichi il codice convertito, viene AWS SCT visualizzato un messaggio di avviso. Inoltre, AWS SCT applica le tabelle al cluster Amazon Redshift di destinazione fino a quando il numero di tabelle raggiunge il limite.
+ Per migrare le partizioni della tabella di origine in tabelle separate in Amazon Redshift. A tale scopo, seleziona **Usa la vista UNION ALL** e inserisci il numero massimo di tabelle di destinazione che AWS SCT puoi creare per una singola tabella di origine.

  Amazon Redshift non supporta il partizionamento della tabella. Per emulare questo comportamento e velocizzare l'esecuzione delle query, AWS SCT puoi migrare ogni partizione della tabella di origine in una tabella separata in Amazon Redshift. Quindi, AWS SCT crea una vista che include i dati di tutte queste tabelle.

  AWS SCT determina automaticamente il numero di partizioni nella tabella di origine. A seconda del tipo di partizionamento della tabella di origine, questo numero può superare la quota delle tabelle che puoi applicare al cluster Amazon Redshift. Per evitare di raggiungere questa quota, inserite il numero massimo di tabelle di destinazione che è AWS SCT possibile creare per le partizioni di una singola tabella di origine. L'opzione predefinita è 368 tabelle, che rappresenta una partizione per 366 giorni all'anno e due tabelle per e partizioni. `NO RANGE` `UNKNOWN`
+ Per applicare la compressione alle colonne delle tabelle di Amazon Redshift. Per farlo, seleziona **Usa la codifica di compressione.**

  AWS SCT assegna automaticamente la codifica di compressione alle colonne utilizzando l'algoritmo Amazon Redshift predefinito. Per ulteriori informazioni, consulta le [codifiche di compressione](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html) nella *Amazon Redshift Database* Developer Guide.

  Per impostazione predefinita, Amazon Redshift non applica la compressione alle colonne definite come chiavi di ordinamento e distribuzione. Puoi modificare questo comportamento e applicare la compressione a queste colonne. Per farlo, seleziona **Usa la codifica di compressione per le colonne KEY**. È possibile selezionare questa opzione solo quando si seleziona l'opzione **Usa codifica di compressione**.

## Impostazioni di ottimizzazione della conversione da Vertica ad Amazon Redshift
<a name="CHAP_Source.Vertica.ConversionOptimizationSettings"></a>

Per modificare le impostazioni di ottimizzazione delle conversioni da Vertica ad Amazon Redshift, **scegli** Impostazioni AWS SCT in, quindi **scegli** Impostazioni di conversione. Dall'elenco superiore, scegli **Vertica**, quindi scegli **Vertica — Amazon Redshift**. **Nel riquadro a sinistra, scegli Strategie di ottimizzazione.** AWS SCT visualizza le impostazioni di ottimizzazione della conversione per la conversione da Vertica ad Amazon Redshift.

Le impostazioni AWS SCT di ottimizzazione della conversione da Vertica ad Amazon Redshift includono opzioni per quanto segue:
+ Per utilizzare l'ottimizzazione automatica delle tabelle. A tale scopo, seleziona **Usa l'ottimizzazione automatica delle tabelle di Amazon Redshift**.

  L'ottimizzazione automatica delle tabelle è un processo di ottimizzazione automatica in Amazon Redshift che ottimizza automaticamente la progettazione delle tabelle. Per ulteriori informazioni, consulta [Lavorare con l'ottimizzazione automatica delle tabelle](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html) nella *Amazon Redshift Database Developer Guide*.

  Per fare affidamento solo sull'ottimizzazione automatica delle tabelle, scegli **Nessuno** per la **strategia iniziale di selezione delle chiavi**.
+ Per scegliere le chiavi di ordinamento e distribuzione utilizzando la tua strategia.

  Puoi scegliere le chiavi di ordinamento e distribuzione utilizzando i metadati di Amazon Redshift, le informazioni statistiche o entrambe le opzioni. Per la **strategia di selezione delle chiavi iniziale** nella scheda **Strategie di ottimizzazione**, scegli una delle seguenti opzioni:
  + Usa i metadati, ignora le informazioni statistiche
  + Ignora i metadati, usa le informazioni statistiche
  + Usa metadati e informazioni statistiche

  A seconda dell'opzione scelta, puoi selezionare strategie di ottimizzazione. Quindi, per ogni strategia, inserisci il valore (0—100). Questi valori definiscono il peso di ogni strategia. L'utilizzo di questi valori di peso AWS SCT definisce in che modo ciascuna regola influisce sulla scelta delle chiavi di distribuzione e ordinamento. I valori predefiniti si basano sulle best practice di AWS migrazione.

  È possibile definire la dimensione delle tabelle piccole per la strategia **Find small tables**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per definirla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione alle tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.
+ Per configurare i dettagli della strategia.

  Oltre a definire il peso per ogni strategia di ottimizzazione, puoi configurare le impostazioni di ottimizzazione. Per farlo, scegli **Ottimizzazione delle conversioni**. 
  + Per il **limite delle colonne chiave di ordinamento**, inserisci il numero massimo di colonne nella chiave di ordinamento.
  + Per **Valore di soglia asimmetrico**, inserite la percentuale (0—100) di un valore distorto per una colonna. AWS SCT esclude le colonne con un valore di inclinazione superiore alla soglia dall'elenco dei candidati per la chiave di distribuzione. AWS SCT definisce il valore inclinato di una colonna come rapporto percentuale tra il numero di occorrenze del valore più comune e il numero totale di record.
  + Per le **prime N interrogazioni della tabella della cronologia delle interrogazioni, immettete il numero (da** 1 a 100) delle query più utilizzate da analizzare.
  + Per **Seleziona utente statistico**, scegli l'utente del database per il quale desideri analizzare le statistiche delle query.

  Inoltre, nella scheda **Strategie di ottimizzazione**, puoi definire la dimensione delle piccole tabelle per la strategia **Trova tabelle piccole**. Per Numero **minimo di righe nella tabella e Numero** **massimo di righe** nella tabella, inserisci il numero minimo e massimo di righe in una tabella per considerarla come una tabella piccola. AWS SCT applica lo stile `ALL` di distribuzione a tabelle di piccole dimensioni. In questo caso, una copia dell'intera tabella viene distribuita su ogni nodo.