DataSunrise sponsorise AWS re:Invent 2024 à Las Vegas, veuillez nous rendre visite au stand n°2158 de DataSunrise

Vues STL de Redshift pour la Journalisation

Vues STL de Redshift pour la Journalisation

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 le bon fonctionnement. Cela vous aidera à optimiser les performances, à résoudre les problèmes et à garantir le bon fonctionnement. Heureusement, Redshift fournit un ensemble puissant de Tables et Vues Systèmes (STL) qui vous permettent d’accéder à des informations détaillées sur les requêtes, les connexions et diverses métriques système.

Dans cet article, nous allons nous 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 le suivi.

Quelles sont les Vues STL de Redshift ?

Les Tables et Vues Systèmes (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, et plus encore. En interrogeant les vues STL, vous pouvez obtenir une compréhension approfondie de la manière dont vos requêtes sont exécutées, identifier les goulets d’étranglement et prendre des décisions éclairées pour optimiser vos charges de travail Redshift. Redshift génère les vues systèmes STL à partir des 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.

Analyse des performances des requêtes

En approfondissant l’exploration de 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 de longue durée 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 goulets d’étranglement de performance et optimiser vos instructions SQL en conséquence.

Suivi des 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. Voyons comment utiliser stl_connection_log pour suivre 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, l’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.

Analyse des modèles de connexion

Vous pouvez également utiliser stl_connection_log pour analyser les modèles 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 d’un utilisateur particulier, cela pourrait indiquer un problème ou une conception d’application inefficace qui nécessite une attention.

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 le suivi. Explorons brièvement quelques-unes d’entre elles :

stl_error

La vue stl_error enregistre des informations sur les erreurs survenant lors de 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 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 de file d’attente, le temps total d’exécution 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 trop 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 les tables Redshift. En interrogeant cette vue, vous pouvez suivre l’avancement 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 commits de chargement, vous pouvez suivre l’efficacité de vos processus de chargement de données.

Vues Systèmes pour la Surveillance

En plus des vues STL, Redshift fournit un ensemble de vues systèmes (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 vues systèmes 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 : Montre les requêtes actuellement en cours d’exécution, ainsi que 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èmes, vous pouvez obtenir des informations en temps réel sur l’état actuel de votre cluster Redshift et identifier rapidement tout problème ou goulet 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 comme stl_query, stl_connection_log et autres, vous pouvez obtenir des données approfondies sur l’exécution des requêtes, l’activité du système et l’utilisation des ressources.

N’oubliez pas de surveiller et d’analyser régulièrement les informations fournies par ces vues pour identifier et résoudre préventivement tout problème, 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 élever 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 serait ravie de vous proposer une démonstration en ligne et de vous montrer comment nos fonctionnalités de sécurité de base de données, 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]