DataSunrise Obtient le Statut Compétence DevOps AWS dans AWS DevSecOps et Surveillance, Journalisation, Performance

Comment utiliser les vues STL de Redshift pour la journalisation et la surveillance

Comment utiliser les vues STL de Redshift pour la journalisation et la surveillance

Introduction

Si vous travaillez avec Amazon Redshift, il est important de surveiller l’exécution des requêtes et l’activité du système. Cela vous aidera à améliorer les performances, à résoudre les problèmes et à garantir un fonctionnement fluide. Heureusement, Redshift fournit un ensemble puissant de tables et de vues système (STL) qui vous permettent d’accéder à des informations détaillées sur les requêtes, les connexions et divers indicateurs système.

Dans cet article, nous allons plonger dans les bases des vues STL de Redshift, en nous concentrant sur stl_query, stl_connection_log et d’autres vues essentielles pour la journalisation et la surveillance.

Qu’est-ce que les vues STL de Redshift?

Les tables et vues système (STL) de Redshift sont une collection de vues intégrées qui stockent des informations sur les opérations internes du cluster Redshift. Ces vues fournissent des informations précieuses sur l’exécution des requêtes, les performances du système, l’utilisation des ressources, etc. En interrogeant les vues STL, vous pouvez obtenir une compréhension approfondie de la façon dont vos requêtes s’exécutent, identifier les goulots d’étranglement et prendre des décisions éclairées pour optimiser vos charges de travail Redshift. Redshift génère des vues système STL à partir de fichiers journaux.

Explorer la vue stl_query

Une des vues STL les plus couramment utilisées est stl_query. Cette vue contient un enregistrement de chaque requête exécutée sur le cluster Redshift, ainsi que des informations détaillées sur chaque requête. Regardons de plus près comment utiliser stl_query pour la journalisation et l’analyse.

Interroger stl_query

Pour accéder aux informations stockées dans stl_query, vous pouvez exécuter une simple instruction SELECT. Voici un exemple :

SELECT query, starttime, endtime, elapsed, aborted
FROM stl_query
ORDER BY starttime DESC
LIMIT 10;

Cette requête récupère les 10 dernières requêtes exécutées sur le cluster Redshift, ainsi que leur heure de début, heure de fin, temps écoulé et si elles ont été annulées. Le résultat vous donnera un aperçu rapide de l’activité récente des requêtes.

Analyser les performances des requêtes

En creusant plus profondément dans la vue stl_query, vous pouvez obtenir des informations précieuses sur les performances des requêtes. Par exemple, vous pouvez identifier les requêtes à long terme en filtrant sur la colonne elapsed :

SELECT query, elapsed, substring(querytxt, 1, 50) as query_snippet
FROM stl_query
WHERE elapsed > 60000 -- Durée de la requête en millisecondes
ORDER BY elapsed DESC;

Cette requête récupère les requêtes qui ont pris plus de 60 secondes pour s’exécuter, ainsi qu’un extrait du texte de la requête. En analysant ces requêtes lentes, vous pouvez identifier les goulots d’étranglement de performance et optimiser vos instructions SQL en conséquence.

Surveiller les connexions avec la vue stl_connection_log

Une autre vue STL importante pour la journalisation est stl_connection_log. Cette vue enregistre des informations sur les connexions des clients au cluster Redshift, y compris les heures de début et de fin des connexions, les noms d’utilisateur et les adresses IP des clients. Explorons comment utiliser stl_connection_log pour surveiller les connexions.

Interroger stl_connection_log

Pour afficher le journal des connexions, vous pouvez exécuter une simple requête SELECT sur stl_connection_log :

SELECT username, starttime, endtime, duration, remotehost, remoteport
FROM stl_connection_log
ORDER BY starttime DESC
LIMIT 10;

Cette requête récupère les 10 dernières connexions au cluster Redshift, y compris le nom d’utilisateur, l’heure de début, l’heure de fin, la durée, le hôte distant et le port distant. En surveillant le journal des connexions, vous pouvez suivre l’activité des utilisateurs et identifier toute connexion suspecte ou non autorisée.

Analyser les schémas de connexion

Vous pouvez également utiliser stl_connection_log pour analyser les schémas de connexion et identifier les problèmes potentiels. Par exemple, vous pouvez compter le nombre de connexions par utilisateur :

SELECT username, COUNT(*) as connection_count
FROM stl_connection_log
GROUP BY username
ORDER BY connection_count DESC;

Cette requête vous donne un aperçu du nombre de connexions effectuées par chaque utilisateur. Si vous remarquez un nombre inhabituellement élevé de connexions provenant d’un utilisateur en particulier, cela pourrait indiquer un problème ou une conception d’application inefficace qui nécessite une attention particulière.

Autres vues STL essentielles pour la journalisation

En plus de stl_query et stl_connection_log, il existe plusieurs autres vues STL qui fournissent des informations précieuses pour la journalisation et la surveillance. Explorons brièvement quelques-unes d’entre elles :

stl_error

La vue stl_error enregistre des informations sur les erreurs qui surviennent pendant l’exécution des requêtes. En interrogeant cette vue, vous pouvez identifier et résoudre les problèmes dans vos requêtes. Voici un exemple :

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

Cette requête récupère les 10 dernières erreurs, y compris le nom d’utilisateur, l’ID de la requête, un extrait du message d’erreur et l’heure de début. En analysant les erreurs, vous pouvez identifier et corriger les problèmes dans vos instructions SQL.

stl_wlm_query

La vue stl_wlm_query fournit des informations sur les files d’attente de requêtes de gestion de la charge de travail (WLM) et l’utilisation des slots. En surveillant cette vue, vous pouvez optimiser votre configuration WLM et garantir une allocation efficace des ressources. Voici un exemple :

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

Cette requête récupère les 10 dernières requêtes traitées par WLM, y compris l’heure de début de la file d’attente, le temps total passé en file d’attente, le temps d’exécution total et le nombre de slots utilisés. En analysant ces informations, vous pouvez identifier les requêtes qui attendent trop longtemps dans la file d’attente ou qui consomment un nombre excessif de slots.

stl_load_commits

La vue stl_load_commits enregistre des informations sur les commandes COPY utilisées pour charger des données dans des tables Redshift. En interrogeant cette vue, vous pouvez surveiller la progression et les performances de vos chargements de données. Voici un exemple :

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;

Cette requête récupère les 10 dernières commandes COPY, y compris l’ID de la requête, le nom de la table cible, le nombre de lignes scannées, le nombre de fichiers chargés, l’heure de début, l’heure de fin et la durée. En surveillant les validations de chargement, vous pouvez suivre l’efficacité de vos processus de chargement de données.

Vues système pour la surveillance

En plus des vues STL, Redshift fournit un ensemble de vues système (STV) qui offrent des informations en temps réel sur l’état actuel du cluster. Ces vues peuvent être particulièrement utiles pour la surveillance et le dépannage. Voici quelques-unes des vues système notables :

  • stv_recents : fournit des informations sur les requêtes les plus récemment exécutées, y compris l’ID de la requête, le texte de la requête et le temps d’exécution.
  • stv_inflight : affiche les requêtes actuellement en cours d’exécution, avec leur ID de requête, nom d’utilisateur et temps d’exécution.
  • stv_wlm_service_class_config : affiche la configuration des classes de services WLM, y compris la concurrence et les limites de mémoire.
  • stv_blocklist : fournit des informations sur l’utilisation de l’espace disque et les métadonnées des blocs.

En interrogeant ces vues système, vous pouvez obtenir des informations en temps réel sur l’état actuel de votre cluster Redshift et identifier rapidement tout problème ou goulot d’étranglement de performance.

Conclusion

Les vues STL de Redshift offrent une mine d’informations pour la journalisation, la surveillance et l’optimisation des performances de votre cluster. En exploitant des vues telles que stl_query, stl_connection_log, et autres, vous pouvez obtenir des informations approfondies sur l’exécution des requêtes, l’activité du système, et l’utilisation des ressources.

Souvenez-vous de surveiller et d’analyser régulièrement les informations fournies par ces vues pour identifier et résoudre de manière proactive les problèmes, optimiser les performances des requêtes et garantir le bon fonctionnement de votre cluster Redshift. Avec la puissance des vues STL à portée de main, vous pouvez amener la journalisation et la surveillance de Redshift à un niveau supérieur.

Si vous recherchez une solution complète pour sécuriser votre cluster Redshift et garantir la conformité aux réglementations de protection des données, envisagez d’explorer les outils conviviaux et flexibles offerts par DataSunrise. Notre équipe sera heureuse de vous fournir une démo en ligne et de vous montrer comment nos fonctionnalités de sécurité, d’audit et de conformité peuvent bénéficier à votre organisation.

Suivant

Client CockroachDB

Client CockroachDB

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Informations générales :
[email protected]
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
[email protected]