Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
Profiler di query
In questo documento viene descritto Profiler di query, uno strumento grafico per l’analisi dei componenti e delle prestazioni di una query.
Profiler di query è una funzionalità di monitoraggio e risoluzione dei problemi delle query visualizzabile tramite la console Amazon Redshift. È utile per analizzare le prestazioni delle query. Il suo scopo principale è mostrare un ordine di esecuzione, un piano di esecuzione e le statistiche visive e grafiche su una query, semplificandone la comprensione e la risoluzione dei problemi. Profiler di query consente di analizzare i tipi di componenti di query seguenti:
Query secondarie: una query secondaria è una parte del lavoro di una query. Amazon Redshift può suddividere una query in più query secondarie se è più efficiente rispetto all’elaborazione come un’unica query di grandi dimensioni. Nel profiler puoi visualizzare le proprietà di ogni query secondaria. Una query secondaria è composta da flussi e sottocomponenti aggiuntivi.
In genere tra i tipi di query secondarie mostrati da Profiler di query figurano i seguenti:
Query su tabella temporanea: il testo di questa query secondaria inizia con il comando
CREATE TEMP TABLE. Questa query secondaria crea tabelle temporanee che possono essere elaborate da altre query secondarie.Query statistica: Profiler di query aggiunge il commento seguente all’inizio di questa query secondaria per facilitarne l’identificazione:
-- collect statistics of child queryqueryIDQuesta query secondaria raccoglie informazioni che il motore di query di Amazon Redshift utilizza per ottimizzare le prestazioni.
Nota
Profiler di query mostra la query che l’utente fornisce come ultima query secondaria eseguita da Amazon Redshift.
Flussi: un flusso è una raccolta di segmenti raggruppati su sezioni di nodi di calcolo disponibili. Ogni query secondaria è costituita da uno o più segmenti. In Profiler di query puoi visualizzare le proprietà di ogni flusso, ad esempio il tempo di esecuzione. Se dai un’occhiata all’elenco dei flussi, è probabile che possa individuare rapidamente i colli di bottiglia in termini di prestazioni.
Segmenti: un segmento è una combinazione di diverse fasi che un singolo processo può eseguire. Un segmento è anche la più piccola unità di compilazione eseguibile da una sezione del nodo di calcolo. Una sezione è l'unità di elaborazione parallela in Amazon Redshift. I segmenti in un flusso eseguiti in parallelo. Profiler di query non mostra i segmenti graficamente, ma puoi accedere alle informazioni sui segmenti per una fase nel riquadro dei dettagli corrispondente.
Fasi: ogni segmento è costituito da una serie di fasi. Una fase è una parte del lavoro di una query. Le fasi possono includere hashjoin, ad esempio, oppure scan, che è la lettura dei record da una tabella.
Per ulteriori informazioni sui flussi, sui segmenti e sulle fasi, consulta Pianificazione di query e flusso di lavoro di esecuzione nella Guida per sviluppatori di database di Amazon Redshift.
Profiler di query mostra le informazioni restituite dalle viste SYS_QUERY_HISTORY, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN e SYS_CHILD_QUERY_TEXT. Per ulteriori informazioni su queste viste, consulta SYS_QUERY_HISTORY, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN e SYS_CHILD_QUERY_TEXT nella Guida per sviluppatori di database di Amazon Redshift.
Profiler di query visualizza solo le informazioni sulle query eseguite di recente sul database. Una query che viene completata utilizzando i dati di cache precompilati anziché essere eseguita sul database non ha un profilo di query se in precedenza non erano disponibili informazioni. Ciò è dovuto al fatto che Amazon Redshift non genera un piano di query a tal fine.
Prerequisiti per l’utilizzo di Profiler di query
Le viste di monitoraggio SYS sono progettate per facilitare l'uso e ridurre la complessità, fornendo una gamma completa di parametri per un monitoraggio e una risoluzione dei problemi efficaci. Le viste di monitoraggio SYS garantiscono inoltre la cronologia delle query degli ultimi sette giorni indipendentemente dalle dimensioni o dall’attività del cluster. Gli utenti hanno la visibilità solo sulle query che hanno eseguito, mentre gli utenti con privilegi avanzati hanno la visibilità sulle query di tutti gli utenti.
L’account o il ruolo dell’utente IAM necessita delle autorizzazioni per accedere alla sezione Monitoraggio di database e delle query della console. In questa sezione viene descritto come aggiungere le autorizzazioni a un account utente o un ruolo.
Utilizza la seguente policy per aggiungere le autorizzazioni minime al ruolo o all’account utente IAM.
Argomenti
Concessione delle autorizzazioni per il monitoraggio delle query a un ruolo
Gli utenti con un ruolo che dispone dell’autorizzazione sys:monitor possono visualizzare tutte le query. Gli utenti con un ruolo che dispone dell’autorizzazione sys:operator possono annullare le query, analizzare la cronologia delle query ed eseguire operazioni di vacuum.
Concessione dell'autorizzazione per il monitoraggio delle query a un ruolo
Utilizza il comando seguente per fornire l’accesso al monitoraggio del sistema, dove
nome-ruoloè il nome del ruolo per il quale desideri fornire l’accesso.grant role sys:monitor to "IAMR:role-name";(Facoltativo) Utilizza il comando seguente per fornire l’accesso alle operazioni di sistema, dove
nome-ruoloè il nome del ruolo per il quale desideri fornire l’accesso.grant role sys:operator to "IAMR:role-name";
Concessione delle autorizzazioni per il monitoraggio delle query a un utente
Gli utenti con l’autorizzazione sys:monitor possono visualizzare tutte le query. Gli utenti con l’autorizzazione sys:operator possono cancellare le query, analizzarne la cronologia ed eseguire operazioni di vacuum.
Concessione dell'autorizzazione per il monitoraggio delle query a un utente
Utilizza il comando seguente per fornire l’accesso al monitoraggio del sistema, dove
user-nameè il nome dell’utente per cui desideri concedere l’accesso.grant role sys:monitor to "IAMR:user-name";(Facoltativo) Utilizza il comando seguente per fornire l’accesso alle operazioni di sistema, dove
user-nameè il nome dell’utente per cui desideri concedere l’accesso.grant role sys:operator to "IAMR:user-name";
Credenziali temporanee che utilizzano la tua identità IAM
Questa opzione è disponibile solo quando ci si connette a un cluster. Con questo metodo, Profiler di query mappa un nome utente all’identità IAM e genera una password temporanea per la connessione al database con l’identità IAM. Un utente che utilizza questo metodo per connettersi deve avere l'autorizzazione IAM per redshift:GetClusterCredentialsWithIAM. Per impedire agli utenti di utilizzare questo metodo, modifica il loro utente o ruolo IAM per negare questa autorizzazione.
Accesso a Profiler di query nella console Amazon Redshift per analizzare una query
Puoi accedere a Profiler di query per Amazon Redshift serverless o Amazon Redshift con provisioning. Per ulteriori informazioni, consulta le sezioni seguenti:
Argomenti
Accesso a Profiler di query nella console Amazon Redshift per Amazon Redshift serverless
Per accedere a Profiler di query per Amazon Redshift serverless, segui la procedura descritta:
Apri la console Amazon Redshift serverless.
Nel riquadro di navigazione, in Monitoraggio, scegli Monitoraggio di database e delle query.
Scegli un gruppo di lavoro.
Scegli Monitoraggio di database e delle query.
Scegli una query.
Scegli la scheda Piano di query nella pagina Dettagli della query.
Se è disponibile un piano di query, viene visualizzato un elenco di query secondarie. Scegli una query per visualizzarla in Profiler di query.
Accesso a Profiler di query nella console Amazon Redshift per Amazon Redshift con provisioning
Per accedere a Query profiler per Amazon Redshift con provisioning, segui la procedura descritta:
Apri il Pannello di controllo dei cluster con provisioning Amazon Redshift.
Scegli un cluster.
Seleziona Query monitoring (Monitoraggio della query).
Connettersi a un database
Scegli Monitoraggio di database e delle query.
Scegli una query.
Se è disponibile un piano di query, viene visualizzato un elenco di query secondarie. Scegli una query per visualizzarla in Profiler di query.
Interfaccia utente di Profiler di query
Profiler di query utilizza le seguenti pagine per visualizzare le informazioni sulla query:
Pagina Dettagli della query: questa pagina visualizza le statistiche e le query secondarie relative alla query.
Pagina Query secondaria: questa pagina mostra le statistiche, i flussi e una rappresentazione visiva del piano di esecuzione per una query secondaria. La console visualizza questa pagina quando scegli una query secondaria dall’elenco Query secondarie nella pagina Monitoraggio di database e delle query.
Pagina Dettagli della query
La pagina Dettagli della query contiene i componenti seguenti:
Riquadro superiore: il riquadro nella parte superiore della pagina mostra i dettagli della query, ad esempio lo stato e il tipo. Per informazioni sull’origine delle informazioni mostrate nel riquadro superiore, consulta SYS_QUERY_HISTORY nella Guida per sviluppatori di database di Amazon Redshift.
Scheda SQL: questa scheda del riquadro inferiore mostra il testo SQL per la query originale dell’utente.
Scheda del piano di query: questa scheda del riquadro inferiore mostra un elenco delle query secondarie utilizzate da Amazon Redshift per preparare i dati e le statistiche per la query dell’utente. Per impostazione predefinita, l’elenco Query secondarie mostra le informazioni e le statistiche aggregate relative a ciascuna query secondaria. Per informazioni sull’origine delle informazioni mostrate in questa pagina, consulta SYS_QUERY_DETAIL nella Guida per sviluppatori di database di Amazon Redshift.
Puoi aggiungere o rimuovere colonne dall’elenco Query secondarie utilizzando il menu Preferenze.
Parametri correlati: questa scheda del pannello inferiore mostra le metriche CloudWatch seguenti per la query:
Capacità RPU utilizzata (per i gruppi di lavoro serverless): la capacità di calcolo utilizzata dalla query, misurata in unità di elaborazione Redshift (RPU). Per ulteriori informazioni, consulta Capacità di calcolo per Amazon Redshift Serverless.
Stato di integrità del cluster, Utilizzo della CPU, Capacità di storage utilizzata (per i cluster con provisioning): lo stato e le risorse di sistema utilizzate dalla query.
Connessioni di database attive: la metrica
DatabaseConnectionsper la query.
Per ulteriori informazioni sui parametri CloudWatch, consultare Dati relativi alle prestazioni in Amazon Redshift.
Pagina Query secondaria
La pagina Query secondaria contiene i componenti seguenti:
Menu a discesa Query secondarie: questo controllo mostra il nome della sequenza e il tempo di esecuzione per ogni query secondaria. Puoi passare ad altre query secondarie selezionandole in questo controllo.
Pannello laterale: questo pannello contiene schede per la visualizzazione dei flussi di query secondarie e del testo delle query secondarie.
Scheda Flussi delle query secondarie: questa scheda del pannello superiore mostra quanto segue:
Flussi: questo riquadro mostra l’elenco dei flussi nella query secondaria. Questo riquadro mostra le informazioni e i dati aggregati sui flussi utilizzati da Amazon Redshift per ottimizzare la query. Per informazioni sui dettagli in questo riquadro, consulta SYS_QUERY_DETAIL nella Guida per sviluppatori di database di Amazon Redshift.
Puoi aggiungere o rimuovere colonne dal riquadro Flussi utilizzando il menu Preferenze. Puoi accedere al menu Preferenze utilizzando l’icona a forma di ingranaggio nel riquadro Flussi.
Riquadro Query secondaria: una rappresentazione grafica delle fasi della query secondaria. Per informazioni sul riquadro Query secondaria, consulta Riquadro Query secondaria di seguito.
Scheda Testo della query secondaria: questa scheda del pannello superiore mostra il codice SQL per la query secondaria.
Riquadro Dettagli della query secondaria: questo riquadro nel pannello di destra mostra i dettagli della query secondaria. Per informazioni sui dettagli in questo riquadro, consulta SYS_QUERY_DETAIL nella Guida per sviluppatori di database di Amazon Redshift.
Riquadro Dettagli del flusso: quando scegli un flusso nel riquadro Flussi, il riquadro Dettagli del flusso mostra le informazioni sul flusso. Per informazioni sui dettagli in questo pannello, consulta SYS_QUERY_DETAIL nella Guida per sviluppatori di database di Amazon Redshift.
Riquadro Dettagli della fase: quando scegli una fase nel riquadro Flussi o il grafico in Piano della query secondaria, il riquadro Dettagli della fase mostra le informazioni sulla fase. Per informazioni sui dettagli in questo riquadro, consulta SYS_QUERY_DETAIL nella Guida per sviluppatori di database di Amazon Redshift.
Riquadro Query secondaria
Profiler di query visualizza la query secondaria nel riquadro Query secondaria come rappresentazione grafica delle fasi nella query secondaria selezionata.
Il riquadro Query secondaria mostra l’ordine di esecuzione e le relazioni tra le fasi. Ad esempio, se una fase effettua il join dell’output di altre due fasi, il riquadro Query secondaria mostra il passaggio come un nodo ad albero con due nodi che lo alimentano:
Per impostazione predefinita, il riquadro Query secondaria non mostra i flussi che contengono le fasi. Per mostrare i flussi utilizzati da Amazon Redshift per partizionare logicamente le fasi della query secondaria, scegli Visualizza i flussi. Quando scegli Visualizza i flussi, il riquadro Query secondaria mostra le fasi contenute dai flussi della query.
Il riquadro Query secondaria non mostra le informazioni sui segmenti. Per visualizzare il segmento relativo a una fase, scegli la fase. Il riquadro Dettagli della fase mostra quindi il segmento relativo alla fase.
Navigazione nel riquadro Query secondaria
Nel riquadro Query secondaria puoi scegliere le fasi per visualizzare le relative informazioni dettagliate. Inoltre puoi eseguire la panoramica e lo zoom dello spazio di lavoro per visualizzare meglio le fasi nel piano di query.
Puoi scegliere i nodi, eseguire la panoramica e lo zoom in Piano della query secondaria utilizzando i seguenti metodi:
Utilizzo del mouse: puoi scegliere i nodi, fare clic e trascinare lo spazio di lavoro per eseguire la panoramica, tenere premuto
Ctrl(Windows) oCMD(Mac) e premere la rotellina del mouse per effettuare lo zoom. La scelta di un nodo fa sì che lo spazio di lavoro esegua lo zoom e la panoramica per evidenziarlo. Se scegli un flusso nello spazio di lavoro, tale flusso viene evidenziato nell’elenco Flussi. Se scegli un passaggio nello spazio di lavoro, il riquadro Dettagli della fase mostra le informazioni su tale fase.Utilizzo dei controlli di zoom e adattamento nella parte superiore sinistra dello spazio di lavoro: questi controlli consentono di eseguire lo zoom per ingrandire, rimpicciolire e adattare l’intero spazio di lavoro e accedere alla modalità a schermo intero. Quando esegui lo zoom per adattare l’intero piano di query, lo spazio di lavoro centra il piano sia orizzontalmente che verticalmente.
Utilizzo della minimappa nella parte inferiore destra dello spazio di lavoro: puoi eseguire la panoramica o lo zoom dello spazio di lavoro usando il controllo della minimappa nell’angolo inferiore sinistro dello spazio di lavoro.
Scelta di un flusso nel riquadro Flussi: se scegli un flusso nel riquadro Flussi, viene eseguita la panoramica dello spazio di lavoro che viene ingrandito per mostrare il flusso selezionato e le relative informazioni nel riquadro Dettagli del flusso.
Scelta di una fase nel riquadro Dettagli del flusso: se scegli una fase nel riquadro Dettagli del flusso, viene eseguita la panoramica dello spazio di lavoro che viene ingrandito per mostrare la fase selezionata e le relative informazioni nel riquadro Dettagli della fase.
Nota
Quando scegli una fase, nello spazio di lavoro o in un altro riquadro, lo spazio di lavoro tenta di eseguire lo zoom e la panoramica in modo da visualizzare al meglio la fase selezionata.
Quando scegli un flusso o una fase, nello spazio di lavoro o in un altro riquadro, lo spazio di lavoro esegue lo zoom e la panoramica sul flusso o sulla fase solo se hai selezionato Panoramica e zoom nel controllo in alto a destra dello spazio di lavoro. Puoi limitare questo comportamento alla panoramica e allo zoom, alla sola panoramica o a nessun movimento scegliendo l’impostazione appropriata nel menu a discesa.
Risoluzione dei problemi relativi alle query con Profiler di query
Se stai risolvendo un problema relativo a una query, puoi scegliere una query secondaria per determinare quale flusso utilizza il valore più alto di Percentuale del tempo totale di interrogazione. È un modo rapido per determinare quale parte della query deve essere analizzata ulteriormente.
Dopo avere individuato la query secondaria che richiede più tempo, consulta la relativa procedura per vedere quale join o scansione potrebbe causare un rallentamento delle prestazioni.