
Wie man Redshift STL-Ansichten für Logging und Monitoring nutzt

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 Zugriff auf detaillierte Informationen zu Abfragen, Verbindungen und verschiedenen Systemmetriken ermöglichen.
In diesem Artikel werden wir die Grundlagen der Redshift STL-Ansichten untersuchen, wobei der Fokus auf stl_query, stl_connection_log und anderen wesentlichen Ansichten für Logging und Monitoring liegt.
Was sind Redshift STL-Ansichten?
Redshift Systemtabellen und -ansichten (STL) sind eine Sammlung integrierter 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 treffen, um Ihre Redshift-Workloads zu optimieren. Redshift generiert die STL-Systemansichten aus Protokolldateien.
Erkundung der stl_query-Ansicht
Eine der am häufigsten verwendeten STL-Ansichten ist stl_query. Diese Ansicht enthält einen Eintrag für jede auf dem Redshift-Cluster ausgeführte Abfrage sowie detaillierte Informationen zu jeder Abfrage. Schauen wir uns näher an, wie stl_query für Logging und Analyse verwendet werden kann.
Abfragen von 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, einschließlich ihrer Startzeit, Endzeit, verstrichenen Zeit und ob sie abgebrochen wurden. Das Ergebnis gibt Ihnen einen schnellen Überblick über die jüngste Abfrageaktivität.
Analyse der Abfrageleistung
Durch eine tiefere Analyse der stl_query-Ansicht können Sie wertvolle Einblicke in die Abfrageleistung gewinnen. Zum Beispiel können Sie langlaufende 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 -- Abfragedauer in Millisekunden ORDER BY elapsed DESC;
Diese Abfrage ruft Abfragen ab, die länger als 60 Sekunden zur Ausführung benötigten, sowie einen Ausschnitt des Abfragetexts. 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 das Logging ist stl_connection_log. Diese Ansicht zeichnet Informationen über Clientverbindungen zum Redshift-Cluster auf, einschließlich Verbindungsbeginn und -ende, Benutzernamen und Client-IP-Adressen. Schauen wir uns an, wie stl_connection_log zur Überwachung von Verbindungen verwendet werden kann.
Abfragen von stl_connection_log
Um das Verbindungsprotokoll anzuzeigen, können Sie eine einfache SELECT-Abfrage auf 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 des Benutzernamens, der Startzeit, der Endzeit, der Dauer, des Remote-Hosts und des Remote-Ports. Durch die Überwachung des Verbindungsprotokolls können Sie Benutzeraktivitäten verfolgen und verdächtige oder unbefugte Verbindungen identifizieren.
Analyse der Verbindungsmuster
Sie können stl_connection_log auch verwenden, um Verbindungsmuster zu analysieren und potenzielle Probleme zu identifizieren. Zum Beispiel 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 jeder Benutzer hergestellt hat. 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 wichtige STL-Ansichten für Logging
Zusätzlich zu stl_query und stl_connection_log gibt es mehrere andere STL-Ansichten, die wertvolle Informationen für Logging und Monitoring bieten. Lassen Sie uns einige davon kurz erkunden:
stl_error
Die stl_error-Ansicht zeichnet Informationen über Fehler auf, die während der Abfrageausführung auftreten. Durch die Abfrage 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 des Benutzernamens, der Abfrage-ID, eines Ausschnitts 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 bietet Informationen über Workload Management-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 der Startzeit der Warteschlange, der gesamten Wartezeit, der gesamten Ausfü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 Daten-Loads ü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 der Abfrage-ID, des Zieltabellennamens, der Anzahl der gescannten Zeilen, der Anzahl der geladenen Dateien, der Startzeit, der Endzeit und der Dauer. Durch die Überwachung der Load-Commits können Sie die Effizienz Ihrer Datenladeprozesse verfolgen.
Systemansichten für Monitoring
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 für das Monitoring und die Fehlerbehebung sein. Hier sind einige bemerkenswerte Systemansichten:
- stv_recents: Bietet Informationen über die zuletzt ausgeführten Abfragen, einschließlich Abfrage-ID, Abfragetext und Ausführungszeit.
- stv_inflight: Zeigt aktuell ausgeführte Abfragen sowie deren Abfrage-ID, Benutzernamen und Ausführungszeit.
- stv_wlm_service_class_config: Zeigt die Konfiguration der WLM-Serviceklassen an, einschließlich Parallelität und Speicherlimits.
- stv_blocklist: Bietet Informationen über die Festplattennutzung und Block-Metadaten.
Durch Abfragen dieser Systemansichten können Sie Echtzeiteinblicke in den aktuellen Zustand Ihres Redshift-Clusters gewinnen und schnell Probleme oder Leistungsengpässe identifizieren.
Fazit
Redshift STL-Ansichten bieten eine Fülle von Informationen für Logging, Monitoring und Optimierung der Clusterleistung. Durch die Nutzung von Ansichten wie stl_query, stl_connection_log und anderen können Sie tiefe Einblicke in die Abfrageausführung, Systemaktivität und Ressourcennutzung gewinnen.
Denken Sie daran, die von diesen Ansichten bereitgestellten Informationen regelmäßig zu überwachen und zu analysieren, um proaktiv Probleme zu identifizieren und zu beheben, die Abfrageleistung zu optimieren und den reibungslosen Betrieb Ihres Redshift-Clusters sicherzustellen. Mit der Macht der STL-Ansichten können Sie Ihr Redshift-Logging und -Monitoring auf die nächste Stufe heben.
Wenn Sie nach einer umfassenden Lösung suchen, um Ihren Redshift-Cluster abzusichern und die Einhaltung von Datenschutzbestimmungen sicherzustellen, sollten Sie die benutzerfreundlichen und flexiblen Tools von DataSunrise in Erwägung ziehen. Unser Team freut sich, Ihnen eine Online-Demo bereitzustellen und Ihnen zu zeigen, wie unsere Funktionen für Datenbanksicherheit, Auditing und Compliance Ihrer Organisation zugutekommen können.