DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Redshift STL Views per Logging

Redshift STL Views per Logging

Introduzione

Se lavori con Amazon Redshift, è importante monitorare l’esecuzione delle query e l’attività del sistema. Questo ti aiuterà a migliorare le prestazioni, risolvere i problemi e garantire operazioni fluide. Questo ti aiuterà a ottimizzare le prestazioni, risolvere i problemi e garantire operazioni fluide. Fortunatamente, Redshift fornisce un potente set di Tabelle di Sistema e Viste (STL) che ti permettono di accedere a informazioni dettagliate su query, connessioni e vari metriche di sistema.

In questo articolo, esploreremo le basi delle viste STL di Redshift, concentrandoci su stl_query, stl_connection_log e altre viste essenziali per il logging e il monitoraggio.

Cosa sono le Viste STL di Redshift?

Le Tabelle di Sistema e Viste (STL) di Redshift sono una raccolta di viste integrate che memorizzano informazioni sulle operazioni interne del cluster Redshift. Queste viste forniscono informazioni preziose su l’esecuzione delle query, le prestazioni del sistema, l’utilizzo delle risorse e altro ancora. Interrogando le viste STL, puoi ottenere una comprensione approfondita di come vengono eseguite le tue query, identificare i colli di bottiglia e prendere decisioni informate per ottimizzare i tuoi carichi di lavoro Redshift. Redshift genera viste di sistema STL dai log file.

Esplorare la vista stl_query

Una delle viste STL più comunemente utilizzate è stl_query. Questa vista contiene una registrazione di ogni query eseguita sul cluster Redshift, insieme a informazioni dettagliate su ciascuna query. Diamo uno sguardo più approfondito su come utilizzare stl_query per il logging e l’analisi.

Interrogare stl_query

Per accedere alle informazioni memorizzate in stl_query, puoi 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 ti fornirà una rapida panoramica dell’attività recente delle query.

Analizzare le Prestazioni delle Query

Scavando più a fondo nella vista stl_query, puoi ottenere informazioni preziose sulle prestazioni delle query. Ad esempio, puoi identificare le query che impiegano molto tempo filtrando sulla 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, puoi identificare i colli di bottiglia delle prestazioni e ottimizzare di conseguenza le tue 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, comprese le ore di inizio e fine delle connessioni, i nomi degli utenti e gli indirizzi IP dei client. Esploriamo come utilizzare stl_connection_log per il monitoraggio delle connessioni.

Interrogare stl_connection_log

Per visualizzare il log delle connessioni, è possibile 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’orario di inizio, l’orario di fine, la durata, l’host remoto e la porta remota. Monitorando il log delle connessioni, puoi tracciare l’attività degli utenti e identificare eventuali connessioni sospette o non autorizzate.

Analizzare i Modelli di Connessione

Puoi anche utilizzare stl_connection_log per analizzare i modelli di connessione e identificare potenziali problemi. Ad esempio, puoi 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 ti fornisce una panoramica del numero di connessioni effettuate da ciascun utente. Se noti un numero insolitamente alto di connessioni da parte di 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 diverse altre viste STL che forniscono informazioni preziose per il logging e il monitoraggio. Esploriamone brevemente alcune:

stl_error

La vista stl_error registra informazioni sugli errori che si verificano durante l’esecuzione delle query. Interrogando questa vista, puoi identificare e risolvere i problemi nelle tue 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, incluso il nome utente, l’ID della query, un frammento del messaggio di errore e l’orario di inizio. Analizzando gli errori, puoi identificare e correggere i problemi nelle tue istruzioni SQL.

stl_wlm_query

La vista stl_wlm_query fornisce informazioni sulle code di query e sull’uso degli slot della gestione dei carichi di lavoro (WLM). Monitorando questa vista, puoi ottimizzare la tua configurazione WLM e garantire un’allocazione efficiente 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 elaborate da WLM, inclusi l’orario di inizio della coda, il tempo totale in coda, il tempo totale di esecuzione e il numero di slot utilizzati. Analizzando queste informazioni, puoi identificare le query che attendono troppo a lungo in coda o che consumano slot in modo eccessivo.

stl_load_commits

La vista stl_load_commits registra informazioni sui comandi COPY utilizzati per caricare i dati nelle tabelle Redshift. Interrogando questa vista, puoi monitorare i progressi e le prestazioni dei tuoi caricamenti 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’orario di inizio, l’orario di fine e la durata. Monitorando i commit di caricamento, puoi tracciare l’efficienza dei tuoi processi di caricamento dei dati.

Viste di Sistema per il Monitoraggio

Oltre alle viste STL, Redshift fornisce un set 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ù di recente, inclusi l’ID della query, il testo della query e il tempo di esecuzione.
  • stv_inflight: Mostra le query attualmente in esecuzione, insieme al loro ID, 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 sui metadati dei blocchi.

Interrogando queste viste di sistema, puoi ottenere informazioni in tempo reale sullo stato attuale del tuo cluster Redshift e identificare rapidamente eventuali problemi o colli di bottiglia delle prestazioni.

Conclusione

Le viste STL di Redshift offrono un’abbondanza di informazioni per il logging, il monitoraggio e l’ottimizzazione delle prestazioni del tuo cluster. Sfruttando viste come stl_query, stl_connection_log e altre, puoi ottenere approfondimenti approfonditi sull’esecuzione delle query, l’attività del sistema e l’utilizzo delle risorse.

Ricorda di monitorare e analizzare regolarmente le informazioni fornite da queste viste per identificare proattivamente e risolvere eventuali problemi, ottimizzare le prestazioni delle query e garantire il funzionamento fluido del tuo cluster Redshift. Con il potere delle viste STL a tua disposizione, puoi portare il tuo logging e monitoraggio Redshift al livello successivo.

Se sei alla ricerca di una soluzione completa per proteggere il tuo cluster Redshift e garantire la conformità con le normative sulla protezione dei dati, considera di esplorare gli strumenti user-friendly e flessibili offerti da DataSunrise. Il nostro team sarebbe felice di fornirti una demo online e mostrarti come le nostre funzionalità di sicurezza del database, audit e conformità possono beneficiare la tua organizzazione.

Successivo

CockroachDB Client

CockroachDB Client

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Informazioni generali:
[email protected]
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
[email protected]