Utilizzo degli stili di distribuzione dati - 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à.

Utilizzo degli stili di distribuzione dati

Quando si caricano i dati in una tabella, Amazon Redshift distribuisce le righe della tabella su tutti i nodi di calcolo a seconda dello stile di distribuzione della tabella. Quando si esegue una query, l'ottimizzatore di query ridistribuisce le righe sui nodi di calcolo per eseguire qualsiasi operazione di join e aggregazione, in base alle necessità. La selezione di uno stile di distribuzione di tabella ha l'obiettivo di ridurre al minimo l'impatto della fase di ridistribuzione posizionando i dati dove necessario prima dell'esecuzione della query.

Nota

In questa sezione verranno presentati i principi della distribuzione dei dati in un database Amazon Redshift. È consigliabile creare le tabelle con DISTSTYLE AUTO. In tal caso, Amazon Redshift utilizza l'ottimizzazione automatica della tabella per scegliere lo stile di distribuzione dei dati. Per ulteriori informazioni, consultare Utilizzo dell'ottimizzazione automatica delle tabelle. Il resto di questa sezione fornisce dettagli sugli stili di distribuzione.

Concetti della distribuzione dei dati

Di seguito sono riportati alcuni concetti di distribuzione dei dati per Amazon Redshift.

Nodi e sezioni

Un cluster Amazon Redshift è un set di nodi. Ogni nodo nel cluster ha il proprio sistema operativo, una memoria dedicata e uno storage del disco dedicato. Uno dei nodi è il nodo principale, il quale gestisce la distribuzione dei dati ed esegue query delle attività di elaborazione ai nodi di calcolo. I nodi di calcolo forniscono risorse per eseguire tali attività.

Lo storage del disco di un nodo di calcolo è diviso in un numero di sezioni. Il numero di sezioni per nodo dipende dalla dimensione dei nodi del cluster. Tutti i nodi partecipano all'esecuzione di query parallele, lavorando sui dati di calcolo distribuiti più uniformemente possibile all'interno delle sezioni. Per ulteriori informazioni sul numero di sezioni per ogni dimensione di nodo, consulta Informazioni su cluster e nodi nella Guida alla gestione di Amazon Redshift.

Ridistribuzione dei dati

Quando si caricano i dati in una tabella, Amazon Redshift distribuisce le righe della tabella su ognuna delle sezioni dei nodi a seconda dello stile di distribuzione della tabella. Come parte di un piano di query, l'ottimizzatore determina dove è necessario posizionare i blocchi dei dati per la migliore esecuzione della query. I dati quindi vengono spostati fisicamente, o ridistribuiti, durante l'esecuzione della query. La redistribuzione potrebbe comportare l'invio di specifiche righe ai nodi per il join o la diffusione di un'intera tabella a tutti i nodi.

La ridistribuzione dei dati può contare su una porzione sostanziale dei costi del piano di query; inoltre, il traffico di rete generato dalla ridistribuzione dei dati, può influire sulle altre operazioni del database e può rallentare le prestazioni generali del sistema. Qualora prevedessi dove converrebbe posizionare inizialmente i dati, potrai minimizzare l'impatto della ridistribuzione dei dati.

Obiettivi della distribuzione dei dati

Quando si caricano i dati in una tabella, Amazon Redshift distribuisce le righe della tabella su tutti i nodi di calcolo e alle sezioni, a seconda dello stile di distribuzione scelto al momento della creazione della tabella. La distribuzione dei dati ha due obiettivi principali:

  • Distribuire il carico di lavoro uniformemente su tutti i nodi del cluster. La distribuzione di dati non uniforme, o la differenza di distribuzione dei dati, forza alcuni nodi a lavorare maggiormente rispetto ad altri e compromette le prestazioni della query.

  • Minimizzare lo spostamento dei dati durante l'esecuzione di una query. Se le righe che partecipano a join o alle aggregazioni si trovano già sui nodi con le loro righe di join in altre tabelle, l'ottimizzatore non dovrà ridistribuire molti dati durante l'esecuzione della query.

La strategia di distribuzione che hai scelto per il tuo database avrà importanti ripercussioni sulle prestazioni della query, sui requisiti dello storage, sul caricamento dei dati e sulla manutenzione. Scegliendo lo stile di distribuzione migliore per ogni tabella, puoi bilanciare la distribuzione dei dati e migliorare in modo significativo le prestazioni generali del sistema.