

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Creare un’integrazione di eventi S3 per copiare automaticamente i file dai bucket Amazon S3
<a name="loading-data-copy-job"></a>

**Nota**  
La versione di anteprima per la copia automatica è terminata. Di conseguenza i cluster di anteprima vengono rimossi automaticamente 30 giorni dopo il termine del periodo di anteprima. Se intendi continuare a utilizzare la copia automatica, consigliamo di ricreare i processi di copia automatica esistenti in un altro cluster Amazon Redshift. Non è supportato l’aggiornamento di un cluster di anteprima alla versione più recente di Amazon Redshift.

Puoi utilizzare un processo di copia automatica per caricare i dati nelle tabelle Amazon Redshift dai file archiviati in Amazon S3. Amazon Redshift rileva quando vengono aggiunti nuovi file Amazon S3 al percorso specificato nel comando COPY ed esegue automaticamente un comando COPY senza che sia necessario creare una pipeline di importazione dei dati esterna. Amazon Redshift consente di tenere traccia in modo semplice dei file caricati. Amazon Redshift stabilisce il numero di file raggruppati per comando COPY. È possibile visualizzare i comandi COPY risultanti nelle viste di sistema.

La prima fase per creare un processo COPY JOB automatico consiste nel creare un’integrazione di eventi S3. Quando viene visualizzato un nuovo file nel bucket di origine Amazon S3, Amazon Redshift gestisce il caricamento dei file nel database utilizzando il comando COPY.

## Prerequisiti per la creazione di un’integrazione di eventi S3
<a name="loading-data-copy-job-prerequisites"></a>

Per configurare l’integrazione di eventi S3, verifica che siano soddisfatti i prerequisiti seguenti.
+ Il bucket Amazon S3 deve avere una policy di bucket che concede diverse autorizzazioni Amazon S3. Ad esempio, la seguente politica di esempio consente le autorizzazioni per il bucket di risorse ospitato `amzn-s3-demo-bucket` in. *us-east-1* Il bucket Amazon S3 e l’integrazione sono nella stessa Regione AWS.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Auto-Copy-Policy-01",
              "Effect": "Allow",
              "Principal": {
                  "Service": "redshift.amazonaws.com"
                  },
              "Action": [
                  "s3:GetBucketNotification",
                  "s3:PutBucketNotification",
                  "s3:GetBucketLocation"
              ],
              "Resource": "arn:aws:s3:::amzn-s3-demo-bucket:*",
              "Condition": {
                  "ArnLike": {
                      "aws:SourceArn": "arn:aws:redshift:us-east-1:111122223333:integration:*"
                  },
                  "StringEquals": {
                      "aws:SourceAccount": "111122223333"
                  }
              }
          }
      ]
  }
  ```

------
+ Il cluster con provisioning Amazon Redshift o il namespace Redshift serverless di destinazione deve disporre dell’autorizzazione per accedere al bucket. Verifica che un ruolo IAM collegato al cluster o al namespace serverless disponga di una policy IAM che concede le autorizzazioni appropriate. La policy deve consentire sia `s3:GetObject` per una risorsa bucket come `amzn-s3-demo-bucket` sia `s3:ListBucket` per una risorsa bucket e il relativo contenuto, ad esempio `amzn-s3-demo-bucket/*`.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AutoCopyReadId",
              "Effect": "Allow",
              "Action": [
                  "s3:GetObject",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket",  
                  "arn:aws:s3:::amzn-s3-demo-bucket/*" 
              ]
          }
      ]
  }
  ```

------

  Per aggiungere la policy a un ruolo IAM che ha una relazione di attendibilità per il ruolo, segui la procedura descritta.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "redshift.amazonaws.com"
                  ]
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

------

  Se il data warehouse di destinazione è un cluster con provisioning, puoi associare un ruolo IAM al cluster con provisioning utilizzando la scheda **Autorizzazioni del cluster** nei dettagli del cluster sulla console Amazon Redshift. Per informazioni su come collegare un ruolo al cluster con provisioning, consulta [Associazione di ruoli IAM ai cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role-associating-with-clusters.html) nella *Guida alla gestione di Amazon Redshift*.

  Se il data warehouse di destinazione è Redshift serverless, puoi collegare un ruolo IAM al namespace serverless utilizzando la scheda **Sicurezza e crittografia** nei dettagli del namespace sulla console Redshift serverless. Per informazioni su come collegare un ruolo al namespace serverless, consulta [Concessione delle autorizzazioni ad Amazon Redshift serverless](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-security-other-services.html) nella *Guida alla gestione di Amazon Redshift.*
+ Il data warehouse Amazon Redshift deve inoltre disporre di una policy delle risorse che consenta il bucket Amazon S3. Se utilizzi la console Amazon Redshift, quando crei l’integrazione di eventi S3, Amazon Redshift fornisce l’opzione **Correggi per me** per aggiungere questa policy al data warehouse Amazon Redshift. Per aggiornare autonomamente una politica delle risorse, è possibile utilizzare il [put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/redshift/put-resource-policy.html) AWS CLI comando. Ad esempio, per associare una politica delle risorse al tuo cluster con provisioning di Amazon Redshift per l'integrazione di un evento S3 con un bucket Amazon S3, esegui un comando simile al seguente. AWS CLI L'esempio seguente mostra una policy per uno spazio dei nomi del cluster assegnato nell'account utente for. *us-east-1* Regione AWS *123456789012* Il bucket è denominato. *amzn-s3-demo-bucket*

  ```
  aws redshift put-resource-policy \
  --policy file://rs-rp.json \
  --resource-arn "arn:aws:redshift: us-east-1:123456789012:namespace/cc4ffe56-ad2c-4fd1-a5a2-f29124a56433"
  ```

  Dove `rs-rp.json` contiene:

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

****  

  ```
  {
  	"Version":"2012-10-17",		 	 	 
  	"Statement": [
  		{
  			"Effect": "Allow",
  			"Principal": {
  				"Service": "redshift.amazonaws.com"
  			},
  			"Action": "redshift:AuthorizeInboundIntegration",
  			"Resource": "arn:aws:redshift:us-east-1:123456789012:namespace:cc4ffe56-ad2c-4fd1-a5a2-f29124a56433",
  			"Condition": {
  				"StringEquals": {
  					"aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket",
  					"aws:SourceAccount": 111122223333
  				}
  			}
  		},
  		{
  			"Effect": "Allow",
  			"Principal": {
  				"AWS": "arn:aws:iam::111122223333:role/myRedshiftRole"
  			},
  			"Action": "redshift:CreateInboundIntegration",
  			"Resource": "arn:aws:redshift:us-east-1:123456789012:namespace:cc4ffe56-ad2c-4fd1-a5a2-f29124a56433",
  			"Condition": {
  				"StringEquals": {
  					"aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket",
  					"aws:SourceAccount": 111122223333
  				}
  			}
  		}
  	]
  }
  ```

------

  Per associare una policy di risorse al tuo spazio dei nomi Redshift Serverless per l'integrazione di un evento S3 con un bucket Amazon S3, esegui un comando simile al seguente. AWS CLI L'esempio seguente mostra una policy per uno spazio dei nomi serverless nell'account utente for. *us-east-1* Regione AWS *123456789012* Il bucket è denominato. *amzn-s3-demo-bucket*

  ```
  aws redshift put-resource-policy \
  --policy file://rs-rp.json \
  --resource-arn "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/namespace-1"
  ```

  Dove `rs-rp.json` contiene:

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

****  

  ```
  {
  	"Version":"2012-10-17",		 	 	 
  	"Statement": [
  		{
  			"Effect": "Allow",
  			"Principal": {
  				"Service": "redshift.amazonaws.com"
  			},
  			"Action": "redshift:AuthorizeInboundIntegration",
  			"Resource": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/namespace-1",
  			"Condition": {
  				"StringEquals": {
  					"aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket",
  					"aws:SourceAccount": 111122223333
  	
  				}
  			}
  		},
  		{
  			"Effect": "Allow",
  			"Principal": {
  				"AWS": "arn:aws:iam::123456789012:user/myUser"
  			},
  			"Action": "redshift:CreateInboundIntegration",
  			"Resource": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/namespace-1",
  			"Condition": {
  				"StringEquals": {
  					"aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket",
  					"aws:SourceAccount": 111122223333
  				}
  			}
  		}
  	]
  }
  ```

------

## Creare un’integrazione di eventi Amazon S3
<a name="loading-data-copy-job-create-s3-event-integration"></a>

Per configurare il processo di copia, devi dapprima definire un’integrazione di eventi S3.

------
#### [ Amazon Redshift console ]

**Come creare un’integrazione di eventi Amazon S3 sulla console Amazon Redshift**

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

1. Nel riquadro di navigazione sinistro scegli **Integrazione di eventi S3**.

1. Scegli **Crea integrazione di eventi Amazon S3** per aprire la procedura guidata per creare un’integrazione di eventi S3 da utilizzare con la copia automatica. Il bucket Amazon S3 di origine e il data warehouse Amazon Redshift di destinazione devono trovarsi nella stessa Regione AWS. Specifica le informazioni seguenti mentre segui la procedure per creare un’integrazione:
   + **Nome dell'integrazione**: è un identificatore univoco per tutte le integrazioni di cui disponi attualmente Account AWS . Regione AWS
   + **Descrizione**: è un testo che descrive l’integrazione di eventi Amazon S3 per farvi riferimento in un momento successivo.
   + Bucket **S3 di origine: è il bucket** Amazon S3 Account AWS attualmente in uso Regione AWS e rappresenta la fonte di importazione dei dati in Amazon Redshift.
   + **Data warehouse Amazon Redshift**: è il cluster con provisioning Amazon Redshift o il gruppo di lavoro Redshift serverless di destinazione che riceve i dati dall’integrazione.

     Se il warehouse Amazon Redshift di destinazione si trova nello stesso account, puoi selezionare la destinazione. Se la destinazione si trova in un account diverso, specifichi l’**ARN del data warehouse Amazon Redshift**. La destinazione deve avere una policy delle risorse con i principali e l’origine di integrazione autorizzati. Se non disponi delle policy delle risorse corrette sulla destinazione e la destinazione si trova nello stesso account, puoi selezionare l’opzione **Correggi per me** per applicare automaticamente le policy delle risorse durante il processo di creazione dell’integrazione. Se il tuo obiettivo è in un altro Account AWS, devi applicare manualmente la politica delle risorse sul magazzino Amazon Redshift.

1. Inserisci fino a 50 **Chiavi** di tag e con un **Valore** facoltativo per fornire metadati aggiuntivi sull’integrazione.

1. Viene visualizzata una pagina di revisione in cui puoi scegliere **Crea integrazione di eventi S3**.

------
#### [ AWS CLI ]

Per creare un'integrazione di eventi Amazon S3 utilizzando il AWS CLI, usa il `create-integration` comando con le seguenti opzioni:
+ `integration-name`: specifica un nome per l’integrazione.
+ `source-arn`: specificare l’ARN del bucket di origine Amazon S3.
+ `target-arn`: specifica l’ARN del namespace della destinazione del cluster con provisioning Amazon Redshift o del gruppo di lavoro Redshift serverless.

L’esempio seguente crea un’integrazione fornendo il nome dell’integrazione, l’ARN di origine e l’ARN di destinazione. L’integrazione non è crittografata.

```
aws redshift create-integration \
--integration-name s3-integration \
--source-arn arn:aws:s3:us-east-1::s3-example-bucket \
--target-arn arn:aws:redshift:us-east-1:123456789012:namespace:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222
          {
    "IntegrationArn": "arn:aws:redshift:us-east-1:123456789012:integration:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "IntegrationName": "s3-integration",
    "SourceArn": "arn:aws:s3:::s3-example-bucket",
    "SourceType": "s3-event-notifications",
    "TargetArn": "arn:aws:redshift:us-east-1:123456789012:namespace:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "Status": "creating",
    "Errors": [],
    "CreateTime": "2024-10-09T19:08:52.758000+00:00",
    "Tags": []
}
```

Puoi anche utilizzare i seguenti AWS CLI comandi per gestire l'integrazione degli eventi S3.
+ `delete-integration`: specifica un ARN di integrazione per eliminare un’integrazione di eventi S3.
+ `modify-integration`: specifica un ARN di integrazione per modificare il nome o la descrizione (o entrambi) di un’integrazione di eventi S3.
+ `describe-integrations`: specifica un ARN di integrazione per visualizzare le proprietà di un’integrazione di eventi S3.

Consulta la [https://docs.aws.amazon.com/cli/latest/reference/redshift/](https://docs.aws.amazon.com/cli/latest/reference/redshift/) per ulteriori informazioni su questi comandi.

------

Amazon Redshift crea quindi un’integrazione di eventi S3 con l’origine e la destinazione associate, lo stato e le informazioni sullo stato di un processo di copia automatica associato. Puoi visualizzare le informazioni su un’integrazione di eventi S3 sulla console Amazon Redshift scegliendo **Integrazioni di eventi S3** e selezionando l’integrazione per visualizzarne i dettagli. Le integrazioni sono separate da quelle create **Nel mio account** e **Da altri account.** Nell’elenco **Nel mio account** sono visualizzate le integrazioni in cui l’origine e la destinazione si trovano nello stesso account. Nell’elenco **Da altri account** sono visualizzate le integrazioni in cui l’origine è di proprietà di un altro account.

Se elimini un’integrazione di eventi S3, lo stato del processo COPY JOB corrispondente cambia da `1` (attivo) a `0` (inattivo/in sospeso). Tuttavia il processo COPY JOB corrispondente non viene rimosso automaticamente. Se in seguito tenti di creare un processo COPY JOB con lo stesso nome, potrebbe verificarsi un conflitto.

## Creare e monitorare un processo COPY JOB
<a name="loading-data-copy-job-create-s3-autocopy"></a>

Dopo avere creato l’integrazione, nella pagina **Dettagli sull’integrazione di eventi S3** relativa all’integrazione che hai creato, scegli **Crea un processo di copia automatica** per accedere ad Amazon Redshift Query Editor V2 dove puoi creare il processo di copia automatica per l’integrazione. Amazon Redshift abbina il bucket della clausola FROM dell’istruzione COPY JOB CREATE al bucket utilizzato nell’integrazione di eventi S3. Per informazioni su come utilizzare Amazon Redshift Query Editor V2, consulta [Esecuzione di query su un database con Amazon Redshift Query Editor V2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2.html) nella *Guida alla gestione di Amazon Redshift*. Ad esempio, esegui il comando COPY seguente in Query Editor V2 per creare un processo COPY JOB automatico che abbina il bucket Amazon S3 `s3://amzn-s3-demo-bucket/staging-folder` a un’integrazione di eventi Amazon S3.

```
COPY public.target_table
FROM 's3://amzn-s3-demo-bucket/staging-folder'
IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName'
JOB CREATE my_copy_job_name
AUTO ON;
```

È necessario definire un processo COPY JOB una sola volta, in quanto gli stessi parametri verranno utilizzati per le esecuzioni future.

Per definire e gestire un processo COPY JOB, devi disporre dell’autorizzazione. Per informazioni sulla concessione e sulla revoca dell’autorizzazione per un processo COPY JOB, consulta [GRANT](r_GRANT.md) e [REVOKE](r_REVOKE.md). Per ulteriori informazioni sulla concessione e sulla revoca delle autorizzazioni con ambito per un processo COPY JOB, consulta [Assegnazione delle autorizzazioni con ambito](r_GRANT.md#grant-scoped-syntax) e [Revoca delle autorizzazioni con ambito](r_REVOKE.md#revoke-scoped-permissions).

È possibile gestire le operazioni di caricamento utilizzando le opzioni CREATE, LIST, SHOW, DROP, ALTER e RUN relative ai processi. Per ulteriori informazioni, consulta [COPY JOB](r_COPY-JOB.md).

È possibile eseguire query sulle viste di sistema per vedere lo stato e l'avanzamento del processo COPY JOB. Le viste disponibili sono le seguenti:
+ [SYS\$1COPY\$1JOB](SYS_COPY_JOB.md) – include una riga per ogni processo COPY JOB definito.
+ [SYS\$1COPY\$1JOB\$1DETAIL](SYS_COPY_JOB_DETAIL.md): include i dettagli sui file in sospeso, con errore e importati per ciascun processo COPY JOB.
+ [SYS\$1COPY\$1JOB\$1INFO](SYS_COPY_JOB_INFO.md): contiene i messaggi registrati relativi a un processo COPY JOB.
+ [SYS\$1LOAD\$1HISTORY](SYS_LOAD_HISTORY.md) – include i dettagli sui comandi COPY.
+ [SYS\$1LOAD\$1ERROR\$1DETAIL](SYS_LOAD_ERROR_DETAIL.md) – include i dettagli sugli errori relativi al comando COPY.
+ [SVV\$1COPY\$1JOB\$1INTEGRATIONS](SVV_COPY_JOB_INTEGRATIONS.md): include i dettagli sulle integrazioni di eventi S3.
+ [STL\$1LOAD\$1ERRORS](r_STL_LOAD_ERRORS.md) – include gli errori relativi ai comandi COPY.
+ [STL\$1LOAD\$1COMMITS](r_STL_LOAD_COMMITS.md) – include le informazioni utilizzate per risolvere i problemi di caricamento dei dati relativi al comando COPY.

Per ulteriori informazioni sulla correzione degli errori relativi all’integrazione di eventi S3, consulta [Risoluzione dei problemi di integrazione degli eventi S3 e degli errori del processo COPY JOB](s3-integration-troubleshooting.md).

Per ottenere l'elenco dei file caricati da un COPY JOB, esegui il seguente comando SQL, ma prima sostituisci*<job\$1id>*:

```
SELECT job_id, job_name, data_source, copy_query, filename, status, curtime
FROM sys_copy_job copyjob
JOIN stl_load_commits loadcommit
ON copyjob.job_id = loadcommit.copy_job_id
WHERE job_id = <job_id>;
```

## Considerazioni sulla creazione dell’integrazione di eventi S3 per la copia automatica
<a name="loading-data-copy-job-considerations"></a>

Considera quanto segue quando utilizzi la copia automatica.
+ Puoi creare un massimo di 200 processi COPY JOB per ogni cluster o gruppo di lavoro in un Account AWS.
+ Puoi creare un massimo di 50 integrazioni di eventi S3 per ogni destinazione Amazon Redshift.
+ Non puoi creare un’integrazione di eventi S3 con un bucket Amazon S3 di origine che ha un punto (.) nel nome del bucket.
+ Puoi creare solo un’integrazione di eventi S3 tra la stessa origine e la stessa destinazione. In altre parole può esserci una sola integrazione di eventi S3 tra un bucket Amazon S3 e un data warehouse Amazon Redshift alla volta.
+ Non puoi avere notifiche di eventi esistenti per il tipo di evento `S3_OBJECT_CREATED` definito nel bucket Amazon S3 di origine. Tuttavia, dopo aver creato un'integrazione di eventi S3, puoi aggiornare la notifica degli eventi del bucket Amazon S3 con prefix/suffix un ambito più ristretto. In questo modo, puoi anche `S3_OBJECT_CREATED` configurarne un altro prefix/suffix con altri obiettivi ed evitare conflitti con l'integrazione degli eventi S3. Se riscontri problemi dovuti al fatto che la copia automatica non è stata eseguita come previsto, prepara il AWS CloudTrail registro dell'`s3:PutBucketNotificationConfiguration`azione sul tuo bucket S3 per l'intervallo di tempo in questione al momento del contatto. Supporto AWS

## Regioni supportate
<a name="loading-data-copy-job-regions"></a>

Di seguito sono elencate le Regioni disponibili per la copia automatica.


| Region | Copia automatica | 
| --- | --- | 
| Africa (Città del Capo) | Disponibilità | 
| Asia Pacifico (Hong Kong) | Disponibilità | 
| Asia Pacifico (Taipei) | Disponibilità | 
| Asia Pacifico (Tokyo) | Disponibilità | 
| Asia Pacifico (Seul) | Disponibilità | 
| Asia Pacifico (Osaka) | Disponibilità | 
| Asia Pacifico (Mumbai) | Disponibilità | 
| Asia Pacifico (Hyderabad) | Disponibilità | 
| Asia Pacifico (Singapore) | Disponibilità | 
| Asia Pacifico (Sydney) | Disponibilità | 
| Asia Pacifico (Giacarta) | Disponibilità | 
| Asia Pacifico (Melbourne) | Disponibilità | 
| Asia Pacifico (Malesia) | Disponibilità | 
| Asia Pacifico (Nuova Zelanda) | Non disponibile | 
| Asia Pacifico (Thailandia) | Disponibilità | 
| Canada (Centrale) | Disponibilità | 
| Canada occidentale (Calgary) | Disponibilità | 
| Cina (Pechino) | Disponibilità | 
| Cina (Ningxia) | Disponibilità | 
| Europa (Francoforte) | Disponibilità | 
| Europa (Zurigo) | Disponibilità | 
| Europa (Stoccolma) | Disponibilità | 
| Europa (Milano) | Disponibilità | 
| Europa (Spagna) | Disponibilità | 
| Europa (Irlanda) | Disponibilità | 
| Europa (Londra) | Disponibilità | 
| Europa (Parigi) | Disponibilità | 
| Israele (Tel Aviv) | Disponibilità | 
| Medio Oriente (Emirati Arabi Uniti) | Disponibilità | 
| Medio Oriente (Bahrein) | Disponibilità | 
| Messico (centrale) | Disponibilità | 
| Sud America (San Paolo) | Disponibilità | 
| Stati Uniti orientali (Virginia settentrionale) | Disponibilità | 
| Stati Uniti orientali (Ohio) | Disponibilità | 
| Stati Uniti occidentali (California settentrionale) | Disponibilità | 
| Stati Uniti occidentali (Oregon) | Disponibilità | 
| AWS GovCloud (Stati Uniti orientali) | Disponibilità | 
| AWS GovCloud (Stati Uniti occidentali) | Disponibilità | 