

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

# Componenti dell'architettura di un data warehouse Amazon Redshift
<a name="data-warehouse-arch-components"></a>

Ti consigliamo di avere una conoscenza di base dei componenti principali dell'architettura in un data warehouse Amazon Redshift. Queste conoscenze possono aiutarti a comprendere meglio come progettare query e tabelle per prestazioni ottimali.

Un data warehouse in Amazon Redshift è costituito dai seguenti componenti dell'architettura di base:
+ **Cluster**: un cluster, composto da uno o più nodi di elaborazione, è il componente principale dell'infrastruttura di un data warehouse Amazon Redshift. I nodi di calcolo sono trasparenti per le applicazioni esterne, ma l'applicazione client interagisce direttamente solo con il nodo leader. Un cluster tipico ha due o più nodi di elaborazione. I nodi di elaborazione sono coordinati tramite il nodo leader.
+ **Nodo leader**: un nodo leader gestisce le comunicazioni per i programmi client e tutti i nodi di elaborazione. Un nodo leader prepara inoltre i piani per l'esecuzione di una query ogni volta che una query viene inviata a un cluster. Quando i piani sono pronti, il nodo leader compila il codice, distribuisce il codice compilato ai nodi di calcolo e quindi assegna porzioni di dati a ciascun nodo di calcolo per elaborare i risultati della query.
+ Nodo **di calcolo: un nodo** di calcolo esegue una query. Il nodo leader compila il codice per i singoli elementi del piano di esecuzione della query e lo assegna ai singoli nodi di calcolo. I nodi di calcolo eseguono il codice compilato e restituiscono risultati intermedi al nodo principale per l'aggregazione finale. Ogni nodo di elaborazione dispone di CPU, memoria e storage su disco collegati dedicati. Con il crescere del carico di lavoro, puoi aumentare la capacità di elaborazione e di storage di un cluster aumentando il numero di nodi, aggiornando il tipo di nodi o tramite entrambe queste operazioni.
+ **Node slice**: un nodo di elaborazione è suddiviso in unità chiamate slice. A ogni slice in un nodo di calcolo viene allocata una parte della memoria e dello spazio su disco del nodo, dove elabora una parte del carico di lavoro assegnato al nodo. Le sezioni operano quindi in parallelo per completare l'operazione. I dati vengono distribuiti tra le slice in base allo [stile di distribuzione](https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-best-dist-key.html) e alla chiave di distribuzione di una particolare tabella. Una distribuzione uniforme dei dati consente ad Amazon Redshift di assegnare in modo uniforme i carichi di lavoro alle slice e massimizza i vantaggi dell'elaborazione parallela. Il numero di slice per nodo di elaborazione viene deciso in base al tipo di nodo. Per ulteriori informazioni, consulta [Cluster e nodi in Amazon****](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes) Redshift nella documentazione di Amazon Redshift.
+ **Elaborazione parallela massiva (MPP)**: Amazon Redshift utilizza l'architettura MPP per elaborare rapidamente dati, anche query complesse e grandi quantità di dati. Più nodi di calcolo eseguono lo stesso codice di query su porzioni di dati per massimizzare l'elaborazione parallela.
+ **Applicazione client**: Amazon Redshift si integra con vari strumenti di caricamento, estrazione, trasformazione e caricamento (ETL), report di business intelligence (BI), data mining e analisi. Tutte le applicazioni client comunicano con il cluster solo tramite il nodo leader.

Il diagramma seguente mostra come i componenti dell'architettura di un data warehouse Amazon Redshift interagiscono per accelerare le query.



![Il nodo leader e i nodi di calcolo in un cluster Amazon Redshift che elaborano una query da un client.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/query-best-practices-redshift/images/redshift-data-warehouse.png)


Esistono sette fasi del ciclo di vita delle query:

1. Ricezione e analisi delle query:
   + Il nodo principale riceve la query e analizza l'SQL.
   + Il parser produce un albero di query iniziale, che rappresenta la struttura logica della query originale.
   + Amazon Redshift inserisce questo albero di query nell'ottimizzatore delle query.

1. Ottimizzazione delle query:
   + L'ottimizzatore valuta la query e, se necessario, la riscrive per massimizzare l'efficienza.
   + Questo processo di ottimizzazione potrebbe comportare la creazione di più interrogazioni correlate per sostituirne una sola.

1. Generazione di un piano di interrogazione:
   + L'ottimizzatore genera un piano di query (o più piani, se necessario) per l'esecuzione.
   + Il piano di query specifica le opzioni di esecuzione, come i tipi di join, l'ordine di join, i metodi di aggregazione e i requisiti di distribuzione dei dati.

1. Traduzione del motore di esecuzione:
   + Il motore di esecuzione traduce il piano di query in passaggi, segmenti e flussi discreti:
     + **Fase**: rappresenta una singola operazione richiesta durante l'esecuzione della query. È possibile combinare i passaggi per consentire ai nodi di calcolo di eseguire query, join o altre operazioni di database.
     + **Segmento**: combina diversi passaggi che un singolo processo può eseguire. È l'unità di compilazione più piccola eseguibile tramite una sezione di nodo di calcolo. (Una slice è l'unità di elaborazione parallela in Amazon Redshift.)
     + **Stream**: una raccolta di segmenti distribuiti su sezioni di nodi di calcolo disponibili.
   + Il motore di esecuzione genera codice compilato in base a questi passaggi, segmenti e flussi. Il codice compilato viene eseguito più velocemente del codice interpretato e consuma meno capacità di elaborazione.
   + Il nodo leader trasmette il codice compilato ai nodi di calcolo.

1. Esecuzione parallela:
   + Questo passaggio si verifica una volta per ogni stream.
   + Le sezioni del nodo di calcolo eseguono i segmenti di query in parallelo.
   + Durante questo processo, Amazon Redshift ottimizza la comunicazione di rete, l'utilizzo della memoria e la gestione del disco per trasmettere risultati intermedi da una fase del piano di query all'altra.
   + Questa ottimizzazione contribuisce a un'esecuzione più rapida delle query.

1. Elaborazione in streaming:
   + Questo passaggio si verifica una volta per ogni stream.
   + Il motore crea segmenti eseguibili per ogni flusso, per un'elaborazione parallela efficiente.

1. Ordinamento e aggregazione finali:
   + Il nodo leader affronta qualsiasi ordinamento o aggregazione finale richiesto dalla query.
   + Una volta completato, il nodo leader restituisce i risultati al client.

Per informazioni sui componenti dell'architettura, consulta [Architettura del sistema di data warehouse](https://docs.aws.amazon.com/redshift/latest/dg/c_high_level_system_architecture.html) nella documentazione di Amazon Redshift.