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.