Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Abfrage mit Datum und Uhrzeit
Zu den Beispielen in diesem Abschnitt gehören Abfragen, die Datums- und Uhrzeitwerte verwenden.
Beispiel — Gibt das Zeitstempelfeld im ISO menschenlesbaren 8601-Format zurück
Die folgende Abfrage verwendet die to_iso8601
Funktionen from_unixtime
und, um das timestamp
Feld im menschenlesbaren ISO 8601-Format zurückzugeben (z. B. anstelle von). 2019-12-13T23:40:12.000Z
1576280412771
Die Abfrage gibt auch den HTTP Quellnamen, die Quell-ID und die Anforderung zurück.
SELECT to_iso8601(from_unixtime(timestamp / 1000)) as time_ISO_8601, httpsourcename, httpsourceid, httprequest FROM waf_logs LIMIT 10;
Beispiel – Gibt Datensätze der letzten 24 Stunden zurück
Die folgende Abfrage verwendet einen Filter in der WHERE
Klausel, um den HTTP Quellnamen, die HTTP Quell-ID und die HTTP Anforderungsfelder für Datensätze der letzten 24 Stunden zurückzugeben.
SELECT to_iso8601(from_unixtime(timestamp/1000)) AS time_ISO_8601, httpsourcename, httpsourceid, httprequest FROM waf_logs WHERE from_unixtime(timestamp/1000) > now() - interval '1' day LIMIT 10;
Beispiel – Gibt Datensätze für einen angegebenen Datumsbereich und eine IP-Adresse zurück
Die folgende Abfrage listet die Datensätze in einem angegebenen Datumsbereich für eine angegebene Client-IP-Adresse auf.
SELECT * FROM waf_logs WHERE httprequest.clientip='53.21.198.66' AND "date" >= '2021/03/01' AND "date" < '2021/03/31'
Beispiel – Zählt Sie für einen angegebenen Datumsbereich die Anzahl der IP-Adressen in 5-Minuten-Intervallen
Die folgende Abfrage zählt für einen bestimmten Datumsbereich die Anzahl der IP-Adressen in fünf Minuten Intervallen.
WITH test_dataset AS (SELECT format_datetime(from_unixtime((timestamp/1000) - ((minute(from_unixtime(timestamp / 1000))%5) * 60)),'yyyy-MM-dd HH:mm') AS five_minutes_ts, "httprequest"."clientip" FROM waf_logs WHERE "date" >= '2021/03/01' AND "date" < '2021/03/31') SELECT five_minutes_ts,"clientip",count(*) ip_count FROM test_dataset GROUP BY five_minutes_ts,"clientip"
Beispiel – Zählt die Anzahl der X-Forwarded-For-IP in den letzten zehn Tagen
Die folgende Abfrage filtert die Anforderungsheader und zählt die Anzahl der X-Forwarded-For-IPs in den letzten zehn Tagen.
WITH test_dataset AS (SELECT header FROM waf_logs CROSS JOIN UNNEST (httprequest.headers) AS t(header) WHERE from_unixtime("timestamp"/1000) > now() - interval '10' DAY) SELECT header.value AS ip, count(*) AS COUNT FROM test_dataset WHERE header.name='X-Forwarded-For' GROUP BY header.value ORDER BY COUNT DESC
Weitere Informationen zu Datums- und Uhrzeitfunktionen finden Sie unter Datums- und Uhrzeitfunktionen und Operatoren