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

Come Utilizzare le Visualizzazioni STL di Redshift per il Logging e il Monitoraggio

Come Utilizzare le Visualizzazioni STL di Redshift per il Logging e il Monitoraggio

Introduzione

Se lavora con Amazon Redshift, è importante monitorare l’esecuzione delle query e l’ attività del sistema. Ciò contribuirà a ottimizzare le prestazioni, risolvere eventuali problemi e garantire operazioni senza intoppi. Fortunatamente, Redshift fornisce un potente set di System Tables and Views (STL) che consente di accedere a informazioni dettagliate su query, connessioni e vari metriche di sistema.

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

Che Cosa Sono le Visualizzazioni STL di Redshift?

Le System Tables and Views (STL) di Redshift sono una raccolta di visualizzazioni integrate che memorizzano informazioni sul funzionamento interno del cluster Redshift. Queste visualizzazioni forniscono preziose informazioni sull’esecuzione delle query, le prestazioni del sistema, l’utilizzo delle risorse e altro ancora. Interrogando le visualizzazioni STL, Lei può ottenere una comprensione approfondita del funzionamento delle query, identificare eventuali colli di bottiglia e prendere decisioni informate per ottimizzare i carichi di lavoro su Redshift. Redshift genera le visualizzazioni di sistema STL a partire dai file di log.

Esplorare la Visualizzazione stl_query

Una delle visualizzazioni STL più utilizzate è stl_query. Questa visualizzazione contiene un record di ogni query eseguita sul cluster Redshift, insieme a informazioni dettagliate su ciascuna query. Esaminiamo più da vicino come utilizzare stl_query per il logging e l’analisi.

Interrogare stl_query

Per accedere alle informazioni memorizzate in stl_query, 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 ai tempi di inizio, fine, durata e all’indicazione se siano state annullate. Il risultato Le fornirà una rapida panoramica dell’attività recente delle query.

Analisi delle Prestazioni delle Query

Approfondendo la visualizzazione stl_query, Lei può ottenere informazioni preziose sulle prestazioni delle query. Ad esempio, può identificare query a lunga esecuzione filtrando per 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 estratto del testo della query. Analizzando queste query lente, Lei può identificare colli di bottiglia nelle prestazioni e ottimizzare le istruzioni SQL di conseguenza.

Monitoraggio delle Connessioni con la Visualizzazione stl_connection_log

Un’altra importante visualizzazione STL per il logging è stl_connection_log. Questa visualizzazione 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. Esaminiamo come utilizzare stl_connection_log per il monitoraggio delle connessioni.

Interrogare stl_connection_log

Per visualizzare il registro delle connessioni, 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’orario di inizio, l’orario di fine, la durata, l’host remoto e la porta remota. Monitorando il registro delle connessioni, Lei può tenere traccia dell’attività degli utenti e identificare eventuali connessioni sospette o non autorizzate.

Analisi dei Pattern di Connessione

Può inoltre utilizzare stl_connection_log per analizzare i pattern di connessione e identificare eventuali problemi. Ad esempio, 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 Le fornisce una panoramica del numero di connessioni effettuate da ciascun utente. Se dovesse notare un numero insolitamente elevato di connessioni da parte di un utente particolare, potrebbe indicare un problema o un design inefficiente dell’applicazione che necessita di attenzione.

Altre Visualizzazioni per il Logging e il Monitoraggio in Redshift

Oltre a stl_query e stl_connection_log, Redshift fornisce diverse altre visualizzazioni di sistema che aiutano a monitorare l’attività del cluster, risolvere problemi di prestazioni e tracciare il comportamento degli utenti.

Tracciamento degli Errori delle Query: stl_error

Registra tutti gli errori relativi alle query. Utile per il debug delle query fallite.

SELECT username, query, substring(error, 1, 50) AS error_snippet, starttime
FROM stl_error
ORDER BY starttime DESC
LIMIT 10;

Monitoraggio delle Code di Lavoro: stl_wlm_query

Mostra in che modo il Workload Management (WLM) di Redshift gestisce le query in coda e in esecuzione.

SELECT queue_start_time, total_queue_time, total_exec_time, slot_count
FROM stl_wlm_query
ORDER BY queue_start_time DESC
LIMIT 10;

Audit dei Carichi di Dati: stl_load_commits

Traccia l’uso del comando COPY, aiutandola a monitorare le durate e l’efficienza dei carichi dei dati.

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;

Monitoraggio in Tempo Reale: Visualizzazioni STV

  • stv_recents – Query completate di recente.
  • stv_inflight – Query attualmente in esecuzione e la relativa durata.
  • stv_wlm_service_class_config – Configurazione attuale del WLM e limiti.
  • stv_blocklist – Utilizzo dei blocchi disco e allocazione dello spazio.

Potenziare il Logging di Redshift con DataSunrise

Sebbene le visualizzazioni STL di Redshift forniscano log dettagliati e metriche in tempo reale, esse non includono controlli di accesso granulari, mascheramento o integrazione con audit esterni. Ed è qui che DataSunrise aggiunge valore.

  • Audit in tempo reale delle query su tutte le sessioni Redshift
  • Mascheramento Dinamico dei Dati basato sui ruoli degli utenti, IP o contenuto delle query
  • Logging centralizzato con conservazione a lungo termine e ricerca
  • Bloccare operazioni rischiose come scansioni complete della tabella o esportazioni
  • Conformità in linea con GDPR, HIPAA, PCI DSS e altri standard

DataSunrise si colloca tra i client e il cluster Redshift, analizzando, registrando e controllando il traffico senza modificare la struttura dei dati.

Conclusione

Le visualizzazioni STL e STV di Redshift forniscono strumenti potenti per registrare il comportamento delle query, monitorare gli accessi e ottimizzare le prestazioni del sistema. Tuttavia, per ambienti che richiedono tracce di audit, controlli di accesso granulari ai dati e l’applicazione delle normative, il solo logging nativo non è sufficiente.

DataSunrise potenzia la visibilità e il controllo di Redshift con mascheramento intelligente, alert e capacità di audit. Richieda una demo per vedere come può portare il monitoraggio di Redshift a un livello superiore, in linea con gli standard aziendali di protezione dei dati.

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]