Architettura del sistema di data warehouse - Amazon Redshift

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

Architettura del sistema di data warehouse

Questa sezione presenta gli elementi dell'architettura di data warehouse di Amazon Redshift, mostrata nella figura seguente.

Applicazioni client

Amazon Redshift si integra con diversi strumenti di caricamento dei dati ed ETL (estrazione, trasformazione e caricamento) nonché creazione di report, data mining e analisi di Business Intelligence (BI). Amazon Redshift è basato sullo standard aperto PostgreSQL, pertanto sarà possibile utilizzare la maggior parte delle applicazioni client SQL esistenti apportando solo modifiche minime. Per informazioni su alcune importanti differenze tra SQL e PostgreSQL in Amazon Redshift, consultare Amazon Redshift e PostgreSQL.

Cluster

Il componente centrale dell'infrastruttura di un data warehouse di Amazon Redshift è un cluster.

Un cluster è costituito da uno o più nodi di calcolo. Se viene effettuato il provisioning di un cluster con due o più nodi di calcolo, un ulteriore nodo principale coordina i nodi di calcolo e gestisce la comunicazione esterna. L'applicazione client interagisce direttamente solo con il nodo principale. I nodi di calcolo sono trasparenti alle applicazioni esterne.

Nodo principale

Il nodo principale gestisce le comunicazioni con i programmi client e tutta la comunicazione con i nodi di calcolo. Questo nodo analizza e sviluppa piani di esecuzione per svolgere operazioni di database, in particolare la serie di operazioni necessarie per ottenere risultati per query complesse. In base al piano di esecuzione, il nodo principale compila il codice, distribuisce il codice compilato nei nodi di calcolo e assegna una parte dei dati a ogni nodo di calcolo.

Il nodo principale distribuisce istruzioni SQL nei nodi di calcolo solo quando una query fa riferimento a tabelle archiviate nei nodi di calcolo. Tutte le altre query vengono eseguite esclusivamente nel nodo principale. Amazon Redshift è progettato per implementare determinate funzioni SQL solo nel nodo principale. Una query che usa una di queste funzioni restituirà un errore se fa riferimento a tabelle che si trovano nei nodi di calcolo. Per ulteriori informazioni, consultare Funzioni SQL supportate sul nodo principale.

Nodi di calcolo

Il nodo principale compila il codice per singoli elementi del piano di esecuzione e assegna il codice a 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 calcolo ha CPU e memoria dedicati, determinati dal tipo di nodo. Con il crescere del carico di lavoro, è possibile incrementare la capacità di calcolo di un cluster aumentando il numero di nodi, aggiornando il tipo di nodi o con entrambe queste operazioni.

Amazon Redshift fornisce diversi tipi di nodi per soddisfare le esigenze di calcolo degli utenti. Per informazioni dettagliate su ciascun tipo di nodo, consulta Cluster di Amazon Redshift nella Guida alla gestione di Amazon Redshift.

Redshift Managed Storage

Per l'archiviazione dei dati di data warehouse viene utilizzato Redshift Managed Storage (RMS) come livello di archiviazione separato. RMS offre la possibilità di dimensionare l'archiviazione fino ai petabyte utilizzando l'archiviazione di Amazon S3. RMS consente di dimensionare e pagare per il calcolo e l'archiviazione in modo indipendente, pertanto è possibile dimensionare il cluster solo in base alle esigenze di calcolo. Utilizza automaticamente l'archiviazione locale basata su SSD ad alte prestazioni come cache di livello 1. Sfrutta inoltre ottimizzazioni quali temperatura di blocco dei dati, età di blocco dei dati e modelli di carichi di lavoro per offrire prestazioni elevate, oltre a dimensionare l'archiviazione automaticamente in Amazon S3 quando necessario senza richiedere alcuna operazione da parte dell'utente.

Sezioni dei nodi

Ogni nodo di calcolo è partizionato in sezioni. A ogni sezione viene allocata una parte della memoria e dello spazio su disco del nodo, in cui elabora una parte del carico di lavoro assegnato al nodo. Il nodo principale gestisce la distribuzione dei dati nelle sezioni e spartisce tra le sezioni il carico di lavoro per tutte le query o altre operazioni di database. Le sezioni operano quindi in parallelo per completare l'operazione.

Il numero di sezioni per ogni nodo è determinato dalle dimensioni dei nodi del cluster. Per ulteriori informazioni sul numero di sezioni per ogni dimensione di nodo, consulta la pagina relativa alle informazioni su cluster e nodi nella Guida alla gestione di Amazon Redshift.

Quando crei una tabella, puoi facoltativamente specificare una colonna come chiave di distribuzione. Quando carichi dati nella tabella, le righe vengono distribuite nelle sezioni dei nodi in base alla chiave di distribuzione definita per una tabella. La scelta di una chiave di distribuzione appropriata permette ad Amazon Redshift di usare l'elaborazione parallela per caricare dati ed eseguire query in modo efficiente. Per informazioni sulla scelta di una chiave di distribuzione, consultare Scelta del migliore stile di distribuzione.

Rete interna

Amazon Redshift sfrutta connessioni a larghezza di banda elevata, prossimità ravvicinata e protocolli di comunicazione personalizzati per fornire comunicazione di rete privata ad altissima velocità tra il nodo principale e i nodi di calcolo. I nodi di calcolo vengono eseguiti in una rete isolata separata, cui le applicazioni client non accedono mai direttamente.

Database

Un cluster contiene uno o più database. I dati utente vengono archiviati nei nodi di calcolo. Il client SQL comunica con il nodo principale, che a sua volta coordina l'esecuzione di query con i nodi di calcolo.

Amazon Redshift è un sistema di gestione di database relazionali (RDBMS, Relational Database Management System) e di conseguenza è compatibile con altre applicazioni RDBMS. Benché offra le stesse funzionalità delle tipiche applicazioni RDBMS, tra cui funzioni di elaborazione di transazioni online (OLTP) come l'inserimento e l'eliminazione di dati, Amazon Redshift è ottimizzato per analisi e creazione di report ad alte prestazioni di set di dati di dimensioni molto grandi.

Amazon Redshift è basato su PostgreSQL. Amazon Redshift e PostgreSQL si differenziano per un certo numero di aspetti molto importanti, di cui devi tenere conto mentre progetti e sviluppi le tue applicazioni di data warehouse. Per informazioni sulle differenze tra Amazon Redshift SQL e PostgreSQL, consultare Amazon Redshift e PostgreSQL.