DataSunrise erreicht AWS DevOps Kompetenz Status in AWS DevSecOps und Überwachung, Protokollierung, Performance

Snowflake-Abfrageverlauf

Snowflake-Abfrageverlauf

Snowflake-Abfrageverlauf

Einleitung

Die Nachverfolgung und Überprüfung von Datenbankaktivitäten ist ein wesentlicher Bestandteil der Sicherung und Optimierung jedes Data Warehouse. Snowflake ist eine beliebte Cloud-Datenplattform, die leistungsstarke Werkzeuge zur Verfügung stellt, um detaillierte Informationen über Abfragen in Ihrem Konto zu erhalten. In diesem Artikel werden wir die Snowflake-Abfrageverlauf-Ansicht und die QUERY_HISTORY-Tabellenfunktionen im Detail untersuchen. Sie werden lernen, wie Sie diese Funktionen nutzen können, um wertvolle Einblicke in Abfrageaktivitäten, Leistung und Zugriffsmuster zu gewinnen.

Was ist die Snowflake query_history-Ansicht?

Die query_history-Ansicht in Snowflake zeigt alle in Ihrem Konto ausgeführten Abfragen an. Sie ist schreibgeschützt. Die Informationen stehen bei der Standard Edition für die letzten 7 Tage zur Verfügung. Bei der Enterprise Edition und darüber hinaus sind sie für die letzten 14 Tage verfügbar.

Diese Informationen bieten detaillierte Angaben zu jeder Abfrage, darunter:

  • Abfragetext

  • Ausführungsstatus (z. B. abgeschlossen, fehlgeschlagen, laufend)

  • Abgefragte Objekte (Tabellen, Ansichten usw.)

  • Benutzer, der die Abfrage ausgeführt hat

  • Start- und Endzeit der Abfrage

  • Anzahl der zurückgegebenen Zeilen

  • Scandatenmenge in Bytes

  • Und mehr

Snowflake füllt diese Ansicht automatisch aus und erfordert keine Einrichtung oder Konfiguration Ihrerseits. Sie können diese Snowflake-Zugriffsprüfungsansicht genau wie jede andere Snowflake-Ansicht abfragen.

Beispiel für das Abfragen von query_history

Hier ist ein grundlegendes Beispiel für die Nutzung der query_history-Ansicht. Diese Ansicht zeigt die 10 zuletzt vom aktuellen Benutzer ausgeführten Abfragen an.

SELECT query_text, start_time, execution_status 
FROM query_history
WHERE user_name = current_user()
ORDER BY start_time DESC
LIMIT 10;

Diese Abfrage wählt den SQL-Text, die Startzeit und den Ausführungsstatus der Abfragen aus der query_history-Ansicht aus. Sie filtert nur die Abfragen, die vom aktuellen Benutzer ausgeführt wurden, sortiert die Ergebnisse mit den neuesten Abfragen zuerst und begrenzt die Ausgabe auf 10 Zeilen.

Die QUERY_HISTORY-Tabellenfunktionen

Neben der query_history-Ansicht stellt Snowflake eine Reihe von Tabellenfunktionen zum Abrufen von Abfrageverlaufsdaten bereit. Diese Funktionen ermöglichen es Ihnen, Abfrageverlaufsdaten weiter zurück in der Zeit abzurufen als die 7- bzw. 14-Tage-Aufbewahrungsdauer der Ansicht.

Die QUERY_HISTORY-Funktionen gibt es in drei Varianten:

  • QUERY_HISTORY() – Gibt 14 Tage Abfrageverlauf in Mikro-Partition-Struktur für optimierte Abfragen zurück

  • QUERY_HISTORY_BY_SESSION() – Gibt 14 Tage Abfrageverlauf mit zusätzlichen Details auf Sitzungsebene zurück

  • QUERY_HISTORY_BY_USER() – Gibt 14 Tage Abfrageverlauf mit zusätzlichen Details auf Benutzerebene zurück

Beispiel für die Verwendung von QUERY_HISTORY

Angenommen, Sie möchten die Top 5 Benutzer ermitteln, die in den letzten 14 Tagen die meisten Daten gescannt haben. So könnten Sie die Snowflake-Tabellenfunktion verwenden:

SELECT user_name, sum(bytes_scanned) as total_bytes_scanned
FROM TABLE(QUERY_HISTORY())
WHERE start_time >= dateadd('day', -14, current_timestamp())  
GROUP BY user_name
ORDER BY total_bytes_scanned DESC
LIMIT 5;

Diese Abfrage ruft den Abfrageverlauf der letzten 14 Tage mithilfe der QUERY_HISTORY-Funktion ab. Sie summiert die Spalte bytes_scanned für jeden Benutzer, sortiert die Ergebnisse absteigend nach der insgesamt gescannten Datenmenge und gibt die Top 5 Benutzer aus.

Filtern der Abfrageverlaufs-Ergebnisse

Die query_history-Ansicht und die QUERY_HISTORY-Funktionen unterstützen eine Vielzahl von SQL-Prädikaten zum Filtern der Ergebnisse. Einige gängige Prädikate, die Sie möglicherweise verwenden, sind:

  • query_id – Die eindeutige Kennung einer Abfrage

  • query_type – Der Typ der Abfrage (z. B. SELECT, INSERT, CREATE TABLE)

  • user_name – Der Name des Benutzers, der die Abfrage ausgeführt hat

  • start_time und end_time – Die Zeitstempel, wann die Abfrage gestartet und beendet wurde

  • execution_status – Der Status der Abfrage (z. B. RUNNING, COMPLETED, FAILED)

  • database_name, schema_name, table_name – Die Namen der Datenbankobjekte, auf die die Abfrage zugegriffen hat

Hier ein Beispiel, das alle fehlgeschlagenen Abfragen findet, die in den vergangenen Tag eine bestimmte Tabelle abgefragt haben:

SELECT * 
FROM query_history
WHERE execution_status = 'FAILED'
 AND table_name = 'my_table'
 AND start_time >= dateadd('day', -1, current_timestamp());

Anwendungsfälle für den Abfrageverlauf

Die Snowflake-Abfrageverlaufsfunktion hat viele wertvolle Anwendungsfälle, darunter:

Prüfung und Sicherheit

Durch die Nachverfolgung aller gegen Ihr Snowflake-Konto ausgeführten Abfragen ermöglicht der query_history-Abfrageverlauf:

  • Überwachung auf verdächtige Aktivitäten oder unbefugte Zugriffe

  • Untersuchung von Sicherheitsvorfällen

  • Sicherstellung der Einhaltung von Datenverwaltungsrichtlinien

  • Bereitstellung eines Prüfpfads für regulatorische Anforderungen

Abfrageoptimierung

Die Daten des Abfrageverlaufs können Ihnen helfen, die Leistung von Abfragen zu optimieren, indem sie:

  • die ressourcenintensivsten Abfragen identifizieren

  • Abfragemuster im Zeitverlauf analysieren

  • Fehler oder Zeitüberschreitungen bei Abfragen erkennen und beheben

  • Indexierungs-, Clustering- und Partitionierungsstrategien optimieren

Kostenumlage und Kostenzuordnung

Die Daten zu gescannten Bytes und Ausführungszeiten im Abfrageverlauf ermöglichen es Ihnen,:

  • Snowflake-Kosten bestimmten Benutzern, Teams oder Projekten zuzuordnen

  • Chargeback- oder Showback-Modelle zu implementieren

  • Die Abfrageeffizienz zu fördern und eskalierende Kosten zu begrenzen

Sichere und zentralisierte Prüfung mit DataSunrise

Während Snowflake hervorragende integrierte Verlaufsfunktionen bietet, ermöglicht das Sichern und Analysieren von Abfragen auf der Proxy-Ebene deutlich mehr Kontrolle. Mit DataSunrise können Sie:

  • Alle Abfragen in Snowflake in Echtzeit überwachen und protokollieren
  • Dynamisches Maskieren je nach Abfragetyp, Benutzer oder Objekt anwenden
  • Sicherheitsrichtlinien durchsetzen, ohne Snowflake-Rollen zu ändern
  • Abfrageaktivitäten mit Benutzerverhalten und Zugriffsregeln korrelieren

Dies ist besonders nützlich in Umgebungen mit strengen Compliance-Anforderungen, in denen die Prüfungsübersicht über die internen Metadaten von Snowflake hinausgehen muss.

Best Practice: Gewähren eines sicheren Zugriffs auf den Abfrageverlauf

Anstatt vollen ACCOUNTADMIN-Zugriff zu gewähren, erstellen Sie eine Rolle mit eingeschränkten Berechtigungen, um historische Prüfungsabfragen auszuführen:

-- Erstellen einer schreibgeschützten Prüfrolle
CREATE ROLE audit_viewer;

-- Gewähren der Nutzung der SNOWFLAKE-Datenbank
GRANT IMPORTED PRIVILEGES ON DATABASE snowflake TO ROLE audit_viewer;

-- Optional: Zuweisung an Überwachungsbenutzer
GRANT ROLE audit_viewer TO USER readonly_analyst;

Diese Konfiguration schränkt den Zugriff ein, ermöglicht jedoch gleichzeitig eine sichere Einsicht in Ihren Abfrageverlauf. Kombinieren Sie dies mit der Prüfungs-Ebene von DataSunrise, um eine manipulationssichere Überwachung sicherzustellen.

Zusammenfassung und Fazit

Die Abfrageverlaufsfunktion von Snowflake bietet essenzielle Einblicke in die Abfragen, die von Benutzern gegen Ihr Konto ausgeführt werden. Sie können die query_history-Ansicht und die QUERY_HISTORY-Tabellenfunktionen für verschiedene Zwecke nutzen. Dazu gehören die Verbesserung der Prüfprozesse, die Optimierung der Abfrageleistung und die Verfolgung von Nutzungskosten. Darüber hinaus bieten diese Tools noch weitere Vorteile.

Die in diesem Artikel behandelten Beispiele veranschaulichen nur einige der vielen Möglichkeiten, wie Sie wertvolle Erkenntnisse aus den Abfrageverlaufsdaten gewinnen können. Wenn Sie weiterforschen, überlegen Sie, wie diese Informationen die Sicherheit, Effizienz und Governance in Ihrer eigenen Snowflake-Umgebung verbessern könnten.

DataSunrise stellt benutzerfreundliche und flexible Werkzeuge zur Verwaltung der Snowflake-Sicherheit, Prüfregeln, dynamischem Datenmaskieren und Compliance bereit. Besuchen Sie unser Team für eine Online-Demo, um diese Fähigkeiten in Aktion zu erleben!

Nächste

Redshift und Athena

Redshift und Athena

Erfahren Sie mehr

Benötigen Sie die Hilfe unseres Support-Teams?

Unsere Experten beantworten gerne Ihre Fragen.

Allgemeine Informationen:
[email protected]
Kundenservice und technischer Support:
support.datasunrise.com
Partnerschafts- und Allianz-Anfragen:
[email protected]