

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

# Utilizzo dell’utility di caricamento dei dati di Aurora PostgreSQL Limitless Database
<a name="limitless-load.utility"></a>

Aurora fornisce un’utilità per caricare direttamente i dati in Limitless Database da un cluster di database Aurora PostgreSQL o da un’istanza database RDS per PostgreSQL.

Per utilizzare l’utilità di caricamento dati, esegui i seguenti passaggi:

1. [Prerequisiti](#limitless-load.prereqs)

1. [Preparazione del database di origine](#limitless-load.source)

1. [Preparazione del database di destinazione](#limitless-load.destination)

1. [Creazione delle credenziali di database](#limitless-load.users)

1. Una delle seguenti:
   + [Configurazione dell’autenticazione del database e dell’accesso alle risorse tramite script](limitless-load.script.md) (consigliato)
   + [Configurazione manuale dell’autenticazione del database e dell’accesso alle risorse](limitless-load.manual.md)

1. [Caricamento dei dati da un cluster di database Aurora PostgreSQL o da un’istanza database RDS per PostgreSQL](limitless-load.data.md)

## Limitazioni
<a name="limitless-load.limitations"></a>

L’utilità di caricamento dei dati presenta le seguenti limitazioni:
+ I seguenti tipi di dati non sono supportati: `enum`, `ARRAY`, `BOX`, `CIRCLE`, `LINE`, `LSEG`, `PATH`, `PG_LSN`, `PG_SNAPSHOT`, `POLYGON`, `TSQUERY`, `TSVECTOR` e `TXID_SNAPSHOT`.
+ Gli zeri iniziali (`0`) vengono rimossi dal tipo di dati `VARBIT` durante il caricamento.
+ La migrazione dei dati non riesce se nelle tabelle di destinazione sono presenti chiavi esterne.
+ Limitless Data Utility supporta le seguenti configurazioni di origine per i cluster DB Amazon RDS for PostgreSQL Multi-AZ:
  + Istanza primaria
    + Modalità supportate: snapshot, snapshot\$1then\$1cdc
  + Istanza di replica
    + Modalità supportata: solo snapshot
      + Requisito: hot\$1standby\$1feedback deve essere abilitato
    + Non supportato: snapshot\$1then\$1cdc

## Prerequisiti
<a name="limitless-load.prereqs"></a>

L’utilità di caricamento dei dati presenta i seguenti prerequisiti:
+ Il database di origine utilizza Aurora PostgreSQL o RDS per PostgreSQL versione 11.x o superiore.
+ Il database di origine si trova nello stesso gruppo di shard DB Account AWS e Regione AWS nel gruppo di shard DB di destinazione.
+ Il cluster di database o l’istanza database di origine si trova nello stato `available`.
+ Le tabelle nel database di origine e nel database di Limitless devono avere gli stessi nomi di tabella, nomi di colonna e tipi di dati di colonna.
+ Le tabelle di origine e di destinazione devono avere chiavi primarie che utilizzano le stesse colonne e lo stesso ordine delle colonne.
+ Devi disporre di un ambiente per la connessione a Limitless Database per eseguire i comandi di caricamento dei dati. I comandi disponibili sono i seguenti:
  + `rds_aurora.limitless_data_load_start`
  + `rds_aurora.limitless_data_load_cancel`
+ Per CDC:
  + Sia il database di origine che il gruppo di shard del database di destinazione devono utilizzare lo stesso gruppo di sottoreti di database, lo stesso gruppo di sicurezza VPC e la stessa porta di database. Queste configurazioni servono per stabilire connessioni di rete sia con il database di origine che con i router nel gruppo di shard del database.
  + Devi abilitare la replica logica nel database di origine. L’utente del database di origine deve disporre dei privilegi per leggere la replica logica.

## Preparazione del database di origine
<a name="limitless-load.source"></a>

Per accedere al database di origine per il caricamento dei dati, devi permettere il traffico di rete in entrata. Esegui questa procedura.

**Per consentire il traffico di rete verso il database di origine**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Vai alla pagina **Gruppi di sicurezza**.

1. Scegli l’**ID gruppo di sicurezza** per il gruppo di sicurezza utilizzato dall’istanza database e dal cluster di database di origine.

   Ad esempio, l’ID gruppo di sicurezza è `sg-056a84f1712b77926`.

1. Nella scheda **Regole in entrata**:

   1. Sceglere **Edit inbound rules (Modifica regole in entrata)**.

   1. Aggiungi una nuova regola in entrata per l’istanza database e il cluster di database di origine:
      + Intervallo porte: porta del database per il database di origine, in genere `5432`
      + ID gruppo di sicurezza: `sg-056a84f1712b77926` in questo esempio  
![\[Aggiungi una regola in entrata per il database di origine.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/AuroraUserGuide/images/limitless_self_access_inbound_rule.png)

1. Nella scheda **Regole in uscita**:

   1. Scegli **Edit outbound rules** (Modifica regole in uscita).

   1. Aggiungi una nuova regola in uscita per l’istanza database o il cluster di database di origine:
      + Porta del database: `All traffic` (include le porte `0-65535`)
      + ID gruppo di sicurezza: `sg-056a84f1712b77926` in questo esempio  
![\[Aggiungi una regola in uscita per il database di origine.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/AuroraUserGuide/images/limitless_self_access_outbound_rule.png)

1. Accedi Console di gestione AWS e apri la console Amazon VPC all'indirizzo. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Vai alla ACLs pagina **Rete**.

1. Aggiungi la configurazione ACL di rete predefinita come indicato in [ACL di rete predefinito](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html#default-network-acl).

## Preparazione del database di destinazione
<a name="limitless-load.destination"></a>

Segui le procedure descritte in [Creazione di tabelle di Aurora PostgreSQL Limitless Database](limitless-creating.md) per creare le tabelle di destinazione nel gruppo di shard del database.

Le tabelle di destinazione devono avere gli stessi schemi, gli stessi nomi di tabella e le stesse chiavi primarie delle tabelle di origine.

## Creazione delle credenziali di database
<a name="limitless-load.users"></a>

Devi creare utenti di database nei database di origine e di destinazione e concedere i privilegi necessari a tali utenti. Per ulteriori informazioni, consulta [CREATE USER](https://www.postgresql.org/docs/current/sql-createuser.html) e [GRANT](https://www.postgresql.org/docs/current/sql-grant.html) nella documentazione di PostgreSQL.

### Creazione delle credenziali del database di origine
<a name="limitless-load.users.source"></a>

L’utente del database di origine viene passato nel comando di avvio del caricamento. Questo utente deve disporre dei privilegi necessari per eseguire la replica dal database di origine.

1. Utilizza l’utente master del database (o un altro utente con il ruolo `rds_superuser`) per creare un utente del database di origine con privilegi `LOGIN`.

   ```
   CREATE USER source_db_username WITH PASSWORD 'source_db_user_password';
   ```

1. Autorizza il ruolo `rds_superuser` per l’utente del database di origine.

   ```
   GRANT rds_superuser to source_db_username;
   ```

1. Se utilizzi la modalità `full_load_and_cdc`, concedi il ruolo `rds_replication` all’utente del database di origine. Il ruolo `rds_replication` fornisce le autorizzazioni per gestire gli slot logici e per eseguire lo streaming dei dati utilizzando gli slot logici.

   ```
   GRANT rds_replication to source_db_username;
   ```

### Creazione delle credenziali del database di destinazione
<a name="limitless-load.users.destination"></a>

L’utente del database di destinazione deve disporre dell’autorizzazione per scrivere nelle tabelle di destinazione del gruppo di shard del database.

1. Utilizza l’utente master del database (o un altro utente con il ruolo `rds_superuser`) per creare un utente del database di destinazione con privilegi `LOGIN`.

   ```
   CREATE USER destination_db_username WITH PASSWORD 'destination_db_user_password';
   ```

1. Autorizza il ruolo `rds_superuser` per l’utente del database di destinazione.

   ```
   GRANT rds_superuser to destination_db_username;
   ```