Wie man Redshift STL Ansichten zur Protokollierung und Überwachung verwendet

Einführung
Wenn Sie mit Amazon Redshift arbeiten, ist es wichtig, die Abfrageausführung zu überwachen und die Systemaktivität zu beobachten. Dies hilft Ihnen, die Leistung zu verbessern, Probleme zu beheben und einen reibungslosen Betrieb sicherzustellen. Dies hilft Ihnen, die Leistung zu optimieren, Fehler zu beheben und einen störungsfreien Betrieb zu gewährleisten. Glücklicherweise stellt Redshift eine leistungsstarke Sammlung von Systemtabellen und -ansichten (STL) bereit, mit denen Sie detaillierte Informationen zu Abfragen, Verbindungen und verschiedenen Systemmetriken abrufen können.
In diesem Artikel tauchen wir in die Grundlagen der Redshift STL Ansichten ein und konzentrieren uns dabei auf stl_query, stl_connection_log und weitere wesentliche Ansichten zur Protokollierung und Überwachung.
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 vieles 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-Workloads treffen. Redshift generiert STL-Systemansichten aus Logdateien.
Erkundung der stl_query Ansicht
Eine der am häufigsten verwendeten STL Ansichten ist die stl_query. Diese Ansicht enthält einen Datensatz jeder auf dem Redshift-Cluster ausgeführten Abfrage, zusammen mit detaillierten Informationen zu jeder Abfrage. Sehen wir uns genauer an, wie stl_query für Protokollierung und Analyse verwendet wird.
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, zusammen mit deren Startzeit, Endzeit, verstrichener Zeit und der Angabe, ob sie abgebrochen wurden. Das Ergebnis gibt Ihnen einen schnellen Überblick über die jüngste Abfrageaktivität.
Analyse der Abfrageleistung
Wenn Sie tiefer in die stl_query Ansicht eintauchen, können Sie wertvolle Einblicke in die Abfrageleistung gewinnen. Beispielsweise können Sie lang laufende Abfragen durch Filterung der Spalte “elapsed” identifizieren:
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, zusammen mit einem Ausschnitt des Abfragetextes. 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 die stl_connection_log. Diese Ansicht protokolliert Informationen über Client-Verbindungen zum Redshift-Cluster, einschließlich Start- und Endzeiten der Verbindungen, Benutzernamen und Client-IP-Adressen. Sehen wir uns an, wie Sie stl_connection_log zur Überwachung von Verbindungen verwenden können.
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, Endzeit, Dauer, des Remote-Hosts und des Remote-Ports. Durch die Überwachung des Verbindungsprotokolls können Sie Benutzeraktivitäten verfolgen und verdächtige oder unautorisierte Verbindungen identifizieren.
Analyse von Verbindungsmustern
Sie können stl_connection_log auch 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 verschafft Ihnen einen Überblick über die Anzahl der von jedem Benutzer hergestellten Verbindungen. Wenn Sie feststellen, dass ein bestimmter Benutzer ungewöhnlich viele Verbindungen aufbaut, könnte dies auf ein Problem oder ein ineffizientes Anwendungsdesign hinweisen, das Aufmerksamkeit erfordert.
Weitere Redshift Ansichten für Protokollierung und Überwachung
Neben stl_query und stl_connection_log stellt Redshift mehrere andere Systemansichten bereit, die dabei helfen, die Aktivität des Clusters zu überwachen, Leistungsprobleme zu beheben und das Benutzerverhalten zu verfolgen.
Verfolgung von Abfragefehlern: stl_error
Protokolliert alle abfragebezogenen Fehler. Nützlich zum Debuggen fehlgeschlagener Abfragen.
SELECT username, query, substring(error, 1, 50) AS error_snippet, starttime FROM stl_error ORDER BY starttime DESC LIMIT 10;
Überwachung von Workload-Warteschlangen: stl_wlm_query
Zeigt, wie das Workload Management (WLM) von Redshift wartende und laufende Abfragen behandelt.
SELECT queue_start_time, total_queue_time, total_exec_time, slot_count FROM stl_wlm_query ORDER BY queue_start_time DESC LIMIT 10;
Überwachung von Datenladevorgängen: stl_load_commits
Verfolgt den COPY-Befehl, was Ihnen hilft, Ladedauern und Effizienz zu überwachen.
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;
Echtzeitüberwachung: STV Ansichten
stv_recents– Kürzlich abgeschlossene Abfragen.stv_inflight– Aktuell ausgeführte Abfragen und deren Dauer.stv_wlm_service_class_config– Aktuelle WLM-Konfiguration und Grenzwerte.stv_blocklist– Festplattenblocknutzung und Speicherplatzzuweisung.
Verbesserung der Redshift Protokollierung mit DataSunrise
Obwohl die Redshift STL Ansichten detaillierte Protokolle und Echtzeitmetriken bereitstellen, beinhalten sie keine granulare Zugriffskontrolle, Maskierung oder Integration externer Audits. Genau hier bietet DataSunrise einen Mehrwert.
- Echtzeit-Abfrageaudit über alle Redshift-Sitzungen hinweg
- Dynamische Datenmaskierung basierend auf Benutzerrollen, IPs oder Abfrageninhalten
- Zentralisierte Protokollierung mit langfristiger Aufbewahrung und Suchfunktion
- Blockieren riskanter Operationen wie vollständiger Tabellenscans oder Exporte
- Einhaltung von Compliance-Richtlinien gemäß GDPR, HIPAA, PCI DSS und mehr
DataSunrise sitzt zwischen den Clients und Ihrem Redshift-Cluster und analysiert, protokolliert sowie kontrolliert den Datenverkehr, ohne Ihre Datenstruktur zu verändern.
Fazit
Die Redshift STL und STV Ansichten bieten leistungsstarke Werkzeuge zur Protokollierung des Abfrageverhaltens, zur Verfolgung des Zugriffs und zur Optimierung der Systemleistung. Doch in Umgebungen, die Audit-Trails, feingranulare Datenzugriffskontrolle und Compliance-Durchsetzung erfordern, reichen native Protokollierungsfunktionen allein nicht aus.
DataSunrise verbessert die Sichtbarkeit und Kontrolle in Redshift durch intelligente Maskierung, Alarmierung und Audit-Funktionalitäten. Fordern Sie eine Demo an, um zu sehen, wie Sie das Redshift-Monitoring auf die nächste Stufe heben und gleichzeitig unternehmensweite Datenschutzstandards erfüllen können.
