
Come Utilizzare le Viste Redshift STL per il Logging e il Monitoraggio

Introduzione
Se lavora con Amazon Redshift, è importante monitorare l’esecuzione delle query e le attività di sistema. Questo la aiuterà a migliorare le prestazioni, risolvere i problemi e garantire operazioni fluide. Fortunatamente, Redshift fornisce un potente insieme di Tabelle e Viste di Sistema (STL) che le consentono di accedere a informazioni dettagliate su query, connessioni e varie metriche di sistema.
In questo articolo, esploreremo le basi delle viste Redshift STL, concentrandoci su stl_query, stl_connection_log e altre viste essenziali per il logging e il monitoraggio.
Che Cosa Sono le Viste Redshift STL?
Le Tabelle e Viste di Sistema (STL) di Redshift sono una raccolta di viste integrate che memorizzano informazioni sulle operazioni interne del cluster Redshift. Queste viste forniscono preziose informazioni sull’esecuzione delle query, sulle prestazioni del sistema, sull’utilizzo delle risorse e altro ancora. Interrogando le viste STL, si può ottenere una comprensione approfondita di come vengono eseguite le query, identificare i colli di bottiglia e prendere decisioni informate per ottimizzare i carichi di lavoro di Redshift. Redshift genera viste di sistema STL dai file di log.
Esplorando la Vista stl_query
Una delle viste STL più comunemente utilizzate è stl_query. Questa vista contiene un record di ogni query eseguita sul cluster Redshift, insieme a informazioni dettagliate su ciascuna query. Vediamo più da vicino come utilizzare stl_query per il logging e l’analisi.
Interrogare stl_query
Per accedere alle informazioni memorizzate in stl_query, si può eseguire una semplice istruzione SELECT. Ecco un esempio:
SELECT query, starttime, endtime, elapsed, aborted FROM stl_query ORDER BY starttime DESC LIMIT 10;
Questa query recupera le ultime 10 query eseguite sul cluster Redshift, insieme al loro orario di inizio, orario di fine, tempo trascorso e se sono state interrotte. Il risultato fornirà una rapida panoramica dell’attività recente delle query.
Analisi delle Prestazioni delle Query
Analizzando più a fondo la vista stl_query, si possono ottenere preziose informazioni sulle prestazioni delle query. Ad esempio, si possono identificare le query lunghe filtrando la colonna elapsed:
SELECT query, elapsed, substring(querytxt, 1, 50) as query_snippet FROM stl_query WHERE elapsed > 60000 -- Durata della query in millisecondi ORDER BY elapsed DESC;
Questa query recupera le query che hanno impiegato più di 60 secondi per essere eseguite, insieme a un frammento del testo della query. Analizzando queste query lente, si possono identificare i colli di bottiglia delle prestazioni e ottimizzare di conseguenza le istruzioni SQL.
Monitorare le Connessioni con la Vista stl_connection_log
Un’altra vista STL importante per il logging è stl_connection_log. Questa vista registra informazioni sulle connessioni dei client al cluster Redshift, inclusi gli orari di inizio e fine della connessione, i nomi utente e gli indirizzi IP dei client. Vediamo come utilizzare stl_connection_log per monitorare le connessioni.
Interrogare stl_connection_log
Per visualizzare il log delle connessioni, si può eseguire una semplice query SELECT su stl_connection_log:
SELECT username, starttime, endtime, duration, remotehost, remoteport FROM stl_connection_log ORDER BY starttime DESC LIMIT 10;
Questa query recupera le ultime 10 connessioni al cluster Redshift, inclusi il nome utente, l’ora di inizio, l’ora di fine, la durata, l’host remoto e la porta remota. Monitorando il log delle connessioni, si possono tracciare le attività degli utenti e identificare eventuali connessioni sospette o non autorizzate.
Analizzare i Modelli di Connessione
È possibile usare stl_connection_log anche per analizzare i modelli di connessione e identificare potenziali problemi. Ad esempio, si può contare il numero di connessioni per utente:
SELECT username, COUNT(*) as connection_count FROM stl_connection_log GROUP BY username ORDER BY connection_count DESC;
Questa query fornisce una panoramica del numero di connessioni effettuate da ciascun utente. Se si nota un numero insolitamente alto di connessioni da un particolare utente, potrebbe indicare un problema o un design inefficiente dell’applicazione che necessita di attenzione.
Altre Viste STL Essenziali per il Logging
Oltre a stl_query e stl_connection_log, ci sono molte altre viste STL che forniscono informazioni preziose per il logging e il monitoraggio. Vediamone brevemente alcune:
stl_error
La vista stl_error registra informazioni sugli errori che si verificano durante l’esecuzione delle query. Interrogando questa vista, si possono identificare e risolvere i problemi nelle query. Ecco un esempio:
SELECT username, query, substring(error, 1, 50) as error_snippet, starttime FROM stl_error ORDER BY starttime DESC LIMIT 10;
Questa query recupera gli ultimi 10 errori, inclusi il nome utente, l’ID della query, un frammento del messaggio di errore e l’ora di inizio. Analizzando gli errori, si possono identificare e correggere i problemi nelle istruzioni SQL.
stl_wlm_query
La vista stl_wlm_query fornisce informazioni sulle code di query e l’uso delle slot di workload management (WLM). Monitorando questa vista, si può ottimizzare la configurazione di WLM e garantire un’efficiente allocazione delle risorse. Ecco un esempio:
SELECT queue_start_time, total_queue_time, total_exec_time, slot_count FROM stl_wlm_query ORDER BY queue_start_time DESC LIMIT 10;
Questa query recupera le ultime 10 query processate da WLM, inclusi l’ora di inizio della coda, il tempo totale in coda, il tempo totale di esecuzione e il numero di slot utilizzati. Analizzando queste informazioni, si possono identificare query che attendono troppo in coda o che consumano troppi slot.
stl_load_commits
La vista stl_load_commits registra informazioni sui comandi COPY utilizzati per caricare i dati nelle tabelle Redshift. Interrogando questa vista, si possono monitorare i progressi e le prestazioni dei carichi di dati. Ecco un esempio:
SELECT query, table_name, lines_scanned, num_files, start_time, end_time, datediff(seconds, start_time, end_time) as duration FROM stl_load_commits ORDER BY start_time DESC LIMIT 10;
Questa query recupera gli ultimi 10 comandi COPY, inclusi l’ID della query, il nome della tabella di destinazione, il numero di righe scansionate, il numero di file caricati, l’ora di inizio, l’ora di fine e la durata. Monitorando i commit di caricamento, si può tracciare l’efficienza dei processi di caricamento dei dati.
Viste di Sistema per il Monitoraggio
Oltre alle viste STL, Redshift fornisce un insieme di viste di sistema (STV) che offrono informazioni in tempo reale sullo stato attuale del cluster. Queste viste possono essere particolarmente utili per il monitoraggio e la risoluzione dei problemi. Ecco alcune viste di sistema notevoli:
- stv_recents: Fornisce informazioni sulle query eseguite più recentemente, inclusi ID query, testo della query e tempo di esecuzione.
- stv_inflight: Mostra le query attualmente in esecuzione, insieme al loro ID query, nome utente e tempo di esecuzione.
- stv_wlm_service_class_config: Visualizza la configurazione delle classi di servizio WLM, inclusi la concorrenza e i limiti di memoria.
- stv_blocklist: Fornisce informazioni sull’utilizzo dello spazio su disco e i metadati dei blocchi.
Interrogando queste viste di sistema, si possono ottenere informazioni in tempo reale sullo stato attuale del cluster Redshift e identificare rapidamente eventuali problemi o colli di bottiglia delle prestazioni.
Conclusione
Le viste Redshift STL offrono una ricchezza di informazioni per il logging, il monitoraggio e l’ottimizzazione delle prestazioni del suo cluster. Utilizzando viste come stl_query, stl_connection_log e altre, può ottenere profonde informazioni sull’esecuzione delle query, sull’attività di sistema e sull’utilizzo delle risorse.
Non dimentichi di monitorare e analizzare regolarmente le informazioni fornite da queste viste per identificare e risolvere proattivamente eventuali problemi, ottimizzare le prestazioni delle query e assicurare il funzionamento fluido del Suo cluster Redshift. Con la potenza delle viste STL a portata di mano, può portare il logging e il monitoraggio del Suo Redshift al livello successivo.
Se sta cercando una soluzione completa per proteggere il Suo cluster Redshift e garantire la conformità con le normative sulla protezione dei dati, consideri l’idea di esplorare gli strumenti user-friendly e flessibili offerti da DataSunrise. Il nostro team sarà lieto di fornirLe una demo online e mostrare come le nostre caratteristiche di sicurezza dei database, audit e conformità possano beneficiare la Sua organizzazione.