Redshift STL Views für Protokollierung
Einführung
Wenn Sie mit Amazon Redshift arbeiten, ist es wichtig, die Abfrageausführung und die Systemaktivität zu überwachen. Dies hilft Ihnen, die Leistung zu verbessern, Probleme zu beheben und einen reibungslosen Betrieb sicherzustellen. Glücklicherweise bietet Redshift eine leistungsstarke Sammlung von Systemtabellen und -ansichten (STL), die Ihnen den Zugriff auf detaillierte Informationen zu Abfragen, Verbindungen und verschiedenen Systemmetriken ermöglichen.
In diesem Artikel werden wir die Grundlagen der Redshift STL Views näher betrachten und uns auf stl_query, stl_connection_log und andere wichtige Ansichten zur Protokollierung und Überwachung konzentrieren.
Was sind Redshift STL Views?
Redshift Systemtabellen und -ansichten (STL) sind eine Sammlung eingebauter Ansichten, die Informationen über die internen Abläufe des Redshift-Clusters speichern. Diese Ansichten bieten wertvolle Einblicke in die Abfrageausführung, Systemleistung, Ressourcennutzung und mehr. Durch Abfragen der STL-Ansichten können Sie ein tiefes Verständnis dafür gewinnen, wie Ihre Abfragen ausgeführt werden, Engpässe identifizieren und fundierte Entscheidungen zur Optimierung Ihrer Redshift-Arbeitslasten treffen. Redshift generiert STL-Systemansichten aus Protokolldateien.
Erkundung der stl_query Ansicht
Eine der am häufigsten verwendeten STL-Ansichten ist stl_query. Diese Ansicht enthält eine Aufzeichnung jeder Abfrage, die auf dem Redshift-Cluster ausgeführt wird, zusammen mit detaillierten Informationen zu jeder Abfrage. Lassen Sie uns einen genaueren Blick darauf werfen, wie stl_query für Protokollierung und Analyse verwendet werden kann.
Abfragen der stl_query
Um auf die in stl_query gespeicherten Informationen zuzugreifen, können Sie eine einfache SELECT-Anweisung ausführen. Hier ist ein Beispiel:
SELECT query, starttime, endtime, elapsed, aborted FROM stl_query ORDER BY starttime DESC LIMIT 10;
Diese Abfrage ruft die letzten 10 auf dem Redshift-Cluster ausgeführten Abfragen ab, zusammen mit ihrer Startzeit, Endzeit, Laufzeit und ob sie abgebrochen wurden. Das Ergebnis gibt Ihnen einen schnellen Überblick über die jüngste Abfrageaktivität.
Analyse der Abfrageleistung
Durch das tiefergehende Erkunden der stl_query-Ansicht können Sie wertvolle Einblicke in die Abfrageleistung gewinnen. Beispielsweise können Sie lang laufende Abfragen identifizieren, indem Sie nach der Spalte elapsed filtern:
SELECT query, elapsed, substring(querytxt, 1, 50) as query_snippet FROM stl_query WHERE elapsed > 60000 -- Abfragelaufzeit in Millisekunden ORDER BY elapsed DESC;
Diese Abfrage ruft Abfragen ab, die länger als 60 Sekunden zur Ausführung benötigt haben, zusammen mit einem Ausschnitt aus dem Abfragetext. Durch die Analyse dieser langsamen Abfragen können Sie Leistungsengpässe identifizieren und Ihre SQL-Anweisungen entsprechend optimieren.
Überwachung von Verbindungen mit der stl_connection_log Ansicht
Eine weitere wichtige STL-Ansicht für die Protokollierung ist stl_connection_log. Diese Ansicht zeichnet Informationen über Clientverbindungen zum Redshift-Cluster auf, einschließlich Verbindungsstart- und -endzeiten, Benutzernamen und Client-IP-Adressen. Lassen Sie uns erkunden, wie stl_connection_log zur Überwachung von Verbindungen verwendet werden kann.
Abfragen der stl_connection_log
Um das Verbindungsprotokoll anzuzeigen, können Sie eine einfache SELECT-Abfrage für stl_connection_log ausführen:
SELECT username, starttime, endtime, duration, remotehost, remoteport FROM stl_connection_log ORDER BY starttime DESC LIMIT 10;
Diese Abfrage ruft die letzten 10 Verbindungen zum Redshift-Cluster ab, einschließlich Benutzername, Startzeit, Endzeit, Dauer, Remote-Host und Remote-Port. Durch die Überwachung des Verbindungsprotokolls können Sie Benutzeraktivitäten verfolgen und verdächtige oder unbefugte Verbindungen identifizieren.
Analyse von Verbindungsmustern
Sie können auch stl_connection_log verwenden, um Verbindungsmuster zu analysieren und potenzielle Probleme zu identifizieren. Beispielsweise können Sie die Anzahl der Verbindungen pro Benutzer zählen:
SELECT username, COUNT(*) as connection_count FROM stl_connection_log GROUP BY username ORDER BY connection_count DESC;
Diese Abfrage gibt Ihnen einen Überblick über die Anzahl der Verbindungen, die von jedem Benutzer hergestellt wurden. Wenn Sie eine ungewöhnlich hohe Anzahl von Verbindungen von einem bestimmten Benutzer bemerken, könnte dies auf ein Problem oder ein ineffizientes Anwendungsdesign hinweisen, das Aufmerksamkeit erfordert.
Weitere wesentliche STL-Ansichten für die Protokollierung
Zusätzlich zu stl_query und stl_connection_log gibt es mehrere andere STL-Ansichten, die wertvolle Informationen zur Protokollierung und Überwachung liefern. Lassen Sie uns kurz einige davon erkunden:
stl_error
Die stl_error-Ansicht zeichnet Informationen über Fehler auf, die während der Abfrageausführung auftreten. Durch Abfragen dieser Ansicht können Sie Probleme in Ihren Abfragen identifizieren und beheben. Hier ist ein Beispiel:
SELECT username, query, substring(error, 1, 50) as error_snippet, starttime FROM stl_error ORDER BY starttime DESC LIMIT 10;
Diese Abfrage ruft die letzten 10 Fehler ab, einschließlich Benutzername, Abfrage-ID, einem Ausschnitt der Fehlermeldung und der Startzeit. Durch die Analyse der Fehler können Sie Probleme in Ihren SQL-Anweisungen identifizieren und beheben.
stl_wlm_query
Die stl_wlm_query-Ansicht liefert Informationen über Arbeitsspeicherverwaltung (WLM)-Abfragewarteschlangen und Slot-Nutzung. Durch die Überwachung dieser Ansicht können Sie Ihre WLM-Konfiguration optimieren und eine effiziente Ressourcenzuweisung sicherstellen. Hier ist ein Beispiel:
SELECT queue_start_time, total_queue_time, total_exec_time, slot_count FROM stl_wlm_query ORDER BY queue_start_time DESC LIMIT 10;
Diese Abfrage ruft die letzten 10 von WLM verarbeiteten Abfragen ab, einschließlich Warteschlangenstartzeit, Gesamtwartezeit, Gesamtausführungszeit und der Anzahl der verwendeten Slots. Durch die Analyse dieser Informationen können Sie Abfragen identifizieren, die zu lange in der Warteschlange warten oder zu viele Slots verbrauchen.
stl_load_commits
Die stl_load_commits-Ansicht zeichnet Informationen über COPY-Befehle auf, die zum Laden von Daten in Redshift-Tabellen verwendet werden. Durch Abfragen dieser Ansicht können Sie den Fortschritt und die Leistung Ihrer Datenladungen überwachen. Hier ist ein Beispiel:
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;
Diese Abfrage ruft die letzten 10 COPY-Befehle ab, einschließlich Abfrage-ID, Zieltabellenname, Anzahl der gescannten Zeilen, Anzahl der geladenen Dateien, Startzeit, Endzeit und Dauer. Durch die Überwachung der Ladecommits können Sie die Effizienz Ihrer Datenladeprozesse verfolgen.
Systemansichten zur Überwachung
Zusätzlich zu den STL-Ansichten bietet Redshift eine Reihe von Systemansichten (STV), die Echtzeitinformationen über den aktuellen Zustand des Clusters liefern. Diese Ansichten können besonders nützlich zur Überwachung und Fehlerbehebung sein. Hier sind einige bemerkenswerte Systemansichten:
- stv_recents: Liefert Informationen über die zuletzt ausgeführten Abfragen, einschließlich Abfrage-ID, Abfragetext und Ausführungszeit.
- stv_inflight: Zeigt aktuell ausgeführte Abfragen, zusammen mit deren Abfrage-ID, Benutzername und Ausführungszeit.
- stv_wlm_service_class_config: Zeigt die Konfiguration der WLM-Dienstklassen an, einschließlich Parallelität und Speicherlimits.
- stv_blocklist: Liefert Informationen zur Festplattennutzung und Blockmetadaten.
Durch Abfragen dieser Systemansichten können Sie Echtzeit-Einblicke in den aktuellen Zustand Ihres Redshift-Clusters erhalten und schnell Probleme oder Leistungsengpässe identifizieren.
Schlussfolgerung
Redshift STL-Ansichten bieten eine Fülle von Informationen zur Protokollierung, Überwachung und Optimierung der Leistung Ihres Clusters. Durch die Nutzung von Ansichten wie stl_query, stl_connection_log und anderen können Sie tiefgehende Einblicke in die Abfrageausführung, Systemaktivität und Ressourcennutzung gewinnen.
Denken Sie daran, regelmäßig die Informationen, die diese Ansichten bieten, zu überwachen und zu analysieren, um proaktiv Probleme zu identifizieren und zu beheben, die Abfrageleistung zu optimieren und einen reibungslosen Betrieb Ihres Redshift-Clusters sicherzustellen. Mit der Leistungsfähigkeit der STL-Ansichten in Ihren Händen können Sie Ihre Redshift-Protokollierung und -Überwachung auf die nächste Stufe heben.
Wenn Sie nach einer umfassenden Lösung suchen, um Ihren Redshift-Cluster zu sichern und die Einhaltung der Datenschutzvorschriften sicherzustellen, sollten Sie die benutzerfreundlichen und flexiblen Tools von DataSunrise erkunden. Unser Team stellt Ihnen gerne eine Online-Demo zur Verfügung und zeigt Ihnen, wie unsere Funktionen zur Datenbanksicherheit, Prüfung und Compliance Ihrem Unternehmen zugutekommen können.