

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

# Guida introduttiva alla condivisione dei dati con AWS CloudFormation Amazon Redshift
<a name="data-sharing-within-account-CF"></a>

Puoi automatizzare la configurazione della condivisione dei dati utilizzando uno AWS CloudFormation stack che fornisce risorse. AWS Lo CloudFormation stack configura la condivisione dei dati tra due cluster Amazon Redshift nello stesso account. AWS In questo modo, puoi avviare la condivisione dati senza eseguire istruzioni SQl per il provisioning delle risorse.

Lo stack crea una unità di condivisione dati sul cluster designato. L'unità di condivisione dati include una tabella e dati di esempio di sola lettura. Questi dati possono essere letti dall'altro cluster Amazon Redshift.

Se desideri iniziare a condividere i dati in un AWS account eseguendo istruzioni SQL per configurare un datashare e concedere le autorizzazioni, senza utilizzarlo, consulta. CloudFormation [Condivisione dell'accesso in lettura ai dati all'interno di un Account AWS](within-account.md)

Prima di eseguire lo CloudFormation stack di condivisione dei dati, devi accedere con un utente autorizzato a creare un ruolo IAM e una funzione Lambda. Hai anche bisogno di due cluster Amazon Redshift nello stesso account. Tu ne usi uno, il *produttore*, per condividere i dati di esempio e l'altro *consumatore*, per leggerlo. Il requisito principale per questi cluster è che ciascuno utilizzi i nodi. RA3 Per i requisiti aggiuntivi, consultare [Considerazioni sulla condivisione dei dati in Amazon Redshift](datashare-considerations.md).

Per ulteriori informazioni sulle nozioni di base della configurazione di un cluster Amazon Redshift, consulta [Nozioni di base sui data warehouse con provisioning Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/new-user.html). Per ulteriori informazioni sull'automazione della configurazione con CloudFormation, vedi [Cos'è? AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

**Importante**  
Prima di lanciare lo CloudFormation stack, assicurati di avere due cluster Amazon Redshift nello stesso account e che i cluster utilizzino nodi. RA3 Assicurati che ogni cluster abbia un database e un utente con privilegi avanzati. Per ulteriori informazioni, consultare [CREATE DATABASE](r_CREATE_DATABASE.md) e [Utenti con privilegi avanzati](r_superusers.md).

**Per avviare CloudFormation lo stack per la condivisione dei dati di Amazon Redshift:**

1. Fai clic su [https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=DataShare&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataShare.yml](https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=DataShare&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataShare.yml), che ti porterà al CloudFormation servizio in. Console di gestione AWS

   Se ti viene richiesto, effettua l'accesso. 

   Viene avviato il processo di creazione dello stack, facendo riferimento a un file CloudFormation modello archiviato in Amazon S3. Un CloudFormation *modello* è un file di testo in formato JSON che dichiara AWS le risorse che compongono uno stack. Per ulteriori informazioni sui CloudFormation modelli, consulta [Impara](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html) le nozioni di base sui modelli.

1. Scegliere **Successivo** per inserire i dettagli della pila.

1. Sotto **Parametri**, per ciascun cluster, immettere quanto segue:
   + Il nome del cluster Amazon Redshift, ad esempio **ra3-consumer-cluster**
   + Il nome del database, ad esempio **dev**
   + Il nome dell'utente del database, ad esempio **consumeruser**

   Si consiglia di utilizzare cluster di test, perché la pila crea diversi oggetti di database.

   Scegli **Next (Successivo)**. 

1. Vengono visualizzate le opzioni della pila. 

   Scegliere **Successivo** per accettare le impostazioni predefinite.

1. In **Funzionalità**, scegliere **prendo atto che AWS CloudFormation può creare risorse IAM**.

1. Seleziona **Crea stack**. 

CloudFormation impiega circa 10 minuti per creare lo stack Amazon Redshift utilizzando il modello, creando un datashare chiamato. `myproducer_share` La pila crea l'unità nel database specificato nei dettagli della pila. Solo gli oggetti di quel database possono essere condivisi.

Se si verifica un errore durante la creazione della pila, procedere come segue:
+ Assicurarsi di aver immesso il nome del cluster, il nome del database e il nome utente del database corretti per ciascun cluster Redshift. 
+ Assicurati che il tuo cluster abbia dei nodi. RA3 
+ Assicurati di essere collegato come un utente che abbia l'autorizzazione a creare un ruolo IAM e una funzione Lambda. Per ulteriori informazioni sulla creazione dei ruoli IAM, consulta [Creazione di ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). Per ulteriori informazioni sulle policy per la creazione di funzioni Λ, consulta [Function development](https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html#permissions-user-function).

## Query del datashare creato
<a name="data-sharing-within-account-CF-querying"></a>

Per utilizzare la procedura seguente, assicurarsi di disporre delle autorizzazioni necessarie per eseguire query su ciascun cluster descritto.

**Per eseguire query sull'unità unità di condivisione dati:**

1. Connettiti al cluster di produttori sul database inserito al momento della creazione CloudFormation dello stack, utilizzando uno strumento client come Amazon Redshift query editor v2.

1. Esegui query sulle unità di condivisione dati.

   ```
   SHOW DATASHARES;
                     
   +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+
   |    share_name    | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account |          producer_namespace          |
   +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+
   | myproducer_share | 100         | sample_data_dev | myconsumer_db     | INBOUND    | NULL       | true                | NULL      |  producer-acct   |        your-producer-namespace       |
   +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+
   ```

   Il comando precedente restituisce il nome dell'unità creata dalla pila, denominata `myproducer_share`. Restituisce inoltre il nome del database associato all'unità di condivisione dati, .,`myconsumer_db`. 

   Copiare l'identificatore dello spazio dei nomi del produttore da utilizzare in un passaggio successivo.

1. Descrivi gli oggetti nell'unità unità di condivisione dati.

   ```
   DESC DATASHARE myproducer_share;
                     
   +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
   | producer_account |          producer_namespace          | share_type |    share_name    | object_type |             object_name             | include_new |
   +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
   |   producer-acct  |        your-producer-namespace       | OUTBOUND   | myproducer_share | schema      | myproducer_schema                   | true        |
   |   producer-acct  |        your-producer-namespace       | OUTBOUND   | myproducer_share | table       | myproducer_schema.tickit_sales      | NULL        |
   |   producer-acct  |        your-producer-namespace       | OUTBOUND   | myproducer_share | view        | myproducer_schema.ticket_sales_view | NULL        |
   +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
   ```

   Quando descrivi l'unità di condivisione dati, vengono restituite le proprietà per tabelle e viste. La pila aggiunge tabelle e viste con dati di esempio al database del produttore, ad esempio `tickit_sales` e `tickit_sales_view`. Per ulteriori informazioni sul database di esempio TICKIT, consulta[Database di esempio](c_sampledb.md).

   Non è necessario delegare le autorizzazioni nell'unità per eseguire query. La pila concede le autorizzazioni necessarie.

1. Connettitti al cluster consumer utilizzando lo strumento client. Descrivi l'unità, specificando lo spazio dei nomi del produttore.

   ```
   DESC DATASHARE myproducer_share OF NAMESPACE '<namespace id>'; --specify the unique identifier for the producer namespace
                     
   +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
   | producer_account |          producer_namespace          | share_type |    share_name    | object_type |             object_name             | include_new |
   +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
   |   producer-acct  |        your-producer-namespace       | INBOUND    | myproducer_share | schema      | myproducer_schema                   | NULL        |
   |   producer-acct  |        your-producer-namespace       | INBOUND    | myproducer_share | table       | myproducer_schema.tickit_sales      | NULL        |
   |   producer-acct  |        your-producer-namespace       | INBOUND    | myproducer_share | view        | myproducer_schema.ticket_sales_view | NULL        |
   +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
   ```

1. È possibile eseguire query sulle tabelle nell'unità unità di condivisione dati specificando il database e lo schema dell'unità. Per ulteriori informazioni, consulta [Esempi di query tra database](cross-database_example.md). Le seguenti query restituiscono i dati relativi alle vendite e ai venditori dalla tabella SALES del database di esempio TICKIT. Per ulteriori informazioni, consulta [Database di esempio](c_sampledb.md).

   ```
   SELECT * FROM myconsumer_db.myproducer_schema.tickit_sales_view;
                     
   +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
   | salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission |      saletime       |
   +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
   |       1 |      1 |    36861 |   21191 |    7872 |   1875 |       4 |       728 |      109.2 | 2008-02-18 02:36:48 |
   |       2 |      4 |     8117 |   11498 |    4337 |   1983 |       2 |        76 |       11.4 | 2008-06-06 05:00:16 |
   |       3 |      5 |     1616 |   17433 |    8647 |   1983 |       2 |       350 |       52.5 | 2008-06-06 08:26:17 |
   |       4 |      5 |     1616 |   19715 |    8647 |   1986 |       1 |       175 |      26.25 | 2008-06-09 08:38:52 |
   |       5 |      6 |    47402 |   14115 |    8240 |   2069 |       2 |       154 |       23.1 | 2008-08-31 09:17:02 |
   +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
   ```
**Nota**  
La query viene eseguita contro la vista nello schema condiviso. Non è possibile connettersi direttamente ai database consumer creati dalle unità di condivisione dati. Sono di sola lettura.

1. Per eseguire una query che include aggregazioni, utilizza l'esempio seguente.

   ```
   SELECT * FROM myconsumer_db.myproducer_schema.tickit_sales ORDER BY 1,2 LIMIT 5;
                     
   +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
   | salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission |      saletime       |
   +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
   |       1 |      1 |    36861 |   21191 |    7872 |   1875 |       4 |       728 |      109.2 | 2008-02-18 02:36:48 |
   |       2 |      4 |     8117 |   11498 |    4337 |   1983 |       2 |        76 |       11.4 | 2008-06-06 05:00:16 |
   |       3 |      5 |     1616 |   17433 |    8647 |   1983 |       2 |       350 |       52.5 | 2008-06-06 08:26:17 |
   |       4 |      5 |     1616 |   19715 |    8647 |   1986 |       1 |       175 |      26.25 | 2008-06-09 08:38:52 |
   |       5 |      6 |    47402 |   14115 |    8240 |   2069 |       2 |       154 |       23.1 | 2008-08-31 09:17:02 |
   +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
   ```

   La query restituisce i dati delle vendite e del venditore dai dati del database di esempio TICKIT.

   Per ulteriori esempi di query di unità di condivisione dati, consultare [Condivisione dell'accesso in lettura ai dati all'interno di un Account AWS](within-account.md).